From 8896c27e133a509d76c8dc5cfe41a9b0bf1b5d1c Mon Sep 17 00:00:00 2001 From: worble Date: Tue, 14 Jan 2025 13:49:34 +0000 Subject: [PATCH] add lots of helix config; update vscode config; --- home-manager/development/helix.nix | 117 ++++++++++++++++++++++++++++ home-manager/development/vscode.nix | 21 ++++- home-manager/terminal.nix | 39 ++++++++-- starlite/home.nix | 3 - tuxedo/home.nix | 2 +- update.sh | 2 +- 6 files changed, 169 insertions(+), 15 deletions(-) create mode 100644 home-manager/development/helix.nix diff --git a/home-manager/development/helix.nix b/home-manager/development/helix.nix new file mode 100644 index 0000000..5f67292 --- /dev/null +++ b/home-manager/development/helix.nix @@ -0,0 +1,117 @@ +{ inputs, config, pkgs, ... }: + +{ + programs = { + helix = { + enable = true; + defaultEditor = true; + settings = { + theme = "dracula"; + }; + languages = { + language = [ + { + name = "nix"; + language-servers = [ "nixd" "nil" ]; + } + { + name = "html"; + language-servers = [ "superhtml" "vscode-html-language-server" ]; + } + { + name = "bash"; + formatter = { command = "${pkgs.shfmt}/bin/shfmt"; }; + } + { + name = "javascript"; + language-servers = [ + { name = "biome"; } + { + name = "typescript-language-server"; + except-features = [ "format" ]; + } + ]; + auto-format = true; + formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.js" ]; }; + } + { + name = "typescript"; + language-servers = [ + { name = "biome"; } + { + name = "typescript-language-server"; + except-features = [ "format" ]; + } + ]; + auto-format = true; + formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.ts" ]; }; + } + { + name = "jsx"; + language-servers = [ + { name = "biome"; } + { + name = "typescript-language-server"; + except-features = [ "format" ]; + } + ]; + auto-format = true; + formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.jsx" ]; }; + } + { + name = "tsx"; + language-servers = [ + { name = "biome"; } + { + name = "typescript-language-server"; + except-features = [ "format" ]; + } + ]; + auto-format = true; + formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.tsx" ]; }; + } + ]; + language-server = with pkgs;{ + bash-language-server = { + command = "${bash-language-server}/bin/bash-language-server"; + args = [ "start" ]; + }; + + superhtml = { + command = "${superhtml}/bin/superhtml"; + args = [ "lsp" ]; + }; + + nixd = { + command = "${nixd}/bin/nixd"; + config.nil = { + formatting.command = [ "${nixpkgs-fmt}/bin/nixpkgs-fmt" ]; + }; + }; + + typescript-language-server = with nodePackages; { + command = "${typescript-language-server}/bin/typescript-language-server"; + args = [ "--stdio" "--tsserver-path=${typescript}/lib/node_modules/typescript/lib" ]; + }; + vscode-css-language-server = { + command = "${vscode-langservers-extracted}/bin/vscode-css-language-server"; + args = [ "--stdio" ]; + }; + vscode-json-language-server = { + command = "${vscode-langservers-extracted}/bin/vscode-json-language-server"; + args = [ "--stdio" ]; + }; + vscode-markdown-language-server = { + command = "${vscode-langservers-extracted}/bin/vscode-markdown-language-server"; + args = [ "--stdio" ]; + }; + + biome = { + command = "${biome}/bin/biome"; + args = [ "lsp-proxy" ]; + }; + }; + }; + }; + }; +} diff --git a/home-manager/development/vscode.nix b/home-manager/development/vscode.nix index 143be14..e393821 100644 --- a/home-manager/development/vscode.nix +++ b/home-manager/development/vscode.nix @@ -6,8 +6,6 @@ in { home.packages = with pkgs;[ (nerdfonts.override { fonts = [ "SpaceMono" ]; }) - shellcheck - biome ]; programs = { @@ -26,10 +24,11 @@ in esbenp.prettier-vscode bradlc.vscode-tailwindcss humao.rest-client - rogalmic.bash-debug loriscro.super + mads-hartmann.bash-ide-vscode + foxundermoon.shell-format ]; - userSettings = { + userSettings = with pkgs;{ "workbench.iconTheme" = "material-icon-theme"; "window.titleBarStyle" = "custom"; "workbench.colorTheme" = "Dracula Theme"; @@ -45,7 +44,21 @@ in "typescript.preferences.preferTypeOnlyAutoImports" = true; "chat.commandCenter.enabled" = false; + + "nix.enableLanguageServer" = true; # Enable LSP. + "nix.serverPath" = "${nixd}/bin/nixd"; # The path to the LSP server executable. + "nix.serverSettings" = { + nixd = { + formatting.command = [ "${nixpkgs-fmt}/bin/nixpkgs-fmt" ]; + }; + }; + + "biome.lsp.bin" = "${biome}/bin/biome"; + + "bashIde.shellcheckPath" = "${shellcheck}/bin/shellcheck"; + "shellformat.path" = "${shfmt}/bin/shfmt"; }; }; }; } + diff --git a/home-manager/terminal.nix b/home-manager/terminal.nix index 5ccb1bb..41857f8 100644 --- a/home-manager/terminal.nix +++ b/home-manager/terminal.nix @@ -1,10 +1,6 @@ -{ lib, inputs, config, pkgs, ... }: +{ lib, config, pkgs, ... }: with lib; - -let - cfg = config.programs.atuin; -in { options.terminal = { nixUpdateLocation = mkOption { @@ -73,7 +69,13 @@ in enable = true; }; - helix.enable = true; + helix = { + enable = true; + defaultEditor = true; + settings = { + theme = "dracula"; + }; + }; bat = { enable = true; @@ -91,6 +93,16 @@ in ]; }; + yazi = { + enable = true; + settings = { + manager = { + sort_by = "natural"; + show_hidden = true; + }; + }; + }; + bottom = { enable = true; }; @@ -130,6 +142,21 @@ in }; }; }; + + # eh not feeling it + # ghostty = { + # enable = true; + # enableBashIntegration = true; + # settings = { + # "font-family" = "SpaceMono Nerd Font"; + # "font-size" = 14; + # theme = "Dracula"; + # }; + # }; + + yt-dlp = { + enable = true; + }; }; }; } diff --git a/starlite/home.nix b/starlite/home.nix index 0dfda60..a747499 100644 --- a/starlite/home.nix +++ b/starlite/home.nix @@ -53,9 +53,6 @@ joplin-desktop obsidian - # cmd line tools - yt-dlp - # media strawberry-qt6 jellyfin-media-player diff --git a/tuxedo/home.nix b/tuxedo/home.nix index 45b7311..7a647d3 100644 --- a/tuxedo/home.nix +++ b/tuxedo/home.nix @@ -7,6 +7,7 @@ ../home-manager/firefox/firefox.nix ../home-manager/development/tools.nix ../home-manager/development/vscode.nix + ../home-manager/development/helix.nix ../home-manager/gaming.nix ]; @@ -61,7 +62,6 @@ inotify-tools libnotify ffmpeg-full - yt-dlp # comms teamspeak_client diff --git a/update.sh b/update.sh index d6043f7..795cc96 100755 --- a/update.sh +++ b/update.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash FLAKE=${1:?"missing arg 1 for flake target"} -sudo nixos-rebuild switch --flake "/home/worble/Projects/nixos#$FLAKE" \ No newline at end of file +sudo nixos-rebuild switch --flake "/home/worble/Projects/nixos#$FLAKE"