Files
nixos-blueprint/modules/shared/user/programs.nix
2025-07-15 15:32:05 +03:00

125 lines
3.4 KiB
Nix

{
config,
lib,
osConfig,
pkgs,
...
}: let
inherit (lib) mkIf;
inherit (osConfig.virtualisation) libvirtd;
inherit (osConfig.hardware) bluetooth;
in {
console.yazi.enable = true;
editor.helix.enable = true;
shell = {
fish.enable = true;
oh-my-posh.enable = true;
};
syncthing.enable = true;
# terminal.wezterm.enable = true;
terminal.ghostty.enable = true;
systemd.user.settings.Manager.DefaultEnvironment = {
TERMINAL = "ghostty";
};
services = {
# pueue.enable = true; # process queue in rust
ssh-agent.enable = true;
};
programs =
lib.attrsets.recursiveUpdate
{
bat.enable = true; # cat in rust
btop.enable = true;
# direnv.enable = true;
eza.enable = true; # ls in rust
fd.enable = true; # find in rust
fzf.enable = true; # fuzzy finder in rust
git.enable = true;
gitui.enable = true; # git ui in rust
jujutsu.enable = true; # vcs in rust
keychain.enable = true;
nix-index-database.comma.enable = true;
nix-index.enable = true;
nix-your-shell.enable = true;
pay-respects.enable = true; # thefuck in rust
ripgrep.enable = true; # grep in rust
zellij.enable = true;
zk.enable = true;
zoxide.enable = true; # fuzzy cd in rust
}
{
btop.settings.update_ms = 200;
# direnv.silent = true;
git = {
delta.enable = true; # diff in rust
signing.format = "ssh";
aliases = {
cl = "clone";
co = "checkout";
pom = "push origin main";
};
};
keychain.keys = ["id_ed25519"];
};
home.packages = with pkgs;
[
# development utils
alejandra # nix formatter in rust
# devenv # programming deps in rust
(mkIf config.programs.jujutsu.enable jj-fzf) # fuzzy finder jujutsu tui
just # make in rust
silicon # create code pics in rust
]
++ [
# console utils
# bluetuith # bluetooth tui in go
dua # disk space usage in rust
duf # better df in go
fend # calculator in rust
# mprocs # process runner in rust
ouch # archive manager in rust
# procs # ps in rust
rbw # bitwarden cli in rust
sd # sed in rust
systemctl-tui # systemctl tui in rust
trashy # trash cli in rust
up # ultimate plumber in go
]
++ [
# misc apps
adwaita-icon-theme
# vial # qmk keyboard configuring app
pinentry-qt # pinentry for rbw
(mkIf libvirtd.enable virt-manager) # libvirt gui
# waycheck # check wayland protocols
gpu-screen-recorder-gtk
]
++ [
# gui libadwaita apps
celluloid # mpv gui in libadwaita
# gnome-text-editor
helvum # pipewire patchbay in rust
junction # app chooser
mission-center # task manager in rust (partly)
(mkIf bluetooth.enable overskride) # bluetooth gui in rust
pika-backup # borg gui in rust
pwvucontrol # pipewire gui in rust
sonusmix # pipewire routing tool in rust
];
# xdg.desktopEntries.uni = {
# actions."Copy".exec = "fish -c \"~/.local/bin/uni --copy\"";
# categories = ["Utility" "X-Launch" "Network"];
# comment = "Select and open or copy URLs from a list.";
# exec = "fish -c \"~/.local/bin/uni\"";
# icon = "web-browser";
# name = "Uni URL Handler";
# startupNotify = true;
# terminal = false;
# type = "Application";
# };
}