diff --git a/flake.lock b/flake.lock index 9b05423..d18b96a 100644 --- a/flake.lock +++ b/flake.lock @@ -115,11 +115,11 @@ "zig": "zig" }, "locked": { - "lastModified": 1738275804, - "narHash": "sha256-n9cSCLlWjc8Bc5QyZYLo5+c6MfTZjgDpUGx/FGxBiY8=", + "lastModified": 1738619868, + "narHash": "sha256-q4h4SY1kVkZG4t/59CmJvaKjlx+xjojhdU1HqxiQhrQ=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "c5508e7d1922842ecd3160ea73b97da1282168b3", + "rev": "f0d276062b78658fc1f3857e9ea104788f1f4e58", "type": "github" }, "original": { @@ -130,11 +130,11 @@ }, "hardware": { "locked": { - "lastModified": 1737751639, - "narHash": "sha256-ZEbOJ9iT72iwqXsiEMbEa8wWjyFvRA9Ugx8utmYbpz4=", + "lastModified": 1738638143, + "narHash": "sha256-ZYMe4c4OCtIUBn5hx15PEGr0+B1cNEpl2dsaLxwY2W0=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "dfad538f751a5aa5d4436d9781ab27a6128ec9d4", + "rev": "9bdd53f5908453e4d03f395eb1615c3e9a351f70", "type": "github" }, "original": { @@ -151,11 +151,11 @@ ] }, "locked": { - "lastModified": 1738275749, - "narHash": "sha256-PM+cGduJ05EZ+YXulqAwUFjvfKpPmW080mcuN6R1POw=", + "lastModified": 1738667255, + "narHash": "sha256-sMMQb9NydZqQ/MvvtPp+Ny0W9P0Jk0moU7SrTBlO5Vo=", "owner": "nix-community", "repo": "home-manager", - "rev": "a8159195bfaef3c64df75d3b1e6a68d49d392be9", + "rev": "7abcf59a365430b36f84eaa452a466b11e469e33", "type": "github" }, "original": { @@ -182,11 +182,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1738136902, - "narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=", + "lastModified": 1738644632, + "narHash": "sha256-DyvJjOOGmTSkkEfHq0oWkwtZOgejYIB5S865wmf/qos=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c", + "rev": "95ea544c84ebed84a31896b0ecea2570e5e0e236", "type": "github" }, "original": { @@ -269,11 +269,11 @@ ] }, "locked": { - "lastModified": 1737411508, - "narHash": "sha256-j9IdflJwRtqo9WpM0OfAZml47eBblUHGNQTe62OUqTw=", + "lastModified": 1738291974, + "narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=", "owner": "Mic92", "repo": "sops-nix", - "rev": "015d461c16678fc02a2f405eb453abb509d4e1d4", + "rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7", "type": "github" }, "original": { diff --git a/homes/x86_64-linux/jo@puzzlevision/default.nix b/homes/x86_64-linux/jo@puzzlevision/default.nix index dfe391a..9cc7cc1 100644 --- a/homes/x86_64-linux/jo@puzzlevision/default.nix +++ b/homes/x86_64-linux/jo@puzzlevision/default.nix @@ -7,6 +7,9 @@ themes.catppuccin = { gtk.enable = true; }; + + apps.nushell.enable = true; + apps.vscodium.enable = true; }; home.file."~/.config/Yubico/u2f_keys".text = '' @@ -22,60 +25,6 @@ packages = []; }; - programs = { - nushell = { - enable = true; - - # for editing directly to config.nu - extraConfig = '' - let carapace_completer = {|spans| - carapace $spans.0 nushell $spans | from json - } - $env.config = { - show_banner: false, - completions: { - case_sensitive: false # case-sensitive completions - quick: true # set to false to prevent auto-selecting completions - partial: true # set to false to prevent partial filling of the prompt - algorithm: "fuzzy" # prefix or fuzzy - external: { - # set to false to prevent nushell looking into $env.PATH to find more suggestions - enable: true - # set to lower can improve completion performance at the cost of omitting some options - max_results: 100 - completer: $carapace_completer # check 'carapace_completer' - } - } - } - $env.PATH = ($env.PATH | - split row (char esep) | - prepend /home/myuser/.apps | - append /usr/bin/env - ) - ''; - - shellAliases = { - vi = "hx"; - vim = "hx"; - nano = "hx"; - }; - }; - - carapace.enable = true; - carapace.enableNushellIntegration = true; - - starship = { - enable = true; - settings = { - add_newline = true; - character = { - success_symbol = "[➜](bold green)"; - error_symbol = "[➜](bold red)"; - }; - }; - }; - }; - # TODO: look at git-sync for syncing stuff like obsidian vaults. programs.git-credential-oauth.enable = true; @@ -102,8 +51,6 @@ devenv python39 nixd - nil - zed-editor bruno deno carapace diff --git a/modules/home/apps/codium/default.nix b/modules/home/apps/codium/default.nix new file mode 100644 index 0000000..10c86a4 --- /dev/null +++ b/modules/home/apps/codium/default.nix @@ -0,0 +1,74 @@ +{ + lib, + pkgs, + config, + namespace, + ... +}: let + inherit (lib) mkEnableOption mkIf; + cfg = config.${namespace}.apps.vscodium; +in { + options.${namespace}.apps.vscodium = { + enable = mkEnableOption "vscodium"; + }; + + config = mkIf cfg.enable { + home.packages = with pkgs; [ + alejandra + ]; + + programs.vscode = { + enable = true; + package = pkgs.vscodium; + + enableUpdateCheck = false; + enableExtensionUpdateCheck = false; + mutableExtensionsDir = false; + + extensions = with pkgs; [ + ### Theming + vscode-extensions.pkief.material-icon-theme + vscode-extensions.catppuccin.catppuccin-vsc + + ### General + vscode-extensions.usernamehw.errorlens + vscode-extensions.leonardssh.vscord + vscode-extensions.davidlday.languagetool-linter + vscode-extensions.christian-kohler.path-intellisense + vscode-extensions.wakatime.vscode-wakatime + + ### Language specific + # Nushell + vscode-extensions.thenuprojectcontributors.vscode-nushell-lang + + # Nix + vscode-extensions.kamadorueda.alejandra + vscode-extensions.jnoortheen.nix-ide + + # Env + vscode-extensions.irongeek.vscode-env + + # Deno (JavaScript) + vscode-extensions.denoland.vscode-deno + ]; + + userSettings = { + "files.autoSave" = "on"; + "workbench.colorTheme" = "Catppuccin Macchiato"; + + "[nix]" = { + "editor.tabSize" = 2; + "formatterPath" = "alejandra"; + + "enableLanguageServer" = true; + "serverPath" = "nixd"; + "serverSettings" = { + "nixd" = { + "formatting.command" = ["alejandra"]; + }; + }; + }; + }; + }; + }; +} diff --git a/modules/home/apps/nushell/default.nix b/modules/home/apps/nushell/default.nix new file mode 100644 index 0000000..75b4ef2 --- /dev/null +++ b/modules/home/apps/nushell/default.nix @@ -0,0 +1,69 @@ +{ + lib, + pkgs, + config, + namespace, + ... +}: let + inherit (lib) mkEnableOption mkIf; + cfg = config.${namespace}.apps.nushell; +in { + options.${namespace}.apps.nushell = { + enable = mkEnableOption "Whether to enable nushell customization."; + }; + + config = mkIf cfg.enable { + programs = { + nushell = { + enable = true; + + extraConfig = '' + let carapace_completer = {|spans| + carapace $spans.0 nushell ...$spans | from json + } + + $env.config = { + completions: { + case_sensitive: false # case-sensitive completions + quick: true # set to false to prevent auto-selecting completions + partial: true # set to false to prevent partial filling of the prompt + algorithm: "fuzzy" # prefix or fuzzy + external: { + # set to false to prevent nushell looking into $env.PATH to find more suggestions + enable: true + # set to lower can improve completion performance at the cost of omitting some options + max_results: 200 + completer: $carapace_completer # check 'carapace_completer' + } + } + } + + $env.PATH = ($env.PATH | + split row (char esep) | + prepend /run/wrappers/bin | + prepend /home/jo/.nix-profile/bin | + append /usr/bin/env/run/wrappers/bin + ) + ''; + }; + + carapace.enable = true; + carapace.enableNushellIntegration = true; + + starship = { + enable = true; + settings = { + add_newline = true; + character = { + success_symbol = "[➜](bold green)"; + error_symbol = "[➜](bold red)"; + }; + }; + }; + }; + + home.packages = with pkgs; [ + carapace + ]; + }; +}