{ 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"; # }; }