.files/nix/configurations/vanadium/home/programs.nix

168 lines
3.2 KiB
Nix

{
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
# 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.nvd
pkgs.niv
pkgs.nix-tree
];
programs = {
neovim = {
enable = true;
defaultEditor = true;
};
emacs = {
enable = true;
package = pkgs.emacs28;
};
lazygit.enable = true;
fish.enable = true;
nushell.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.iamb
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
# 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"];
};
battery-notify = {
enable = true;
device_full = "/sys/class/power_supply/BAT1/charge_full";
device_now = "/sys/class/power_supply/BAT1/charge_now";
};
};
}
];
}