diff options
| author | Natasha Moongrave <natasha@256phi.eu> | 2026-03-30 20:46:26 +0200 |
|---|---|---|
| committer | Natasha Moongrave <natasha@256phi.eu> | 2026-03-30 20:46:26 +0200 |
| commit | 67e324107e05f3245ddac034607afd0e1dea478f (patch) | |
| tree | d14a4b6e98fc707c72e24f0879b0e4297aaad78f /home/rices/nord-blue/helix.nix | |
| parent | 2316eab54de77c351e88c5657eeaaa703ff4c498 (diff) | |
Refactored the entire configuration
Diffstat (limited to 'home/rices/nord-blue/helix.nix')
| -rw-r--r-- | home/rices/nord-blue/helix.nix | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/home/rices/nord-blue/helix.nix b/home/rices/nord-blue/helix.nix new file mode 100644 index 0000000..eb893ee --- /dev/null +++ b/home/rices/nord-blue/helix.nix @@ -0,0 +1,171 @@ +{ + pkgs, + lib, + ... +}: { + programs.helix = { + enable = true; + defaultEditor = false; + settings = { + # Let Stylix handle theming + editor = { + cursor-shape = { + normal = "block"; + insert = "bar"; + select = "underline"; + }; + line-number = "relative"; + bufferline = "multiple"; + color-modes = true; + cursorline = true; + auto-save = { + after-delay.enable = true; + after-delay.timeout = 10000; + }; + auto-format = true; + end-of-line-diagnostics = "hint"; + inline-diagnostics.cursor-line = "hint"; + lsp = { + display-messages = true; + display-inlay-hints = true; + }; + popup-border = "popup"; + statusline.left = [ + "mode" + "spinner" + "spacer" + "version-control" + "file-name" + "diagnostics" + "read-only-indicator" + "file-modification-indicator" + "spacer" + ]; + statusline.right = [ + "workspace-diagnostics" + "register" + "position" + "selections" + "file-encoding" + "file-type" + ]; + idle-timeout = 50; + completion-timeout = 100; + indent-guides = { + render = true; + character = "|"; + skip-levels = 3; + }; + soft-wrap.enable = true; + whitespace = { + render = { + space = "none"; + tab = "all"; + newline = "none"; + }; + characters = { + nbsp = "·"; + tab = "→"; + }; + }; + }; + }; + languages = { + language-server = { + "bash-language-server" = { + command = "${pkgs.bash-language-server}/bin/bash-language-server"; + args = ["start"]; + }; + "superhtml" = { + command = "${pkgs.superhtml}/bin/superhtml"; + }; + "vscode-css-languageserver" = { + command = "${pkgs.vscode-css-languageserver}/bin/vscode-css-languageserver"; + }; + "rust-analyzer" = { + command = "${pkgs.rust-analyzer}/bin/rust-analyzer"; + }; + "pyright" = { + command = "${pkgs.pyright}/bin/pyright"; + }; + "nil" = { + command = "${pkgs.nil}/bin/nil"; + }; + "texlab" = { + command = "${pkgs.texlab}/bin/texlab"; + }; + texlab.config.texlab = { + build = { + onSave = true; + forwardSearchAfter = true; + }; + chktext.onEdit = true; + forwardSearch = { + executable = "zathura"; + args = ["--synctex-forward" "%l:1:%f" "%p"]; + }; + }; + "marksman" = { + command = "${pkgs.marksman}/bin/marksman"; + }; + }; + language = [ + { + name = "bash"; + language-servers = ["bash-language-server"]; + auto-format = true; + } + { + name = "html"; + language-servers = ["superhtml"]; + auto-format = true; + } + { + name = "css"; + language-servers = ["vscode-css-languageserver"]; + auto-format = true; + } + { + name = "rust"; + language-servers = ["rust-analyzer"]; + auto-format = true; + } + { + name = "python"; + language-servers = ["pyright"]; + auto-format = true; + } + { + name = "nix"; + language-servers = ["nil"]; + auto-format = true; + } + { + name = "latex"; + language-servers = ["texlab"]; + auto-format = true; + } + { + name = "markdown"; + language-servers = ["marksman"]; + auto-format = true; + } + ]; + }; + }; + + home.packages = with pkgs; [ + zathura + ripgrep + fd + bash-language-server + superhtml + vscode-css-languageserver + rust-analyzer + llvmPackages_latest.lldb + pyright + nil + texlab + marksman + ]; +} |
