Last active
February 5, 2024 02:26
-
-
Save samoshkin/05e65f7f1c9b55d3fc7690b59d678734 to your computer and use it in GitHub Desktop.
tmux.conf excerpt to toggle on/off session keybindings and prefix handling
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bind -T root F12 \ | |
set prefix None \;\ | |
set key-table off \;\ | |
set status-style "fg=$color_status_text,bg=$color_window_off_status_bg" \;\ | |
set window-status-current-format "#[fg=$color_window_off_status_bg,bg=$color_window_off_status_current_bg]$separator_powerline_right#[default] #I:#W# #[fg=$color_window_off_status_current_bg,bg=$color_window_off_status_bg]$separator_powerline_right#[default]" \;\ | |
set window-status-current-style "fg=$color_dark,bold,bg=$color_window_off_status_current_bg" \;\ | |
if -F '#{pane_in_mode}' 'send-keys -X cancel' \;\ | |
refresh-client -S \;\ | |
bind -T off F12 \ | |
set -u prefix \;\ | |
set -u key-table \;\ | |
set -u status-style \;\ | |
set -u window-status-current-style \;\ | |
set -u window-status-current-format \;\ | |
refresh-client -S | |
wg_is_keys_off="#[fg=$color_light,bg=$color_window_off_indicator]#([ $(tmux show-option -qv key-table) = 'off' ] && echo 'OFF')#[default]" | |
set -g status-right "$wg_is_keys_off #{sysstat_cpu} | #{sysstat_mem} | #{sysstat_loadavg} | $wg_user_host" |
Hi,
I've got 2 sessions - (outer) s1 and inside there is (inner) s2.
When I press F10 (got toggle key bound to F10) on the keyboard it works as expected, but trying to do the same in the script ('tmux send -t s1 F10') disables not the outer, but the innser session (s2 instead of s1).
Here's terminal output:
$ tmux send -t s1 F10 (disables s2)
$ tmux send -t s2 F10 (echoes below)
^[[21~%)
Any ideas how to make it work?
This is a minimal configuration for OFF mode (tmux 3.0a):
# Activate OFF mode
bind -n M-o \
set prefix None \;\
set key-table off \;\
set status-style "fg=colour245,bg=colour238"
# Disable OFF mode
bind -T off M-O \
set -u prefix \;\
set -u key-table \;\
set -u status-style
- setting the status-style is enough for my liking
- removing the client refresh seems to still work just fine for some reason
- using a different keybind to enable and disable OFF mode means you can now technically go arbitrarily deep with the TMUX nesting
This is a minimal configuration for OFF mode (tmux 3.0a):
wow man, this minimal setup is so good. appreciate
Hey all, I just released tmux-nested, a plugin that takes inspiration from this gist to support arbitrary levels of nesting. Check it out, it might be of interest!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@Delt-A do you need to have a tmux session on every jump to your target network? couldn't you use something like https://www.redhat.com/sysadmin/ssh-proxy-bastion-proxyjump to ssh directly into the target (using the others only as jumps) and then have one tmux session there?