{ pkgs, config, ... }: { programs = { home-manager.enable = true; bash.enable = true; # Just in case the default shell is not ZSH, so we still have the variables zsh = { enable = true; enableAutosuggestions = true; enableCompletion = true; enableSyntaxHighlighting = true; # syntaxHighlighting.enable = true; # 23.11 syntax historySubstringSearch.enable = true; initExtra = '' # powerline-go duration support zmodload zsh/datetime function preexec() { __TIMER=$EPOCHREALTIME } ''; }; powerline-go = { enable = true; modules = [ "user" "host" "venv" "cwd" "perms" "git" ]; modulesRight = [ "jobs" "exit" "duration" "load" ]; settings = { colorize-hostname = true; max-width = 25; cwd-max-dir-size = 10; duration = "$( test -n \"$__TIMER\" && echo $(( $EPOCHREALTIME - $\{__TIMER:-EPOCHREALTIME})) || echo 0 )"; # UPST Implement this properly in home-manager }; extraUpdatePS1 = ''unset __TIMER''; }; # neovim = { # enable = true; # defaultEditor = true; # vimAlias = true; # viAlias = true; # vimdiffAlias = true; # }; # FIXME Still want this despite using nixvim gpg = { enable = true; homedir = "${config.xdg.stateHome}/gnupg"; settings = { # Remove fluff no-greeting = true; no-emit-version = true; no-comments = true; # Output format that I prefer keyid-format = "0xlong"; # Show fingerprints with-fingerprint = true; # Make sure to show if key is invalid # (should be default on most platform, # but just to be sure) list-options = "show-uid-validity"; verify-options = "show-uid-validity"; # Stronger algorithm (https://wiki.archlinux.org/title/GnuPG#Different_algorithm) personal-digest-preferences = "SHA512"; cert-digest-algo = "SHA512"; default-preference-list = "SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed"; personal-cipher-preferences = "TWOFISH CAMELLIA256 AES 3DES"; }; publicKeys = [{ source = builtins.fetchurl { url = "https://keys.openpgp.org/vks/v1/by-fingerprint/4FBA930D314A03215E2CDB0A8312C8CAC1BAC289"; sha256 = "sha256:10y9xqcy1vyk2p8baay14p3vwdnlwynk0fvfbika65hz2z8yw2cm"; }; trust = "ultimate"; }]; }; fzf.enable = true; # TODO highlight or bat }; home = { stateVersion = "23.05"; language = { base = "en_US.UTF-8"; time = "en_DK.UTF-8"; }; packages = with pkgs; [ # dotfiles dependencies coreutils bash gnugrep gnused gnutar openssl git wget curl python3Packages.pip ansible # TODO Reevaluate # shell zsh-completions nix-zsh-completions zsh-history-substring-search antigen # TODO Reevaluate powerline-go # terminal essentials moreutils man visidata nodePackages.insect translate-shell unzip unrar p7zip # remote openssh rsync borgbackup # cleanup ncdu jdupes duperemove optipng libjpeg # FIXME reflac not available (but also a dumb shell script) # local monitoring htop iotop iftop lsof strace pv progress speedtest-cli # multimedia toolbox ffmpeg sox imagemagick # password pass pwgen # Mail isync msmtp notmuch neomutt lynx # Organisation vdirsyncer khard khal todoman syncthing ]; }; }