{ pkgs, lib, config, ... }: { home.sessionPath = [ "${config.home.homeDirectory}/.local/bin" ]; home.sessionVariables = let fishCfg = config.programs.fish; in { "SHELL" = lib.mkIf fishCfg.enable (lib.getExe fishCfg.package); }; imports = [ # # CLI / TUI # { home.packages = [ pkgs.stow pkgs.zip pkgs.unzip pkgs.gnutar pkgs.p7zip pkgs.bc pkgs.dig pkgs.hutils pkgs.miniserve pkgs.agenix pkgs.nix-which /* The file picker is not ergonomic enough, sadly */ # pkgs.helix # pkgs.nushell pkgs.eepy # pdf pkgs.poppler_utils # pdfseparate, pdfunite pkgs.easyscan # fun # pkgs.prop-solveur # pkgs.hbrainfuck # pkgs.lucky-commit # # research # pkgs.necrolib # pretty tui tools pkgs.du-dust pkgs.tokei pkgs.hyperfine pkgs.watchexec pkgs.onefetch pkgs.just # nix tools pkgs.alejandra pkgs.nix-output-monitor pkgs.nurl pkgs.dix pkgs.niv pkgs.npins pkgs.nix-tree ]; programs = { neovim = { enable = true; defaultEditor = true; }; yt-dlp.enable = true; emacs = { enable = true; package = pkgs.unsafe-emacs28; }; lazygit.enable = true; fish.enable = true; starship.enable = true; tmux.enable = true; direnv.enable = true; ripgrep.enable = true; password-store.enable = true; btop.enable = true; cmus.enable = true; ranger.enable = true; }; } # # GUI # { home.packages = [ # productivity / media pkgs.evolution pkgs.libreoffice pkgs.calibre # pkgs.rawtherapee pkgs.digikam pkgs.gimp pkgs.vlc pkgs.nautilus pkgs.sushi # space bar previewer # pkgs.blender # pkgs.inkscape # pkgs.aseprite # pkgs.xournalpp pkgs.nicotine-plus pkgs.picard # music tagger # social pkgs.iamb pkgs.discord # keep the app for video calls pkgs.signal-desktop pkgs.emoji-picker-rs # wm utilities pkgs.xbrightness pkgs.dmenu pkgs.xclip pkgs.maim pkgs.xscreensaver # talk to xscreensaver pkgs.xcolor # audio utilities pkgs.helvum pkgs.pavucontrol ]; programs = { feh.enable = true; sioyek.enable = true; tealdeer.enable = true; kitty = { enable = true; font.size = 12; # sweet spot for framework 13 settings.shell = lib.getExe config.programs.fish.package; }; }; services = { wired.enable = true; playerctld.enable = true; gpg-agent.enable = true; gnome-keyring = { enable = true; components = ["secrets"]; }; }; } ]; }