I decided to upgrade from the tmux pachage in the repos to the git version to get a bugfix from the newer update, but now .tmux doesn't work anymore. When I source .tmux.conf i get
'cut -c3- ~/.tmux.conf | sh -s _apply_configuration' returned 2
and the statusline is the normal tmux one. If i revert to the older tmux version (2.9a2), .tmux works again.
The output of
cut -c3- ~/.tmux.conf | sh -sx _apply_configuration > tmux.log 2>&1
is here
+ cat
+ set -e
+ printf ''
+ sed -E s///
+ __newline='
'
+ command -v perl
+ _apply_configuration
+ command -v reattach-to-user-namespace
+ _apply_overrides
+ tmux_conf_theme_24b_colour=true
+ _is_enabled true
+ '[' xtrue = xenabled ']'
+ '[' xtrue = xtrue ']'
+ return 0
+ case "$TERM" in
+ _apply_bindings
++ tmux list-keys
++ grep new-window
++ head -1
+ line='bind-key -T prefix c new-window'
+ prefix='bind-key -T prefix c '
+ column=50
+ tmux_conf_new_window_retain_current_path=false
++ tmux list-keys
++ grep -e 'new-window\(\s\+-c\s\+"#{pane_current_path}\|$\)'
+ IFS=
+ read -r line
+ '[' -z 'bind-key -T prefix c new-window' ']'
++ printf %s 'bind-key -T prefix c new-window'
++ sed -E -e 's/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g'
++ cut -c-50
+ left='bind-key -T prefix c '
+ _is_enabled false
+ '[' xfalse = xenabled ']'
+ '[' xfalse = xtrue ']'
+ '[' xfalse = xyes ']'
+ '[' xfalse = x1 ']'
+ return 1
++ cut -c50-
++ awk '-F\"' 'BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }'
++ sed -E -e 's/-c[ \t]+"#\{pane_current_path\}"$//g'
++ printf %s 'bind-key -T prefix c new-window'
+ right=' new-window'
+ eval 'tmux bind-key -T prefix c new-window'
+ IFS=
+ read -r line
+ '[' -z 'bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S "Swap Left" l "swap-window -t:-1" "Swap Right" r "swap-window -t:+1" "#{?pane_marked_set,,-}Swap Marked" s swap-window Kill X kill-window Respawn R "respawn-window -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" Rename n "command-prompt -I \"#W\" \"rename-window -- '\''%%'\''\"" "New After" w "new-window -a" "New At End" W new-window' ']'
++ printf %s 'bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S "Swap Left" l "swap-window -t:-1" "Swap Right" r "swap-window -t:+1" "#{?pane_marked_set,,-}Swap Marked" s swap-window Kill X kill-window Respawn R "respawn-window -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" Rename n "command-prompt -I \"#W\" \"rename-window -- '\''%%'\''\"" "New After" w "new-window -a" "New At End" W new-window'
++ cut -c-50
++ sed -E -e 's/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g'
+ left='bind-key -T root MouseDown3Status '
+ _is_enabled false
+ '[' xfalse = xenabled ']'
+ '[' xfalse = xtrue ']'
+ '[' xfalse = xyes ']'
+ '[' xfalse = x1 ']'
+ return 1
++ printf %s 'bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S "Swap Left" l "swap-window -t:-1" "Swap Right" r "swap-window -t:+1" "#{?pane_marked_set,,-}Swap Marked" s swap-window Kill X kill-window Respawn R "respawn-window -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" Rename n "command-prompt -I \"#W\" \"rename-window -- '\''%%'\''\"" "New After" w "new-window -a" "New At End" W new-window'
++ cut -c50-
++ awk '-F\"' 'BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }'
++ sed -E -e 's/-c[ \t]+"#\{pane_current_path\}"$//g'
+ right=' display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S "Swap Left" l "swap-window -t:-1" "Swap Right" r "swap-window -t:+1" "#{?pane_marked_set,,-}Swap Marked" s swap-window Kill X kill-window Respawn R "respawn-window -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" Rename n "command-prompt -I \"#W\" \"rename-window -- '\''%%'\''\"" "New After" w "new-window -a" "New At End" W new-window'
+ eval 'tmux bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S "Swap Left" l "swap-window -t:-1" "Swap Right" r "swap-window -t:+1" "#{?pane_marked_set,,-}Swap Marked" s swap-window Kill X kill-window Respawn R "respawn-window -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" Rename n "command-prompt -I \"#W\" \"rename-window -- '\''%%'\''\"" "New After" w "new-window -a" "New At End" W new-window'
+ IFS=
+ read -r line
+ '[' -z 'bind-key -T root MouseDown3StatusLeft display-menu -T "#[align=centre]#{session_name}" -t = -x M -y S Next n "switch-client -n" Previous p "switch-client -p" Renumber N "move-window -r" Rename n "command-prompt -I \"#S\" \"rename-session -- '\''%%'\''\"" "New Session" s new-session "New Window" w new-window' ']'
++ printf %s 'bind-key -T root MouseDown3StatusLeft display-menu -T "#[align=centre]#{session_name}" -t = -x M -y S Next n "switch-client -n" Previous p "switch-client -p" Renumber N "move-window -r" Rename n "command-prompt -I \"#S\" \"rename-session -- '\''%%'\''\"" "New Session" s new-session "New Window" w new-window'
++ cut -c-50
++ sed -E -e 's/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g'
+ left='bind-key -T root MouseDown3StatusLeft '
+ _is_enabled false
+ '[' xfalse = xenabled ']'
+ '[' xfalse = xtrue ']'
+ '[' xfalse = xyes ']'
+ '[' xfalse = x1 ']'
+ return 1
++ printf %s 'bind-key -T root MouseDown3StatusLeft display-menu -T "#[align=centre]#{session_name}" -t = -x M -y S Next n "switch-client -n" Previous p "switch-client -p" Renumber N "move-window -r" Rename n "command-prompt -I \"#S\" \"rename-session -- '\''%%'\''\"" "New Session" s new-session "New Window" w new-window'
++ cut -c50-
++ awk '-F\"' 'BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }'
++ sed -E -e 's/-c[ \t]+"#\{pane_current_path\}"$//g'
+ right=' display-menu -T "#[align=centre]#{session_name}" -t = -x M -y S Next n "switch-client -n" Previous p "switch-client -p" Renumber N "move-window -r" Rename n "command-prompt -I \"#S\" \"rename-session -- '\''%%'\''\"" "New Session" s new-session "New Window" w new-window'
+ eval 'tmux bind-key -T root MouseDown3StatusLeft display-menu -T "#[align=centre]#{session_name}" -t = -x M -y S Next n "switch-client -n" Previous p "switch-client -p" Renumber N "move-window -r" Rename n "command-prompt -I \"#S\" \"rename-session -- '\''%%'\''\"" "New Session" s new-session "New Window" w new-window'
+ IFS=
+ read -r line
+ tmux_conf_new_pane_retain_current_path=true
++ grep -e 'split\(-\|_\)window'
++ tmux list-keys
+ IFS=
+ read -r line
+ '[' -z 'bind-key -T prefix \" split-window' ']'
++ printf %s 'bind-key -T prefix \" split-window'
++ cut -c-50
++ sed -E -e 's/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g'
+ left='bind-key -T prefix \\\" '
+ _is_enabled true
+ '[' xtrue = xenabled ']'
+ '[' xtrue = xtrue ']'
+ return 0
++ printf %s 'bind-key -T prefix \" split-window'
++ cut -c50-
++ awk '-F\"' 'BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }'
++ sed -E -e '/#\{pane_current_path\}/!s/split(-|_)window([ \t]+#\{pane_tty\})?([ \t]+-(h|v))?/& -c "#{pane_current_path}"/g'
+ right=' split-window -c "#{pane_current_path}"'
+ eval 'tmux bind-key -T prefix \\\" split-window -c "#{pane_current_path}"'
+ true
+ IFS=
+ read -r line
+ '[' -z 'bind-key -T prefix % split-window -h -c "#{pane_current_path}"' ']'
++ printf %s 'bind-key -T prefix % split-window -h -c "#{pane_current_path}"'
++ cut -c-50
++ sed -E -e 's/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g'
+ left='bind-key -T prefix % '
+ _is_enabled true
+ '[' xtrue = xenabled ']'
+ '[' xtrue = xtrue ']'
+ return 0
++ printf %s 'bind-key -T prefix % split-window -h -c "#{pane_current_path}"'
++ cut -c50-
++ awk '-F\"' 'BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }'
++ sed -E -e '/#\{pane_current_path\}/!s/split(-|_)window([ \t]+#\{pane_tty\})?([ \t]+-(h|v))?/& -c "#{pane_current_path}"/g'
+ right=' split-window -h -c "#{pane_current_path}"'
+ eval 'tmux bind-key -T prefix % split-window -h -c "#{pane_current_path}"'
+ IFS=
+ read -r line
+ '[' -z 'bind-key -T prefix - split-window -v -c "#{pane_current_path}"' ']'
++ printf %s 'bind-key -T prefix - split-window -v -c "#{pane_current_path}"'
++ cut -c-50
++ sed -E -e 's/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g'
+ left='bind-key -T prefix - '
+ _is_enabled true
+ '[' xtrue = xenabled ']'
+ '[' xtrue = xtrue ']'
+ return 0
++ printf %s 'bind-key -T prefix - split-window -v -c "#{pane_current_path}"'
++ cut -c50-
++ awk '-F\"' 'BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }'
++ sed -E -e '/#\{pane_current_path\}/!s/split(-|_)window([ \t]+#\{pane_tty\})?([ \t]+-(h|v))?/& -c "#{pane_current_path}"/g'
+ right=' split-window -v -c "#{pane_current_path}"'
+ eval 'tmux bind-key -T prefix - split-window -v -c "#{pane_current_path}"'
+ IFS=
+ read -r line
+ '[' -z 'bind-key -T prefix _ split-window -h -c "#{pane_current_path}"' ']'
++ printf %s 'bind-key -T prefix _ split-window -h -c "#{pane_current_path}"'
++ cut -c-50
++ sed -E -e 's/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g'
+ left='bind-key -T prefix _ '
+ _is_enabled true
+ '[' xtrue = xenabled ']'
+ '[' xtrue = xtrue ']'
+ return 0
++ printf %s 'bind-key -T prefix _ split-window -h -c "#{pane_current_path}"'
++ cut -c50-
++ awk '-F\"' 'BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }'
++ sed -E -e '/#\{pane_current_path\}/!s/split(-|_)window([ \t]+#\{pane_tty\})?([ \t]+-(h|v))?/& -c "#{pane_current_path}"/g'
+ right=' split-window -h -c "#{pane_current_path}"'
+ eval 'tmux bind-key -T prefix _ split-window -h -c "#{pane_current_path}"'
+ IFS=
+ read -r line
+ '[' -z 'bind-key -T prefix M-m display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r "copy-mode -t=; send -Xt= search-backward \"#{q:mouse_word}\"" "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y "send-keys -l -- \"#{q:mouse_word}\"" "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c "set-buffer -- \"#{q:mouse_word}\"" "#{?mouse_line,Copy Line,}" l "set-buffer -- \"#{q:mouse_line}\"" "Horizontal Split" h "split-window -h -c #{pane_current_path}" "Vertical Split" v "split-window -v -c #{pane_current_path}" "Swap Up" u "swap-pane -U" "Swap Down" d "swap-pane -D" "#{?pane_marked_set,,-}Swap Marked" s swap-pane Kill X kill-pane Respawn R "respawn-pane -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" "#{?window_zoomed_flag,Unzoom,Zoom}" z "resize-pane -Z"' ']'
++ printf %s 'bind-key -T prefix M-m display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r "copy-mode -t=; send -Xt= search-backward \"#{q:mouse_word}\"" "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y "send-keys -l -- \"#{q:mouse_word}\"" "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c "set-buffer -- \"#{q:mouse_word}\"" "#{?mouse_line,Copy Line,}" l "set-buffer -- \"#{q:mouse_line}\"" "Horizontal Split" h "split-window -h -c #{pane_current_path}" "Vertical Split" v "split-window -v -c #{pane_current_path}" "Swap Up" u "swap-pane -U" "Swap Down" d "swap-pane -D" "#{?pane_marked_set,,-}Swap Marked" s swap-pane Kill X kill-pane Respawn R "respawn-pane -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" "#{?window_zoomed_flag,Unzoom,Zoom}" z "resize-pane -Z"'
++ cut -c-50
++ sed -E -e 's/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g'
+ left='bind-key -T prefix M-m '
+ _is_enabled true
+ '[' xtrue = xenabled ']'
+ '[' xtrue = xtrue ']'
+ return 0
++ printf %s 'bind-key -T prefix M-m display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r "copy-mode -t=; send -Xt= search-backward \"#{q:mouse_word}\"" "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y "send-keys -l -- \"#{q:mouse_word}\"" "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c "set-buffer -- \"#{q:mouse_word}\"" "#{?mouse_line,Copy Line,}" l "set-buffer -- \"#{q:mouse_line}\"" "Horizontal Split" h "split-window -h -c #{pane_current_path}" "Vertical Split" v "split-window -v -c #{pane_current_path}" "Swap Up" u "swap-pane -U" "Swap Down" d "swap-pane -D" "#{?pane_marked_set,,-}Swap Marked" s swap-pane Kill X kill-pane Respawn R "respawn-pane -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" "#{?window_zoomed_flag,Unzoom,Zoom}" z "resize-pane -Z"'
++ cut -c50-
++ awk '-F\"' 'BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }'
++ sed -E -e '/#\{pane_current_path\}/!s/split(-|_)window([ \t]+#\{pane_tty\})?([ \t]+-(h|v))?/& -c "#{pane_current_path}"/g'
+ right=' display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r "copy-mode -t=; send -Xt= search-backward \""#{q:mouse_word}"\"" "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y "send-keys -l -- \""#{q:mouse_word}"\"" "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c "set-buffer -- \""#{q:mouse_word}"\"" "#{?mouse_line,Copy Line,}" l "set-buffer -- \""#{q:mouse_line}"\"" "Horizontal Split" h "split-window -h -c #{pane_current_path}" "Vertical Split" v "split-window -v -c #{pane_current_path}" "Swap Up" u "swap-pane -U" "Swap Down" d "swap-pane -D" "#{?pane_marked_set,,-}Swap Marked" s swap-pane Kill X kill-pane Respawn R "respawn-pane -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" "#{?window_zoomed_flag,Unzoom,Zoom}" z "resize-pane -Z"'
+ eval 'tmux bind-key -T prefix M-m display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r "copy-mode -t=; send -Xt= search-backward \""#{q:mouse_word}"\"" "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y "send-keys -l -- \""#{q:mouse_word}"\"" "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c "set-buffer -- \""#{q:mouse_word}"\"" "#{?mouse_line,Copy Line,}" l "set-buffer -- \""#{q:mouse_line}"\"" "Horizontal Split" h "split-window -h -c #{pane_current_path}" "Vertical Split" v "split-window -v -c #{pane_current_path}" "Swap Up" u "swap-pane -U" "Swap Down" d "swap-pane -D" "#{?pane_marked_set,,-}Swap Marked" s swap-pane Kill X kill-pane Respawn R "respawn-pane -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" "#{?window_zoomed_flag,Unzoom,Zoom}" z "resize-pane -Z"'
+ IFS=
+ read -r line
+ '[' -z 'bind-key -T root MouseDown3Pane if-shell -F -t = "#{||:#{mouse_any_flag},#{pane_in_mode}}" "select-pane -t=; send-keys -M" "display-menu -t= -xM -yM -T \"#[align=centre]#{pane_index} (#{pane_id})\" '\''#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}'\'' '\''C-r'\'' {copy-mode -t=; send -Xt= search-backward \"#{q:mouse_word}\"} '\''#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}'\'' '\''C-y'\'' {send-keys -l -- \"#{q:mouse_word}\"} '\''#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}'\'' '\''c'\'' {set-buffer -- \"#{q:mouse_word}\"} '\''#{?mouse_line,Copy Line,}'\'' '\''l'\'' {set-buffer -- \"#{q:mouse_line}\"} '\'''\'' '\''Horizontal Split'\'' '\''h'\'' {split-window -h} '\''Vertical Split'\'' '\''v'\'' {split-window -v} '\'''\'' '\''Swap Up'\'' '\''u'\'' {swap-pane -U} '\''Swap Down'\'' '\''d'\'' {swap-pane -D} '\''#{?pane_marked_set,,-}Swap Marked'\'' '\''s'\'' {swap-pane} '\'''\'' '\''Kill'\'' '\''X'\'' {kill-pane} '\''Respawn'\'' '\''R'\'' {respawn-pane -k} '\''#{?pane_marked,Unmark,Mark}'\'' '\''m'\'' {select-pane -m} '\''#{?window_zoomed_flag,Unzoom,Zoom}'\'' '\''z'\'' {resize-pane -Z}"' ']'
++ printf %s 'bind-key -T root MouseDown3Pane if-shell -F -t = "#{||:#{mouse_any_flag},#{pane_in_mode}}" "select-pane -t=; send-keys -M" "display-menu -t= -xM -yM -T \"#[align=centre]#{pane_index} (#{pane_id})\" '\''#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}'\'' '\''C-r'\'' {copy-mode -t=; send -Xt= search-backward \"#{q:mouse_word}\"} '\''#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}'\'' '\''C-y'\'' {send-keys -l -- \"#{q:mouse_word}\"} '\''#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}'\'' '\''c'\'' {set-buffer -- \"#{q:mouse_word}\"} '\''#{?mouse_line,Copy Line,}'\'' '\''l'\'' {set-buffer -- \"#{q:mouse_line}\"} '\'''\'' '\''Horizontal Split'\'' '\''h'\'' {split-window -h} '\''Vertical Split'\'' '\''v'\'' {split-window -v} '\'''\'' '\''Swap Up'\'' '\''u'\'' {swap-pane -U} '\''Swap Down'\'' '\''d'\'' {swap-pane -D} '\''#{?pane_marked_set,,-}Swap Marked'\'' '\''s'\'' {swap-pane} '\'''\'' '\''Kill'\'' '\''X'\'' {kill-pane} '\''Respawn'\'' '\''R'\'' {respawn-pane -k} '\''#{?pane_marked,Unmark,Mark}'\'' '\''m'\'' {select-pane -m} '\''#{?window_zoomed_flag,Unzoom,Zoom}'\'' '\''z'\'' {resize-pane -Z}"'
++ cut -c-50
++ sed -E -e 's/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g'
+ left='bind-key -T root MouseDown3Pane '
+ _is_enabled true
+ '[' xtrue = xenabled ']'
+ '[' xtrue = xtrue ']'
+ return 0
++ printf %s 'bind-key -T root MouseDown3Pane if-shell -F -t = "#{||:#{mouse_any_flag},#{pane_in_mode}}" "select-pane -t=; send-keys -M" "display-menu -t= -xM -yM -T \"#[align=centre]#{pane_index} (#{pane_id})\" '\''#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}'\'' '\''C-r'\'' {copy-mode -t=; send -Xt= search-backward \"#{q:mouse_word}\"} '\''#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}'\'' '\''C-y'\'' {send-keys -l -- \"#{q:mouse_word}\"} '\''#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}'\'' '\''c'\'' {set-buffer -- \"#{q:mouse_word}\"} '\''#{?mouse_line,Copy Line,}'\'' '\''l'\'' {set-buffer -- \"#{q:mouse_line}\"} '\'''\'' '\''Horizontal Split'\'' '\''h'\'' {split-window -h} '\''Vertical Split'\'' '\''v'\'' {split-window -v} '\'''\'' '\''Swap Up'\'' '\''u'\'' {swap-pane -U} '\''Swap Down'\'' '\''d'\'' {swap-pane -D} '\''#{?pane_marked_set,,-}Swap Marked'\'' '\''s'\'' {swap-pane} '\'''\'' '\''Kill'\'' '\''X'\'' {kill-pane} '\''Respawn'\'' '\''R'\'' {respawn-pane -k} '\''#{?pane_marked,Unmark,Mark}'\'' '\''m'\'' {select-pane -m} '\''#{?window_zoomed_flag,Unzoom,Zoom}'\'' '\''z'\'' {resize-pane -Z}"'
++ cut -c50-
++ awk '-F\"' 'BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }'
++ sed -E -e '/#\{pane_current_path\}/!s/split(-|_)window([ \t]+#\{pane_tty\})?([ \t]+-(h|v))?/& -c "#{pane_current_path}"/g'
+ right=' if-shell -F -t = "#{||:#{mouse_any_flag},#{pane_in_mode}}" "select-pane -t=; send-keys -M" "display-menu -t= -xM -yM -T \"#[align=centre]"#{pane_index} (#{pane_id}")\" '\''#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}'\'' '\''C-r'\'' {copy-mode -t=; send -Xt= search-backward \""#{q:mouse_word}"\"} '\''#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}'\'' '\''C-y'\'' {send-keys -l -- \""#{q:mouse_word}"\"} '\''#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}'\'' '\''c'\'' {set-buffer -- \""#{q:mouse_word}"\"} '\''#{?mouse_line,Copy Line,}'\'' '\''l'\'' {set-buffer -- \""#{q:mouse_line}"\"} '\'''\'' '\''Horizontal Split'\'' '\''h'\'' {split-window -h -c "#{pane_current_path}"} '\''Vertical Split'\'' '\''v'\'' {split-window -v -c "#{pane_current_path}"} '\'''\'' '\''Swap Up'\'' '\''u'\'' {swap-pane -U} '\''Swap Down'\'' '\''d'\'' {swap-pane -D} '\''#{?pane_marked_set,,-}Swap Marked'\'' '\''s'\'' {swap-pane} '\'''\'' '\''Kill'\'' '\''X'\'' {kill-pane} '\''Respawn'\'' '\''R'\'' {respawn-pane -k} '\''#{?pane_marked,Unmark,Mark}'\'' '\''m'\'' {select-pane -m} '\''#{?window_zoomed_flag,Unzoom,Zoom}'\'' '\''z'\'' {resize-pane -Z}"'
+ eval 'tmux bind-key -T root MouseDown3Pane if-shell -F -t = "#{||:#{mouse_any_flag},#{pane_in_mode}}" "select-pane -t=; send-keys -M" "display-menu -t= -xM -yM -T \"#[align=centre]"#{pane_index} (#{pane_id}")\" '\''#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}'\'' '\''C-r'\'' {copy-mode -t=; send -Xt= search-backward \""#{q:mouse_word}"\"} '\''#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}'\'' '\''C-y'\'' {send-keys -l -- \""#{q:mouse_word}"\"} '\''#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}'\'' '\''c'\'' {set-buffer -- \""#{q:mouse_word}"\"} '\''#{?mouse_line,Copy Line,}'\'' '\''l'\'' {set-buffer -- \""#{q:mouse_line}"\"} '\'''\'' '\''Horizontal Split'\'' '\''h'\'' {split-window -h -c "#{pane_current_path}"} '\''Vertical Split'\'' '\''v'\'' {split-window -v -c "#{pane_current_path}"} '\'''\'' '\''Swap Up'\'' '\''u'\'' {swap-pane -U} '\''Swap Down'\'' '\''d'\'' {swap-pane -D} '\''#{?pane_marked_set,,-}Swap Marked'\'' '\''s'\'' {swap-pane} '\'''\'' '\''Kill'\'' '\''X'\'' {kill-pane} '\''Respawn'\'' '\''R'\'' {respawn-pane -k} '\''#{?pane_marked,Unmark,Mark}'\'' '\''m'\'' {select-pane -m} '\''#{?window_zoomed_flag,Unzoom,Zoom}'\'' '\''z'\'' {resize-pane -Z}"'
Hello @bertin0 馃憢
I didn't start investigating the breaking changes in tmux 3.0+
I'll keep you posted when I do
Hello @bertin0
I can't reproduce the problem here with:
https://github.com/tmux/tmux.git at commit 29b2d07b6b7f55cd98afbb018027889494c999a7https://github.com/gpakosz/.tmux.git at commit e0a45082ebb5381e585f7a41de2993a7789b9448Still having the same problem on tmux at commit 7e7c8faa34ceeed66d508dd8c5cb6983b4c2d7a5 and .tmux at e0a45082ebb5381e585f7a41de2993a7789b9448... How else can I help?
Can you please describe your configuration?
Did you make modifications to .tmux.conf or your ~/.tmux.conf.local copy?
Same problem using tmux 3.0-rc3 (https://github.com/tmux/tmux/releases/tag/3.0)
Running in Ubuntu 18.04 Docker container over ssh
(Copied from the Dockerfile):
FROM ubuntu:18.04
RUN mkdir /Software
RUN cd /Software && curl -o tmux-3.0-rc3.tar.gz -L https://github.com/tmux/tmux/releases/download/3.0/tmux-3.0-rc3.tar.gz
RUN cd /Software && tar -xf tmux-3.0-rc3.tar.gz && rm tmux-3.0-rc3.tar.gz
RUN cd /Software/tmux-3.0-rc3 && ./configure && make -j 8 && make install
Sourcing the .tmux.conf file fails:
$ cut -c3- ~/.tmux.conf | sh -sx _apply_configuration
+ cat
+ set -e
+ unset GREP_OPTIONS
+ export LC_NUMERIC=C
+ printf
+ sed -E s///
+ __newline=
+ command -v perl
+ _apply_configuration
+ command -v reattach-to-user-namespace
+ _apply_overrides
+ tmux_conf_theme_24b_colour=false
+ _is_enabled false
+ [ xfalse = xenabled ]
+ [ xfalse = xtrue ]
+ [ xfalse = xyes ]
+ [ xfalse = x1 ]
+ return 1
+ _apply_bindings
+ tmux list-keys
+ grep new-window
+ head -1
+ line=bind-key -T prefix c new-window
+ prefix=bind-key -T prefix c
+ column=50
+ tmux_conf_new_window_retain_current_path=false
+ tmux list-keys
+ grep -E new-window(\s+-c\s+"#{pane_current_path}"|$)
+ IFS= read -r line
+ [ -z bind-key -T prefix c new-window ]
+ printf %s bind-key -T prefix c new-window
+ cut -c-50
+ sed -E -e s/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g
+ left=bind-key -T prefix c
+ _is_enabled false
+ [ xfalse = xenabled ]
+ [ xfalse = xtrue ]
+ [ xfalse = xyes ]
+ [ xfalse = x1 ]
+ return 1
+ printf %s bind-key -T prefix c new-window
+ cut -c50-
+ awk -F\" BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }
+ sed -E -e s/-c[ \t]+"#\{pane_current_path\}"$//g
+ right= new-window
+ eval tmux bind-key -T prefix c new-window
+ true
+ IFS= read -r line
+ [ -z bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S "Swap Left" l "swap-window -t:-1" "Swap Right" r "swap-window -t:+1" "#{?pane_marked_set,,-}Swap Marked" s swap-window Kill X kill-window Respawn R "respawn-window -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" Rename n "command-prompt -I \"#W\" \"rename-window -- '%%'\"" "New After" w "new-window -a" "New At End" W new-window ]
+ printf %s bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S "Swap Left" l "swap-window -t:-1" "Swap Right" r "swap-window -t:+1" "#{?pane_marked_set,,-}Swap Marked" s swap-window Kill X kill-window Respawn R "respawn-window -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" Rename n "command-prompt -I \"#W\" \"rename-window -- '%%'\"" "New After" w "new-window -a" "New At End" W new-window
+ cut -c-50
+ sed -E -e s/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g
+ left=bind-key -T root MouseDown3Status
+ _is_enabled false
+ [ xfalse = xenabled ]
+ [ xfalse = xtrue ]
+ [ xfalse = xyes ]
+ [ xfalse = x1 ]
+ return 1
+ awk -F\" BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }
+ + sed -E -e s/-c[ \t]+"#\{pane_current_path\}"$//g
cut -c50-
+ printf %s bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S "Swap Left" l "swap-window -t:-1" "Swap Right" r "swap-window -t:+1" "#{?pane_marked_set,,-}Swap Marked" s swap-window Kill X kill-window Respawn R "respawn-window -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" Rename n "command-prompt -I \"#W\" \"rename-window -- '%%'\"" "New After" w "new-window -a" "New At End" W new-window
+ right= display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S "Swap Left" l "swap-window -t:-1" "Swap Right" r "swap-window -t:+1" "#{?pane_marked_set,,-}Swap Marked" s swap-window Kill X kill-window Respawn R "respawn-window -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" Rename n "command-prompt -I \"#W\" \"rename-window -- '%%'\"" "New After" w "new-window -a" "New At End" W new-window
+ eval tmux bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S "Swap Left" l "swap-window -t:-1" "Swap Right" r "swap-window -t:+1" "#{?pane_marked_set,,-}Swap Marked" s swap-window Kill X kill-window Respawn R "respawn-window -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" Rename n "command-prompt -I \"#W\" \"rename-window -- '%%'\"" "New After" w "new-window -a" "New At End" W new-window
+ true
+ IFS= read -r line
+ [ -z bind-key -T root MouseDown3StatusLeft display-menu -T "#[align=centre]#{session_name}" -t = -x M -y S Next n "switch-client -n" Previous p "switch-client -p" Renumber N "move-window -r" Rename n "command-prompt -I \"#S\" \"rename-session -- '%%'\"" "New Session" s new-session "New Window" w new-window ]
+ printf %s bind-key -T root MouseDown3StatusLeft display-menu -T "#[align=centre]#{session_name}" -t = -x M -y S Next n "switch-client -n" Previous p "switch-client -p" Renumber N "move-window -r" Rename n "command-prompt -I \"#S\" \"rename-session -- '%%'\"" "New Session" s new-session "New Window" w new-window
+ cut -c-50
+ sed -E -e s/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g
+ left=bind-key -T root MouseDown3StatusLeft
+ _is_enabled false
+ [ xfalse = xenabled ]
+ [ xfalse = xtrue ]
+ [ xfalse = xyes ]
+ [ xfalse = x1 ]
+ return 1
+ printf %s bind-key -T root MouseDown3StatusLeft display-menu -T "#[align=centre]#{session_name}" -t = -x M -y S Next n "switch-client -n" Previous p "switch-client -p" Renumber N "move-window -r" Rename n "command-prompt -I \"#S\" \"rename-session -- '%%'\"" "New Session" s new-session "New Window" w new-window
+ cut -c50-
+ awk -F\" BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }
+ sed -E -e s/-c[ \t]+"#\{pane_current_path\}"$//g
+ right= display-menu -T "#[align=centre]#{session_name}" -t = -x M -y S Next n "switch-client -n" Previous p "switch-client -p" Renumber N "move-window -r" Rename n "command-prompt -I \"#S\" \"rename-session -- '%%'\"" "New Session" s new-session "New Window" w new-window
+ eval tmux bind-key -T root MouseDown3StatusLeft display-menu -T "#[align=centre]#{session_name}" -t = -x M -y S Next n "switch-client -n" Previous p "switch-client -p" Renumber N "move-window -r" Rename n "command-prompt -I \"#S\" \"rename-session -- '%%'\"" "New Session" s new-session "New Window" w new-window
+ true
+ IFS= read -r line
+ tmux_conf_new_pane_retain_current_path=true
+ + tmux list-keys
grep -E split(-|_)window
+ IFS= read -r line
+ [ -z bind-key -T prefix \" split-window ]
+ printf %s bind-key -T prefix \" split-window
+ cut -c-50
+ sed -E -e s/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g
+ left=bind-key -T prefix \\\"
+ _is_enabled true
+ [ xtrue = xenabled ]
+ [ xtrue = xtrue ]
+ return 0
+ + cut -c50-
printf %s bind-key -T prefix \" split-window
+ awk -F\" BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }
+ sed -E -e /#\{pane_current_path\}/!s/split(-|_)window([ \t]+#\{pane_tty\})?([ \t]+-(h|v))?/& -c "#{pane_current_path}"/g
+ right= split-window -c "#{pane_current_path}"
+ eval tmux bind-key -T prefix \\\" split-window -c "#{pane_current_path}"
+ true
+ IFS= read -r line
+ [ -z bind-key -T prefix % split-window -h -c "#{pane_current_path}" ]
+ printf %s bind-key -T prefix % split-window -h -c "#{pane_current_path}"
+ cut -c-50
+ sed -E -e s/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g
+ left=bind-key -T prefix %
+ _is_enabled true
+ [ xtrue = xenabled ]
+ [ xtrue = xtrue ]
+ return 0
+ printf %s bind-key -T prefix % split-window -h -c "#{pane_current_path}"
+ cut -c50-
+ + sed -E -e /#\{pane_current_path\}/!s/split(-|_)window([ \t]+#\{pane_tty\})?([ \t]+-(h|v))?/& -c "#{pane_current_path}"/g
awk -F\" BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }
+ right= split-window -h -c "#{pane_current_path}"
+ eval tmux bind-key -T prefix % split-window -h -c "#{pane_current_path}"
+ true
+ IFS= read -r line
+ [ -z bind-key -T prefix - split-window -v -c "#{pane_current_path}" ]
+ cut -c-50
+ + sed -E -e s/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g
printf %s bind-key -T prefix - split-window -v -c "#{pane_current_path}"
+ left=bind-key -T prefix -
+ _is_enabled true
+ [ xtrue = xenabled ]
+ [ xtrue = xtrue ]
+ return 0
+ printf %s bind-key -T prefix - split-window -v -c "#{pane_current_path}"
+ cut -c50-
+ awk -F\" BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }
+ sed -E -e /#\{pane_current_path\}/!s/split(-|_)window([ \t]+#\{pane_tty\})?([ \t]+-(h|v))?/& -c "#{pane_current_path}"/g
+ right= split-window -v -c "#{pane_current_path}"
+ eval tmux bind-key -T prefix - split-window -v -c "#{pane_current_path}"
+ true
+ IFS= read -r line
+ [ -z bind-key -T prefix _ split-window -h -c "#{pane_current_path}" ]
+ printf %s bind-key -T prefix _ split-window -h -c "#{pane_current_path}"
+ cut -c-50
+ sed -E -e s/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g
+ left=bind-key -T prefix _
+ _is_enabled true
+ [ xtrue = xenabled ]
+ [ xtrue = xtrue ]
+ return 0
+ printf %s bind-key -T prefix _ split-window -h -c "#{pane_current_path}"
+ cut -c50-
+ + awksed -F\" BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print } -E
-e /#\{pane_current_path\}/!s/split(-|_)window([ \t]+#\{pane_tty\})?([ \t]+-(h|v))?/& -c "#{pane_current_path}"/g
+ right= split-window -h -c "#{pane_current_path}"
+ eval tmux bind-key -T prefix _ split-window -h -c "#{pane_current_path}"
+ true
+ IFS= read -r line
+ [ -z bind-key -T prefix M-m display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r "copy-mode -t=; send -Xt= search-backward \"#{q:mouse_word}\"" "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y "send-keys -l -- \"#{q:mouse_word}\"" "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c "set-buffer -- \"#{q:mouse_word}\"" "#{?mouse_line,Copy Line,}" l "set-buffer -- \"#{q:mouse_line}\"" "Horizontal Split" h "split-window -h -c #{pane_current_path}" "Vertical Split" v "split-window -v -c #{pane_current_path}" "Swap Up" u "swap-pane -U" "Swap Down" d "swap-pane -D" "#{?pane_marked_set,,-}Swap Marked" s swap-pane Kill X kill-pane Respawn R "respawn-pane -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" "#{?window_zoomed_flag,Unzoom,Zoom}" z "resize-pane -Z" ]
+ + cut -c-50
printf %s bind-key -T prefix M-m display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r "copy-mode -t=; send -Xt= search-backward \"#{q:mouse_word}\"" "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y "send-keys -l -- \"#{q:mouse_word}\"" "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c "set-buffer -- \"#{q:mouse_word}\"" "#{?mouse_line,Copy Line,}" l "set-buffer -- \"#{q:mouse_line}\"" "Horizontal Split" h "split-window -h -c #{pane_current_path}" "Vertical Split" v "split-window -v -c #{pane_current_path}" "Swap Up" u "swap-pane -U" "Swap Down" d "swap-pane -D" "#{?pane_marked_set,,-}Swap Marked" s swap-pane Kill X kill-pane Respawn R "respawn-pane -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" "#{?window_zoomed_flag,Unzoom,Zoom}" z "resize-pane -Z"
+ sed -E -e s/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g
+ left=bind-key -T prefix M-m
+ _is_enabled true
+ [ xtrue = xenabled ]
+ [ xtrue = xtrue ]
+ return 0
+ printf %s bind-key -T prefix M-m display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r "copy-mode -t=; send -Xt= search-backward \"#{q:mouse_word}\"" "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y "send-keys -l -- \"#{q:mouse_word}\"" "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c "set-buffer -- \"#{q:mouse_word}\"" "#{?mouse_line,Copy Line,}" l "set-buffer -- \"#{q:mouse_line}\"" "Horizontal Split" h "split-window -h -c #{pane_current_path}" "Vertical Split" v "split-window -v -c #{pane_current_path}" "Swap Up" u "swap-pane -U" "Swap Down" d "swap-pane -D" "#{?pane_marked_set,,-}Swap Marked" s swap-pane Kill X kill-pane Respawn R "respawn-pane -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" "#{?window_zoomed_flag,Unzoom,Zoom}" z "resize-pane -Z"
+ cut -c50-
+ awk -F\" BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }
+ sed -E -e /#\{pane_current_path\}/!s/split(-|_)window([ \t]+#\{pane_tty\})?([ \t]+-(h|v))?/& -c "#{pane_current_path}"/g
+ right= display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r "copy-mode -t=; send -Xt= search-backward \""#{q:mouse_word}"\"" "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y "send-keys -l -- \""#{q:mouse_word}"\"" "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c "set-buffer -- \""#{q:mouse_word}"\"" "#{?mouse_line,Copy Line,}" l "set-buffer -- \""#{q:mouse_line}"\"" "Horizontal Split" h "split-window -h -c #{pane_current_path}" "Vertical Split" v "split-window -v -c #{pane_current_path}" "Swap Up" u "swap-pane -U" "Swap Down" d "swap-pane -D" "#{?pane_marked_set,,-}Swap Marked" s swap-pane Kill X kill-pane Respawn R "respawn-pane -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" "#{?window_zoomed_flag,Unzoom,Zoom}" z "resize-pane -Z"
+ eval tmux bind-key -T prefix M-m display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r "copy-mode -t=; send -Xt= search-backward \""#{q:mouse_word}"\"" "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y "send-keys -l -- \""#{q:mouse_word}"\"" "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c "set-buffer -- \""#{q:mouse_word}"\"" "#{?mouse_line,Copy Line,}" l "set-buffer -- \""#{q:mouse_line}"\"" "Horizontal Split" h "split-window -h -c #{pane_current_path}" "Vertical Split" v "split-window -v -c #{pane_current_path}" "Swap Up" u "swap-pane -U" "Swap Down" d "swap-pane -D" "#{?pane_marked_set,,-}Swap Marked" s swap-pane Kill X kill-pane Respawn R "respawn-pane -k" "#{?pane_marked,Unmark,Mark}" m "select-pane -m" "#{?window_zoomed_flag,Unzoom,Zoom}" z "resize-pane -Z"
+ true
+ IFS= read -r line
+ [ -z bind-key -T root MouseDown3Pane if-shell -F -t = "#{||:#{mouse_any_flag},#{pane_in_mode}}" "select-pane -t=; send-keys -M" "display-menu -t= -xM -yM -T \"#[align=centre]#{pane_index} (#{pane_id})\" '#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}' 'C-r' {copy-mode -t=; send -Xt= search-backward \"#{q:mouse_word}\"} '#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}' 'C-y' {send-keys -l -- \"#{q:mouse_word}\"} '#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}' 'c' {set-buffer -- \"#{q:mouse_word}\"} '#{?mouse_line,Copy Line,}' 'l' {set-buffer -- \"#{q:mouse_line}\"} '' 'Horizontal Split' 'h' {split-window -h} 'Vertical Split' 'v' {split-window -v} '' 'Swap Up' 'u' {swap-pane -U} 'Swap Down' 'd' {swap-pane -D} '#{?pane_marked_set,,-}Swap Marked' 's' {swap-pane} '' 'Kill' 'X' {kill-pane} 'Respawn' 'R' {respawn-pane -k} '#{?pane_marked,Unmark,Mark}' 'm' {select-pane -m} '#{?window_zoomed_flag,Unzoom,Zoom}' 'z' {resize-pane -Z}" ]
+ printf %s bind-key -T root MouseDown3Pane if-shell -F -t = "#{||:#{mouse_any_flag},#{pane_in_mode}}" "select-pane -t=; send-keys -M" "display-menu -t= -xM -yM -T \"#[align=centre]#{pane_index} (#{pane_id})\" '#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}' 'C-r' {copy-mode -t=; send -Xt= search-backward \"#{q:mouse_word}\"} '#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}' 'C-y' {send-keys -l -- \"#{q:mouse_word}\"} '#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}' 'c' {set-buffer -- \"#{q:mouse_word}\"} '#{?mouse_line,Copy Line,}' 'l' {set-buffer -- \"#{q:mouse_line}\"} '' 'Horizontal Split' 'h' {split-window -h} 'Vertical Split' 'v' {split-window -v} '' 'Swap Up' 'u' {swap-pane -U} 'Swap Down' 'd' {swap-pane -D} '#{?pane_marked_set,,-}Swap Marked' 's' {swap-pane} '' 'Kill' 'X' {kill-pane} 'Respawn' 'R' {respawn-pane -k} '#{?pane_marked,Unmark,Mark}' 'm' {select-pane -m} '#{?window_zoomed_flag,Unzoom,Zoom}' 'z' {resize-pane -Z}"
+ cut -c-50
+ sed -E -e s/[^ \ta-zA-Z0-9,._+@%/-]/\\&/g
+ left=bind-key -T root MouseDown3Pane
+ _is_enabled true
+ [ xtrue = xenabled ]
+ [ xtrue = xtrue ]
+ return 0
+ printf %s bind-key -T root MouseDown3Pane if-shell -F -t = "#{||:#{mouse_any_flag},#{pane_in_mode}}" "select-pane -t=; send-keys -M" "display-menu -t= -xM -yM -T \"#[align=centre]#{pane_index} (#{pane_id})\" '#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}' 'C-r' {copy-mode -t=; send -Xt= search-backward \"#{q:mouse_word}\"} '#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}' 'C-y' {send-keys -l -- \"#{q:mouse_word}\"} '#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}' 'c' {set-buffer -- \"#{q:mouse_word}\"} '#{?mouse_line,Copy Line,}' 'l' {set-buffer -- \"#{q:mouse_line}\"} '' 'Horizontal Split' 'h' {split-window -h} 'Vertical Split' 'v' {split-window -v} '' 'Swap Up' 'u' {swap-pane -U} 'Swap Down' 'd' {swap-pane -D} '#{?pane_marked_set,,-}Swap Marked' 's' {swap-pane} '' 'Kill' 'X' {kill-pane} 'Respawn' 'R' {respawn-pane -k} '#{?pane_marked,Unmark,Mark}' 'm' {select-pane -m} '#{?window_zoomed_flag,Unzoom,Zoom}' 'z' {resize-pane -Z}"
+ + awk -F\" BEGIN { OFS = FS } { for (i = 1; i <= NF; i+=2) { gsub(/#{.+}/, "\"&\"", $i) } print }
cut -c50-
+ sed -E -e /#\{pane_current_path\}/!s/split(-|_)window([ \t]+#\{pane_tty\})?([ \t]+-(h|v))?/& -c "#{pane_current_path}"/g
+ right= if-shell -F -t = "#{||:#{mouse_any_flag},#{pane_in_mode}}" "select-pane -t=; send-keys -M" "display-menu -t= -xM -yM -T \"#[align=centre]"#{pane_index} (#{pane_id}")\" '#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}' 'C-r' {copy-mode -t=; send -Xt= search-backward \""#{q:mouse_word}"\"} '#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}' 'C-y' {send-keys -l -- \""#{q:mouse_word}"\"} '#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}' 'c' {set-buffer -- \""#{q:mouse_word}"\"} '#{?mouse_line,Copy Line,}' 'l' {set-buffer -- \""#{q:mouse_line}"\"} '' 'Horizontal Split' 'h' {split-window -h -c "#{pane_current_path}"} 'Vertical Split' 'v' {split-window -v -c "#{pane_current_path}"} '' 'Swap Up' 'u' {swap-pane -U} 'Swap Down' 'd' {swap-pane -D} '#{?pane_marked_set,,-}Swap Marked' 's' {swap-pane} '' 'Kill' 'X' {kill-pane} 'Respawn' 'R' {respawn-pane -k} '#{?pane_marked,Unmark,Mark}' 'm' {select-pane -m} '#{?window_zoomed_flag,Unzoom,Zoom}' 'z' {resize-pane -Z}"
+ eval tmux bind-key -T root MouseDown3Pane if-shell -F -t = "#{||:#{mouse_any_flag},#{pane_in_mode}}" "select-pane -t=; send-keys -M" "display-menu -t= -xM -yM -T \"#[align=centre]"#{pane_index} (#{pane_id}")\" '#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}' 'C-r' {copy-mode -t=; send -Xt= search-backward \""#{q:mouse_word}"\"} '#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}' 'C-y' {send-keys -l -- \""#{q:mouse_word}"\"} '#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}' 'c' {set-buffer -- \""#{q:mouse_word}"\"} '#{?mouse_line,Copy Line,}' 'l' {set-buffer -- \""#{q:mouse_line}"\"} '' 'Horizontal Split' 'h' {split-window -h -c "#{pane_current_path}"} 'Vertical Split' 'v' {split-window -v -c "#{pane_current_path}"} '' 'Swap Up' 'u' {swap-pane -U} 'Swap Down' 'd' {swap-pane -D} '#{?pane_marked_set,,-}Swap Marked' 's' {swap-pane} '' 'Kill' 'X' {kill-pane} 'Respawn' 'R' {respawn-pane -k} '#{?pane_marked,Unmark,Mark}' 'm' {select-pane -m} '#{?window_zoomed_flag,Unzoom,Zoom}' 'z' {resize-pane -Z}"
Hello @bertin0 and @Orkat 馃憢
I would appreciate if you could test the gh-254 branch
Please make sure you completely stop tmux (kill all server processes etc) before switching to that branch 鈿狅笍
Thanks in advance for your help 馃檹
Works great with the gh-254 branch!
Sorry for not replying... Ive been away from a proper computer for the past month... The current setup works perfectly! Thanks!
I opened https://github.com/tmux/tmux/issues/1882 before I found this thread.
The gh-254 branch also fixes the problem I was seeing: which was my status bar never changed.
Any ideas yet if the issues are due to intentional changes or a bug on either tmux or this repository?
@mattysweeps Yeah this configuration does:
tmux list-keys to find out which are the current bindings-c '#{pane_current_path}' into split-window bindingsParsing bindings with regexes is fragile at best, and the current implementation fails when parsing the new syntax and bindings introduced in tmux 3.0.
The implementation in the gh-254 branch, while still not being a proper configuration parser, does its best to be more robust and works with the new display-menu command.
So yeah I think you should close tmux/tmux#1882
@gpakosz
What features are still WIP for the gh-254 branch? I'd be happy to fork and play around with it, but I don't know the goals of the branch, beyond replacing the configuration parser with something more robust.
Also, the last commit which worked for me was 1f25b285c7edd2779987d215e0cbb2a748fc52c7
@mattysweeps I fixed a little bug in tmux 2 days ago that made tmux truncate the output of list-keys. I'll merge the branch when tmux is ready for it, which likely is when tmux 3.0 is released 馃檪
gh-254 is not displaying any icons etc. with latest tmux 3.1.

I get the following when source ~/.tmux.conf:
/Users/cchou/.tmux.conf:13: command not found: setw
/Users/cchou/.tmux.conf:19: command not found: bind
/Users/cchou/.tmux.conf:set:21: bad option: -q
Hello @chhschou 馃憢
You had a hint before you edited your message. I'm using Awk's gensub() function. Likely it's GNU Awk specific. Can you try to install it until I find a replacement?
@chhschou I force pushed the gh-254 branch to avoid using gensub()
latest gh-254 Working for me now cheers @gpakosz !
Most helpful comment
Hello @bertin0 and @Orkat 馃憢
I would appreciate if you could test the
gh-254branchPlease make sure you completely stop tmux (kill all server processes etc) before switching to that branch 鈿狅笍
Thanks in advance for your help 馃檹