{ pkgs, self, config, ... }: { home.packages = with pkgs; [ # shell utils direnv ripgrep tree wget # data manipulation jless jq yq # dicts aspell aspellDicts.en aspellDicts.en-computers aspellDicts.en-science # nix related nil nix-direnv nixd nixfmt nixpkgs-fmt rnix-lsp # my own stuff self.packages.${pkgs.system}.git-blame-stats self.packages.${pkgs.system}.git-broom self.packages.${pkgs.system}.ipconverter self.packages.${pkgs.system}.pizza self.packages.${pkgs.system}.seqstat self.packages.${pkgs.system}.slocalc ]; xdg = { configFile = { "aspell/config".text = '' local-data-dir ${pkgs.aspell}/lib/aspell data-dir ${pkgs.aspellDicts.en}/lib/aspell personal ${config.xdg.configHome}/aspell/en_US.personal repl ${config.xdg.configHome}/aspell/en_US.repl ''; }; }; home.sessionVariables = { EDITOR = "emacsclient -a="; VISUAL = "emacsclient -a="; LESS = "-FRSXM"; LESSCHARSET = "utf-8"; PAGER = "less"; ASPELL_CONF = "conf ${config.xdg.configHome}/aspell/config;"; # for some reason, if I don't set this, zsh is picked up and mess up stuff. SHELL = "${pkgs.fish}/bin/fish"; }; programs.alacritty = { enable = true; settings = { env = { TERM = "xterm-256color"; }; shell = { program = "${pkgs.fish}/bin/fish"; args = [ "--login" "-c" "tmux attach -t base || tmux new -s base" ]; }; font = { normal.family = "Monaspace Argon"; bold = { style = "Bold"; }; size = 18; }; }; }; programs.tmux = { enable = true; terminal = "xterm-256color"; escapeTime = 0; aggressiveResize = true; baseIndex = 1; shortcut = "z"; clock24 = true; shell = "${pkgs.fish}/bin/fish"; historyLimit = 50000; # Bigger buffer extraConfig = '' setw -g mouse on set-option -g renumber-windows on ''; }; programs.direnv = { enable = true; nix-direnv.enable = true; enableZshIntegration = true; config = { global.disable_stdin = true; global.strict_env = true; }; }; }