Skip to content

Instantly share code, notes, and snippets.

@mcmire
Created April 2, 2021 20:42
Show Gist options
  • Save mcmire/b6dc5e31ced05e762fff91c769b10569 to your computer and use it in GitHub Desktop.
Save mcmire/b6dc5e31ced05e762fff91c769b10569 to your computer and use it in GitHub Desktop.
Nested tmux sessions
### Nested sessions (YO DAWG)
# Source: <https://www.freecodecamp.org/news/tmux-in-practice-local-and-nested-remote-tmux-sessions-4f7ba5db8795/>
# TODO - remove
color_status_text="colour245"
color_window_off_status_bg="colour238"
color_light="white" #colour015
color_dark="colour232" # black= colour232
color_window_off_status_current_bg="colour254"
# While inside of a tmux-within-a-tmux, F12 will tell the outer session to
# ignore keypresses, forwarding all of them to the inner session
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 \;\
# F12 will turn back on the outer session too
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"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment