{ self, ... }: { flake.homeManagerModules.wisdomShellFish = { config, lib, pkgs, ... }: let root = config.chiasson.home; cfg = config.chiasson.home.shell.fish; rbw = self.lib.rbwSshSocket; in { options.chiasson.home.shell.fish = { enable = lib.mkEnableOption "Fish + grc, quiet greeting, rbw SSH socket defaults." // { default = true; }; nixYourShell = { enable = lib.mkEnableOption '' Wrap `nix` / `nix-shell` so ephemeral shells use fish (and keep oh-my-posh) instead of bash. '' // { default = true; }; }; }; config = lib.mkIf (root.enable && cfg.enable) { home.packages = [ pkgs.grc ]; programs.fish = { enable = true; interactiveShellInit = '' set fish_greeting "" ${rbw.fishSnippet pkgs} ''; plugins = [ { name = "grc"; src = pkgs.fishPlugins.grc.src; } ]; }; programs.nix-your-shell = lib.mkIf cfg.nixYourShell.enable { enable = true; enableFishIntegration = true; }; }; }; }