From 21c8104c961bf17be6e05b688f8400f66e060014 Mon Sep 17 00:00:00 2001 From: Jason Date: Wed, 2 Jul 2025 14:52:55 -0500 Subject: [PATCH 1/9] fix(shell): set programs.fish.enable when cfg.fish.enable is true Added conditional check and enable in /hydenix/modules/hm/shell.nix --- hydenix/modules/hm/shell.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hydenix/modules/hm/shell.nix b/hydenix/modules/hm/shell.nix index 491094a3..ee26cbf2 100644 --- a/hydenix/modules/hm/shell.nix +++ b/hydenix/modules/hm/shell.nix @@ -142,6 +142,10 @@ in ''; }; + programs.fish = lib.mkIf cfg.fish.enable { + enable = true; + }; + home.file = lib.mkMerge [ (lib.mkIf cfg.zsh.enable { # Shell configs From 46a9f87539d96939a3d18a8439ffd4f27225d88e Mon Sep 17 00:00:00 2001 From: stoutpanda Date: Wed, 2 Jul 2025 22:34:02 -0500 Subject: [PATCH 2/9] feat(shell): add conditional fastfetch to fish init Add conditional fastfetch display to fish shell's interactiveShellInit section, matching the existing zsh implementation. Fastfetch will only run when cfg.fastfetch.enable is true. --- hydenix/modules/hm/shell.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/hydenix/modules/hm/shell.nix b/hydenix/modules/hm/shell.nix index ee26cbf2..f28c0ea5 100644 --- a/hydenix/modules/hm/shell.nix +++ b/hydenix/modules/hm/shell.nix @@ -104,6 +104,7 @@ in ++ lib.optionals cfg.fish.enable [ fish duf + fzf ] ++ lib.optionals cfg.pokego.enable [ pokego ] ++ lib.optionals cfg.starship.enable [ starship ] @@ -144,6 +145,16 @@ in programs.fish = lib.mkIf cfg.fish.enable { enable = true; + interactiveShellInit = '' + # fzf integration + if type -q fzf + fzf --fish | source + end + + # Color settings + set fish_pager_color_prefix cyan + set fish_color_autosuggestion brblack + ''; }; home.file = lib.mkMerge [ From 22b9681b94bd91a621ca47b9e65b4fa49456e6fe Mon Sep 17 00:00:00 2001 From: stoutpanda Date: Wed, 2 Jul 2025 22:36:04 -0500 Subject: [PATCH 3/9] feat(shell): add eza package to fish configuration - Add eza to fish packages list to support fish aliases - eza is used for directory listing aliases in Hyde's fish config - Ensures consistency with zsh configuration which already includes eza --- hydenix/modules/hm/shell.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hydenix/modules/hm/shell.nix b/hydenix/modules/hm/shell.nix index f28c0ea5..4a50ef0f 100644 --- a/hydenix/modules/hm/shell.nix +++ b/hydenix/modules/hm/shell.nix @@ -105,6 +105,7 @@ in fish duf fzf + eza ] ++ lib.optionals cfg.pokego.enable [ pokego ] ++ lib.optionals cfg.starship.enable [ starship ] From 0311d0262b98039a63c49ca1c502c16a79a980ac Mon Sep 17 00:00:00 2001 From: stoutpanda Date: Wed, 2 Jul 2025 22:29:11 -0500 Subject: [PATCH 4/9] feat(shell): migrate fish abbreviations to home manager --- hydenix/modules/hm/shell.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hydenix/modules/hm/shell.nix b/hydenix/modules/hm/shell.nix index 4a50ef0f..5a72d5cd 100644 --- a/hydenix/modules/hm/shell.nix +++ b/hydenix/modules/hm/shell.nix @@ -156,6 +156,14 @@ in set fish_pager_color_prefix cyan set fish_color_autosuggestion brblack ''; + shellAbbrs = { + ".." = "cd .."; + "..." = "cd ../.."; + ".3" = "cd ../../.."; + ".4" = "cd ../../../.."; + ".5" = "cd ../../../../.."; + mkdir = "mkdir -p"; + }; }; home.file = lib.mkMerge [ From ce1bea7b763f7896f446c1312672e6b20d364b6c Mon Sep 17 00:00:00 2001 From: stoutpanda Date: Wed, 2 Jul 2025 23:18:08 -0500 Subject: [PATCH 5/9] refactor(shell): clean up duplicate package declarations Remove duplicate package declarations when both zsh and fish are enabled. Also removed unneeded fzf pkg as it is declared elsewhere in hydenix. --- hydenix/modules/hm/shell.nix | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/hydenix/modules/hm/shell.nix b/hydenix/modules/hm/shell.nix index 5a72d5cd..d5e3094d 100644 --- a/hydenix/modules/hm/shell.nix +++ b/hydenix/modules/hm/shell.nix @@ -92,21 +92,18 @@ in [ fastfetch ] + ++ lib.optionals (cfg.zsh.enable || cfg.fish.enable) [ + eza + duf + ] ++ lib.optionals cfg.zsh.enable [ zsh - eza oh-my-zsh zsh-autosuggestions zsh-syntax-highlighting - duf ] ++ lib.optionals cfg.bash.enable [ bash ] - ++ lib.optionals cfg.fish.enable [ - fish - duf - fzf - eza - ] + ++ lib.optionals cfg.fish.enable [ fish ] ++ lib.optionals cfg.pokego.enable [ pokego ] ++ lib.optionals cfg.starship.enable [ starship ] ++ lib.optionals cfg.p10k.enable [ zsh-powerlevel10k ]; @@ -146,6 +143,7 @@ in programs.fish = lib.mkIf cfg.fish.enable { enable = true; + #reimpementing the HyDE-Project config.fish using home.manager interactiveShellInit = '' # fzf integration if type -q fzf From 28888dc446954078f6288995632317beeafe28f2 Mon Sep 17 00:00:00 2001 From: stoutpanda Date: Wed, 2 Jul 2025 23:23:52 -0500 Subject: [PATCH 6/9] fix(fish): remove conflicting config.fish direct copy Home Manager's programs.fish module generates and manages config.fish. Direct file copying causes conflicts. This is step 1 of proper fish integration with Home Manager. --- hydenix/modules/hm/shell.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hydenix/modules/hm/shell.nix b/hydenix/modules/hm/shell.nix index d5e3094d..d4bd9edc 100644 --- a/hydenix/modules/hm/shell.nix +++ b/hydenix/modules/hm/shell.nix @@ -283,7 +283,6 @@ in (lib.mkIf cfg.fish.enable { # Fish configs - ".config/fish/config.fish".source = "${pkgs.hydenix.hyde}/Configs/.config/fish/config.fish"; ".config/fish/hyde_config.fish".source = "${pkgs.hydenix.hyde}/Configs/.config/fish/hyde_config.fish"; ".config/fish/functions/df.fish".source = "${pkgs.hydenix.hyde}/Configs/.config/fish/functions/df.fish"; From 301aa7d377b104ae99dbac9e360c7c5c8cf25264 Mon Sep 17 00:00:00 2001 From: stoutpanda Date: Wed, 2 Jul 2025 23:27:25 -0500 Subject: [PATCH 7/9] feat(fish): add shell aliases from hyde config Add the eza-based directory listing aliases (l, ls, ll, ld, lt) and the vc alias for VS Code. These are the exact aliases from Hyde's original config.fish. --- hydenix/modules/hm/shell.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hydenix/modules/hm/shell.nix b/hydenix/modules/hm/shell.nix index d4bd9edc..8d3ffcd1 100644 --- a/hydenix/modules/hm/shell.nix +++ b/hydenix/modules/hm/shell.nix @@ -154,6 +154,14 @@ in set fish_pager_color_prefix cyan set fish_color_autosuggestion brblack ''; + shellAliases = { + l = "eza -lh --icons=auto"; + ls = "eza -1 --icons=auto"; + ll = "eza -lha --icons=auto --sort=name --group-directories-first"; + ld = "eza -lhD --icons=auto"; + lt = "eza --icons=auto --tree"; + vc = "code"; + }; shellAbbrs = { ".." = "cd .."; "..." = "cd ../.."; From 94b09e16d2cf3d992b836ff81b77c10b7db43cd5 Mon Sep 17 00:00:00 2001 From: stoutpanda Date: Wed, 2 Jul 2025 23:29:20 -0500 Subject: [PATCH 8/9] feat(fish): add starship, pokego, and fastfetch integration Add conditional initialization for: - Starship prompt with proper environment variables - Pokego ASCII art (when enabled) - Fastfetch system info (when enabled) - Source hyde_config.fish for additional Hyde customizations All features respect their respective enable flags. --- hydenix/modules/hm/shell.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/hydenix/modules/hm/shell.nix b/hydenix/modules/hm/shell.nix index 8d3ffcd1..3f788a4a 100644 --- a/hydenix/modules/hm/shell.nix +++ b/hydenix/modules/hm/shell.nix @@ -145,6 +145,17 @@ in enable = true; #reimpementing the HyDE-Project config.fish using home.manager interactiveShellInit = '' + # Source Hyde configuration + source ${pkgs.hydenix.hyde}/Configs/.config/fish/hyde_config.fish + + ${lib.optionalString cfg.starship.enable '' + if type -q starship + starship init fish | source + set -gx STARSHIP_CACHE $XDG_CACHE_HOME/starship + set -gx STARSHIP_CONFIG $XDG_CONFIG_HOME/starship/starship.toml + end + ''} + # fzf integration if type -q fzf fzf --fish | source @@ -153,6 +164,14 @@ in # Color settings set fish_pager_color_prefix cyan set fish_color_autosuggestion brblack + + ${lib.optionalString cfg.pokego.enable '' + pokego --no-title -r 1,3,6 + ''} + + ${lib.optionalString cfg.fastfetch.enable '' + fastfetch --logo-type kitty + ''} ''; shellAliases = { l = "eza -lh --icons=auto"; From 5381714a0fce21c71b1cf416331c21cd564a0975 Mon Sep 17 00:00:00 2001 From: stoutpanda Date: Wed, 2 Jul 2025 23:30:09 -0500 Subject: [PATCH 9/9] feat(fish): disable fish greeting message Add `set -g fish_greeting` to disable the default fish greeting, matching Hyde's original config.fish behavior. --- hydenix/modules/hm/shell.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hydenix/modules/hm/shell.nix b/hydenix/modules/hm/shell.nix index 3f788a4a..ab178c05 100644 --- a/hydenix/modules/hm/shell.nix +++ b/hydenix/modules/hm/shell.nix @@ -145,6 +145,9 @@ in enable = true; #reimpementing the HyDE-Project config.fish using home.manager interactiveShellInit = '' + # Disable greeting + set -g fish_greeting + # Source Hyde configuration source ${pkgs.hydenix.hyde}/Configs/.config/fish/hyde_config.fish