{ pkgs, config, ... }: { home.packages = with pkgs; [ # shell utils coreutils direnv ripgrep tree wget # data manipulation jless jq yq # media # mpv - TODO: this is currently broken ffmpeg # dicts aspell aspellDicts.en aspellDicts.en-computers aspellDicts.en-science # nix related nil nix-direnv nixd nixfmt-classic nixpkgs-fmt nil # nix lsp ]; 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 # Avoid date/time taking up space set -g status-right "" set -g status-right-length 0 set-option -g renumber-windows on ''; }; 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"; # stop bothering me with brew messages HOMEBREW_NO_AUTO_UPDATE = 1; }; # an alternative to ls programs.eza = { enable = true; icons = true; extraOptions = [ "--group-directories-first" "--no-quotes" "--git-ignore" ]; }; programs.direnv = { enable = true; nix-direnv.enable = true; enableZshIntegration = true; config = { global.disable_stdin = true; global.strict_env = true; }; }; }