{ pkgs, config, lib, ... }: { options = { myCli.shell.enable = lib.mkEnableOption "enables fish shell"; }; config = lib.mkIf config.myCli.shell.enable { environment.systemPackages = with pkgs; [ starship zoxide fastfetch ]; programs.fish = { enable = true; interactiveShellInit = '' set -l dimensions (stty size 2>/dev/null | string split ' ') set -l rows $dimensions[1] set -l cols $dimensions[2] if test -n "$cols" -a "$cols" -ge 120 -a "$rows" -ge 30 fastfetch -l nixos2 --logo-padding-right 6 --separator " " --structure "break:break:title:break:os:kernel:packages:disk:shell:terminal:wm:uptime:media:break:colors" end set fish_greeting # Disable greeting starship init fish | source zoxide init fish | source alias cd z alias crun "cargo pretty run" alias cbuild "cargo pretty build" alias ctest "cargo nextest run" ''; }; }; }