{ config, pkgs, lib, ... }: let in { imports = [ ./helix.nix # ./nnn.nix # ./tmux.nix ./zellij.nix ./xplr.nix ]; home.packages = with pkgs; [ ripgrep ripgrep-all file openssh ]; home.stateVersion = "22.05"; programs.home-manager.enable = true; programs.direnv.enable = true; programs.exa.enable = true; programs.bat.enable = true; programs.nix-index.enable = true; programs.fzf.enable = true; programs.ssh.enable = true; programs.atuin = { enable = true; settings = { style = "compact"; }; }; programs.nushell = { enable = true; envFile.text = '' zoxide init nushell | save -f ~/.zoxide.nu ''; configFile.text = '' source ~/.zoxide.nu def l [glob: string = ""] { ls -la $glob | sort-by type | select mode size modified name target } ''; }; programs.fish = { enable = true; shellAliases = { l = "exa -lah --group-directories-first --icons"; sus = "systemctl suspend"; cat = "bat"; }; shellAbbrs = { ns = "nix shell"; nss = "nix search"; flake-update = "nix flake lock --update-input"; vim = "hx"; }; functions = { fish_prompt = { body = builtins.readFile ./prompt.fish; }; __cd_hook = { body = "l"; onVariable = "PWD"; }; load-env-file = { body = '' for v in (grep -v "^\s*#" $argv[1]) set -gx (echo -n $v | tr = \n) end ''; }; }; interactiveShellInit = let gpgAgentInit = lib.optionalString pkgs.stdenv.isDarwin '' # Initialize GPG agent gpgconf --launch gpg-agent set -gx GPG_TTY (tty) set -gx SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket) ''; in '' # Argument abbrs because home-manager doesn't support them abbr -ag --position anywhere -- ifc '--inputs-from ${../.}' # Emacs TRAMP integration if test "$TERM" = "dumb" function fish_prompt echo "\$ " end function fish_right_prompt; end function fish_greeting; end function fish_title; end end # Initialize hooks __cd_hook > /dev/null ${gpgAgentInit} ''; }; programs.zoxide = { enable = true; }; programs.git = { enable = true; userName = "Nikodem Rabuliński"; userEmail = lib.mkDefault "nikodem@rabulinski.com"; delta.enable = true; signing = { key = lib.mkDefault "FF629AA9E08138DB"; signByDefault = true; }; extraConfig = { push.followTags = true; }; }; programs.gpg = { enable = true; settings = {default-key = "FF629AA9E08138DB";}; }; services.gpg-agent = { enable = lib.mkDefault pkgs.hostPlatform.isLinux; enableSshSupport = true; pinentryFlavor = "tty"; sshKeys = ["81CC27083653861F657A23280C32A9B41DAEF9A0"]; }; }