feat: basic tmux configuration

This commit is contained in:
ooks-io 2024-02-08 20:49:25 +13:00
parent 4e4f46a183
commit 4beae4c2e7
4 changed files with 63 additions and 27 deletions

View file

@ -3,12 +3,15 @@
imports = [
./zellij
#./screen
#./tmux
./tmux
];
options.homeModules.console.multiplexer = {
zellij = {
enable = lib.mkEnableOption "Enable zellij multiplexer";
};
tmux = {
enable = lib.mkEnableOption "Enable tmux multiplexer";
};
};
}

View file

@ -0,0 +1,58 @@
{ config, lib, pkgs, ... }:
let
cfg = config.homeModules.console.multiplexer.tmux;
inherit (config.colorscheme) colors;
in
{
config = lib.mkIf cfg.enable {
programs.tmux = {
enable = true;
shell = "${pkgs.fish}/bin/fish";
prefix = "C-space";
baseIndex = 1;
keyMode = "vi";
escapeTime = 0;
mouse = true;
plugins = with pkgs; [
{
plugin = tmuxPlugins.mode-indicator;
}
];
extraConfig = /* sh */ ''
# General Settings
set -g set-clipboard on
#Appearance
set -g status-position top
set -g status-style "fg=#${colors.base05} bg=#${colors.base00}"
#Windows
set -g status-justify "centre"
setw -g window-status-current-format "#[bg=#${colors.base0B},fg=#${colors.base00},bold] #W "
setw -g window-status-format "#[bg=#${colors.base03},fg=#${colors.base05}] #W "
#Left
set -g status-left " #{tmux_mode_indicator} #[bg=#${colors.base0B},fg=#${colors.base00}] #S"
set -g status-right '%Y-%m-%d %H:%M #{tmux_mode_indicator}'
#Move to Pane
bind -n M-Left select-pane -L
bind -n M-h select-pane -L
bind -n M-Right select-pane -R
bind -n M-l select-pane -R
bind -n M-Up select-pane -U
bind -n M-k select-pane -U
bind -n M-Down select-pane -D
bind -n M-j select-pane -D
#Split Pane
bind -n M-- split-window -h
bind -n M-= split-window -v
#Resize Pane
bind -n C-M-Up resize-pane -U 5
bind -n C-M-Down resize-pane -D 5
bind -n C-M-Left resize-pane -L 5
bind -n C-M-Right resize-pane -R 5
#Move to Window
bind -n M-1
'';
};
};
}