configures tmux

This commit is contained in:
Dennis Schoepf 2026-01-09 21:57:05 +01:00
parent a5400b6d22
commit 4838f2eb46
3 changed files with 54 additions and 6 deletions

View file

@ -18,8 +18,8 @@
../modules/zoxide ../modules/zoxide
../modules/fish ../modules/fish
../modules/nvim ../modules/nvim
../modules/tmux
../modules/ghostty ../modules/ghostty
../modules/zellij
../modules/lazygit ../modules/lazygit
]; ];

View file

@ -27,9 +27,7 @@
# Device specific overlays # Device specific overlays
# Overlays for all devices are defined # Overlays for all devices are defined
# in modules/default.nix # in modules/default.nix
nixpkgs.overlays = [ nixpkgs.overlays = [];
inputs.zellij-switch.overlays.default
];
# System Packages # System Packages
environment.systemPackages = lib.mkAfter ( environment.systemPackages = lib.mkAfter (
@ -38,8 +36,6 @@
yt-dlp yt-dlp
fnm fnm
devenv devenv
zellij
zellij-switch
rsync rsync
] ]
); );

52
modules/tmux/default.nix Normal file
View file

@ -0,0 +1,52 @@
{ config, pkgs, ... }:
{
programs.tmux = {
enable = true;
baseIndex = 1;
clock24 = true;
disableConfirmationPrompt = true;
mouse = true;
newSession = true;
prefix = "C-b";
shell = "${pkgs.fish}/bin/fish";
terminal = "screen-256color";
plugins = with pkgs; [
{
plugin = tmuxPlugins.resurrect;
extraConfig = ''
set -g @resurrect-strategy-nvim 'session'
set -g @resurrect-capture-pane-contents 'on'
'';
}
{
plugin = tmuxPlugins.continuum;
extraConfig = ''
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
set -g @continuum-save-interval '10'
'';
}
]
extraConfig = ''
unbind %
bind | split-window -h
unbind '"'
bind - split-window -v
bind r source-file ~/.tmux.conf \; display "Config reloaded!"
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
bind ? list-keys -a
'';
}
}