refactor: move tmux to nixosModules

This commit is contained in:
matt1432 2024-11-22 16:10:51 -05:00
parent 06e62c54d4
commit ae24ae1400
6 changed files with 65 additions and 35 deletions
nixosModules

View file

@ -9,5 +9,6 @@ self: {
nvidia = import ./nvidia;
plymouth = import ./plymouth;
server = import ./server;
tmux = import ./tmux;
wyoming-plus = import ./wyoming-plus;
}

View file

@ -0,0 +1,58 @@
{
config,
lib,
pkgs,
...
}: let
inherit (lib) attrValues elemAt mkIf mkOption types;
cfg = config.programs.tmux;
firstUser = elemAt (attrValues config.home-manager.users) 0;
in {
options.programs.tmux = {
enableCustomConf = mkOption {
type = types.bool;
default = false;
};
};
config = mkIf cfg.enableCustomConf {
environment.etc."tmux.conf".source = firstUser.xdg.configFile."tmux/tmux.conf".source;
home-manager.sharedModules = [
{
programs = {
# Make sure we have color support
bash.shellAliases.tmux = "tmux -2";
tmux = {
enable = true;
mouse = true;
keyMode = "vi";
terminal = "tmux-256color";
newSession = true;
historyLimit = 30000;
plugins = attrValues {
inherit (pkgs.tmuxPlugins) dracula;
};
extraConfig =
# bash
''
bind-key -n Home send Escape "OH"
bind-key -n End send Escape "OF"
bind -T root WheelUpPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M"
bind -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M"
set -ga terminal-overrides ',xterm*:smcup@:rmcup@'
set -ga terminal-overrides ",*256col*:Tc"
'';
};
};
}
];
};
}