From e96fc6d8f90c96320a9c7e6663b734ab50ec1794 Mon Sep 17 00:00:00 2001 From: Leon Vack Date: Sun, 20 Mar 2022 00:12:21 +0100 Subject: [PATCH] tmux: add notes to existing keybindings (#2540) (#2742) Adds notes to the keybindings created in the tmux config making them show up in C-b ? and tmux list-keys -N Fixes #2540 --- modules/programs/tmux.nix | 34 +++++++++++-------- .../tmux/disable-confirmation-prompt.conf | 4 +-- .../programs/tmux/emacs-with-plugins.conf | 4 +-- tests/modules/programs/tmux/prefix.conf | 3 +- .../tmux/shortcut-without-prefix.conf | 3 +- tests/modules/programs/tmux/vi-all-true.conf | 4 +-- 6 files changed, 30 insertions(+), 22 deletions(-) diff --git a/modules/programs/tmux.nix b/modules/programs/tmux.nix index 4b5125966..91b1487e0 100644 --- a/modules/programs/tmux.nix +++ b/modules/programs/tmux.nix @@ -49,8 +49,8 @@ let ${optionalString cfg.newSession "new-session"} ${optionalString cfg.reverseSplit '' - bind v split-window -h - bind s split-window -v + bind -N "Split the pane into two, left and right" v split-window -h + bind -N "Split the pane into two, top and bottom" s split-window -v ''} set -g status-keys ${cfg.keyMode} @@ -58,34 +58,40 @@ let ${optionalString (cfg.keyMode == "vi" && cfg.customPaneNavigationAndResize) '' - bind h select-pane -L - bind j select-pane -D - bind k select-pane -U - bind l select-pane -R + bind h -N "Select pane to the left of the active pane" select-pane -L + bind j -N "Select pane below the active pane" select-pane -D + bind k -N "Select pane above the active pane" select-pane -U + bind l -N "Select pane to the right of the active pane" select-pane -R - bind -r H resize-pane -L ${toString cfg.resizeAmount} - bind -r J resize-pane -D ${toString cfg.resizeAmount} - bind -r K resize-pane -U ${toString cfg.resizeAmount} - bind -r L resize-pane -R ${toString cfg.resizeAmount} + bind -r -N "Resize the pane left by ${toString cfg.resizeAmount}" \ + H resize-pane -L ${toString cfg.resizeAmount} + bind -r -N "Resize the pane down by ${toString cfg.resizeAmount}" \ + J resize-pane -D ${toString cfg.resizeAmount} + bind -r -N "Resize the pane up by ${toString cfg.resizeAmount}" \ + K resize-pane -U ${toString cfg.resizeAmount} + bind -r -N "Resize the pane right by ${toString cfg.resizeAmount}" \ + L resize-pane -R ${toString cfg.resizeAmount} ''} ${if cfg.prefix != null then '' # rebind main key: ${cfg.prefix} unbind C-${defaultShortcut} set -g prefix ${cfg.prefix} - bind ${cfg.prefix} send-prefix + bind -N "Send the prefix key through to the application" \ + ${cfg.prefix} send-prefix '' else optionalString (cfg.shortcut != defaultShortcut) '' # rebind main key: C-${cfg.shortcut} unbind C-${defaultShortcut} set -g prefix C-${cfg.shortcut} - bind ${cfg.shortcut} send-prefix + bind -N "Send the prefix key through to the application" \ + ${cfg.shortcut} send-prefix bind C-${cfg.shortcut} last-window ''} ${optionalString cfg.disableConfirmationPrompt '' - bind-key & kill-window - bind-key x kill-pane + bind-key -N "Kill the current window" & kill-window + bind-key -N "Kill the current pane" x kill-pane ''} setw -g aggressive-resize ${boolToStr cfg.aggressiveResize} diff --git a/tests/modules/programs/tmux/disable-confirmation-prompt.conf b/tests/modules/programs/tmux/disable-confirmation-prompt.conf index 222f733d5..e97a94d19 100644 --- a/tests/modules/programs/tmux/disable-confirmation-prompt.conf +++ b/tests/modules/programs/tmux/disable-confirmation-prompt.conf @@ -19,8 +19,8 @@ set -g mode-keys emacs -bind-key & kill-window -bind-key x kill-pane +bind-key -N "Kill the current window" & kill-window +bind-key -N "Kill the current pane" x kill-pane setw -g aggressive-resize off diff --git a/tests/modules/programs/tmux/emacs-with-plugins.conf b/tests/modules/programs/tmux/emacs-with-plugins.conf index 97e226316..d01501925 100644 --- a/tests/modules/programs/tmux/emacs-with-plugins.conf +++ b/tests/modules/programs/tmux/emacs-with-plugins.conf @@ -10,8 +10,8 @@ setw -g pane-base-index 0 new-session -bind v split-window -h -bind s split-window -v +bind -N "Split the pane into two, left and right" v split-window -h +bind -N "Split the pane into two, top and bottom" s split-window -v set -g status-keys emacs diff --git a/tests/modules/programs/tmux/prefix.conf b/tests/modules/programs/tmux/prefix.conf index 318803002..831ec3b0e 100644 --- a/tests/modules/programs/tmux/prefix.conf +++ b/tests/modules/programs/tmux/prefix.conf @@ -20,7 +20,8 @@ set -g mode-keys emacs # rebind main key: C-a unbind C-b set -g prefix C-a -bind C-a send-prefix +bind -N "Send the prefix key through to the application" \ + C-a send-prefix diff --git a/tests/modules/programs/tmux/shortcut-without-prefix.conf b/tests/modules/programs/tmux/shortcut-without-prefix.conf index a8bc59cbb..4fd89ad24 100644 --- a/tests/modules/programs/tmux/shortcut-without-prefix.conf +++ b/tests/modules/programs/tmux/shortcut-without-prefix.conf @@ -20,7 +20,8 @@ set -g mode-keys emacs # rebind main key: C-a unbind C-b set -g prefix C-a -bind a send-prefix +bind -N "Send the prefix key through to the application" \ + a send-prefix bind C-a last-window diff --git a/tests/modules/programs/tmux/vi-all-true.conf b/tests/modules/programs/tmux/vi-all-true.conf index de1cbe06e..6a6fd6114 100644 --- a/tests/modules/programs/tmux/vi-all-true.conf +++ b/tests/modules/programs/tmux/vi-all-true.conf @@ -10,8 +10,8 @@ setw -g pane-base-index 0 new-session -bind v split-window -h -bind s split-window -v +bind -N "Split the pane into two, left and right" v split-window -h +bind -N "Split the pane into two, top and bottom" s split-window -v set -g status-keys vi