aboutsummaryrefslogtreecommitdiff
path: root/home/rices/nord-blue/helix.nix
diff options
context:
space:
mode:
authorNatasha Moongrave <natasha@256phi.eu>2026-03-30 20:46:26 +0200
committerNatasha Moongrave <natasha@256phi.eu>2026-03-30 20:46:26 +0200
commit67e324107e05f3245ddac034607afd0e1dea478f (patch)
treed14a4b6e98fc707c72e24f0879b0e4297aaad78f /home/rices/nord-blue/helix.nix
parent2316eab54de77c351e88c5657eeaaa703ff4c498 (diff)
Refactored the entire configuration
Diffstat (limited to 'home/rices/nord-blue/helix.nix')
-rw-r--r--home/rices/nord-blue/helix.nix171
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
+ ];
+}