{ lib, config, pkgs, variant, pkgs-unstable, ... }: { home.packages = with pkgs; [ entr trash-cli nix-output-monitor unzip gnumake pandoc htop ffmpeg-full wget dtrx unzip zip glances file ]; programs.neovim = { enable = true; viAlias = true; defaultEditor = true; package = pkgs-unstable.neovim-unwrapped; extraPackages = (with pkgs; [ nodejs_23 ocamlPackages.lsp ocamlPackages.ocamlformat cargo nixd nixfmt-rfc-style lua-language-server ocaml ocamlPackages.ocaml-lsp pyright ripgrep ]) ++ (if variant != "allegro" then [ pkgs.gcc ] else [] ); }; xdg.mimeApps.defaultApplications = { "text/plain" = "nvim.desktop"; }; programs.tmux = { enable = true; historyLimit = 60000; escapeTime = 10; keyMode = "vi"; mouse = true; terminal = "tmux-256color"; extraConfig = '' unbind-key 'Space' bind-key 'Space' copy-mode set -g status-right "#{net_speed} #{cpu_percentage}" set -g default-terminal "tmux-256color" set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours - needs tmux-3.0 run-shell ${pkgs.tmuxPlugins.net-speed}/share/tmux-plugins/net-speed/net_speed.tmux run-shell ${pkgs.tmuxPlugins.cpu}/share/tmux-plugins/cpu/cpu.tmux ''; plugins = with pkgs.tmuxPlugins; [ net-speed ]; }; programs.git = { enable = true; userName = config.home.username; userEmail = "${config.home.username}@domain.xyz"; }; programs.direnv = { enable = true; nix-direnv.enable = true; }; programs.pistol.enable = true; }