nixcfg/homeManagerModules/apps/helix/default.nix
Aly Raffauf c112fcd6c5
Some checks are pending
git-mirror / gitlab-sync (push) Waiting to run
nix-build / default-build (push) Waiting to run
nix-build / fallarbor-build (push) Waiting to run
nix-build / lavaridge-build (push) Waiting to run
nix-build / mauville-build (push) Waiting to run
nix-build / petalburg-build (push) Waiting to run
nix-build / rustboro-build (push) Waiting to run
nix-check / fmt-check (push) Waiting to run
nix-check / eval-check (push) Waiting to run
migrate to stylix (#90)
* flake: add stylix modules

* yank enough to make hosts build with stylix enabled

* add initial common stylix theme

* waybar: remove custom colors

* rofi: reimplement theme

* rofi: transparency fix

* rofi: remove old theme

* swayosd: use stylix colors

* remove theme.colors

* remove remaining theme config outside icons + gtk settings

* remove darkMode toggle

* restore fuzzel module

* randomWallpaper: disable * configs in sway

* randomWallpaper: disable hyprpaper stylix config

* swaylock: restore non-theme settings

* hosts: fix wallpaper

* waybar: restore colors

* rofi: restore theme

* rofi: use proper border color

* harmonize font sizes

* rofi: use borderRadius setting

* tmux: remove theming

* hosts: add preliminary stylix configs

* randomWallpaper: force hyprpaper off

* fallarbor: set correct wallpaper

* rofi: fix transparency issues on hyprland

* sway: override stylix indicator colors
2024-08-15 15:55:39 -04:00

110 lines
2.6 KiB
Nix

{
config,
lib,
pkgs,
...
}: {
config = lib.mkIf config.ar.home.apps.helix.enable {
programs.helix = {
enable = true;
languages = {
language-server = {
rust-analyzer.config = {
checkOnSave.command = "clippy";
cargo.features = "all";
cargo.unsetTest = [];
};
pyright = {
command = "${pkgs.pyright}/bin/pyright-langserver";
args = ["--stdio"];
config = {};
};
nil.command = "${pkgs.nil}/bin/nil";
bash-language-server = {
command = "${pkgs.nodePackages.bash-language-server}/bin/bash-language-server";
args = ["start"];
};
haskell = {
command = "${pkgs.haskell-language-server}/bin/haskell-language-server-wrapper";
args = ["lsp"];
};
};
language = [
{
name = "python";
auto-format = true;
language-servers = [{name = "pyright";}];
formatter = {
command = "/bin/sh";
args = ["-c" "${pkgs.isort}/bin/isort - | ${pkgs.black}/bin/black -q -l 120 -C -"];
};
}
{
name = "nix";
auto-format = true;
language-servers = [{name = "nil";}];
formatter.command = "${pkgs.alejandra}/bin/alejandra";
}
{
name = "bash";
auto-format = true;
}
{
name = "haskell";
auto-format = true;
language-servers = [{name = "haskell";}];
formatter = {
command = "${pkgs.ormolu}/bin/ormolu";
args = ["--no-cabal"];
};
}
];
};
settings = {
editor = {
auto-completion = true;
auto-format = true;
auto-pairs = false;
auto-save = true;
color-modes = true;
cursorline = true;
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
indent-guides.render = true;
lsp = {
display-inlay-hints = true;
display-messages = true;
};
soft-wrap = {
enable = true;
wrap-at-text-width = true;
};
statusline.center = ["position-percentage"];
text-width = 80;
true-color = true;
whitespace.characters = {
newline = "";
tab = "";
};
};
};
};
};
}