File tree Expand file tree Collapse file tree 5 files changed +85
-2
lines changed Expand file tree Collapse file tree 5 files changed +85
-2
lines changed Original file line number Diff line number Diff line change @@ -46,10 +46,12 @@ follows <https://www.conventionalcommits.org/en/v1.0.0/> to track changes.
4646### Fixed
4747
4848- Support OSX's ancient Bash ([ #44 ] )
49+ - Forward all arguments when setting specified toggle keys ([ #45 ] )
4950
5051[ #42 ] : https://github.com/loichyan/tmux-toggle-popup/pull/42
5152[ #43 ] : https://github.com/loichyan/tmux-toggle-popup/pull/43
5253[ #44 ] : https://github.com/loichyan/tmux-toggle-popup/pull/44
54+ [ #45 ] : https://github.com/loichyan/tmux-toggle-popup/pull/45
5355[ NixOS/nixpkgs#428294 ] : https://github.com/NixOS/nixpkgs/pull/428294
5456[ @szaffarano ] : https://github.com/szaffarano
5557
Original file line number Diff line number Diff line change @@ -73,7 +73,7 @@ prepare_open() {
7373 # Create temporary toggle keys in the opened popup
7474 # shellcheck disable=SC2206
7575 for k in " ${toggle_keys[@]} " ; do
76- open_cmds+=(bind $k run " #{@popup-toggle} --name=' $name ' --toggle-mode=' $toggle_mode ' " \; )
76+ open_cmds+=(bind $k run " #{@popup-toggle} $( escape " ${args[@]} " ) " \; )
7777 on_cleanup+=(unbind $k \; )
7878 done
7979
@@ -193,7 +193,7 @@ main() {
193193 tmux set default-shell " /bin/sh" \; popup " ${display_args[@]} " " $open_script "
194194
195195 # Undo temporary changes on the popup server
196- if [[ ${# on_cleanup} -gt 0 ]]; then
196+ if [[ -z $opened_name && ${# on_cleanup} -gt 0 ]]; then
197197 # Ignore error if the server has already stopped
198198 tmux -N " ${popup_socket[@]} " " ${on_cleanup[@]} " 2> /dev/null || true
199199 fi
@@ -202,4 +202,5 @@ main() {
202202 if parse_cmds " $after_close " ; then tmux " ${cmds[@]} " ; fi
203203}
204204
205+ args=(" $@ " )
205206main " $@ "
Original file line number Diff line number Diff line change @@ -112,3 +112,18 @@ t_toggle_mode="force-open"
112112t_opened_name=" p_open_nested_1"
113113begin_test " $test_name "
114114test_toggle --name=" p_open_nested_2"
115+
116+ test_name=" open_with_toggle_key"
117+ exit_codes=(0 0 0)
118+ t_toggle_mode=" switch"
119+ t_opened_name=" "
120+ begin_test " $test_name "
121+ test_toggle --name=" p_toggle_key" --toggle-key=" -T root M-p" --toggle-key=" -n M-o"
122+
123+ # Open nested popups should not clean toggle keys.
124+ test_name=" open_nested_with_toggle_key"
125+ exit_codes=(0 0 0)
126+ t_toggle_mode=" force-open"
127+ t_opened_name=" p_nested_toggle_key_1"
128+ begin_test " $test_name "
129+ test_toggle --name=" p_nested_toggle_key_2" --toggle-key=" -n M-o"
Original file line number Diff line number Diff line change 1+ >>>TMUX:BEGIN(1)
2+ display
3+ before-open
4+ ;
5+ run
6+ #{@before_open}
7+ <<<TMUX:END(1)
8+
9+ >>>TMUX:BEGIN(2)
10+ set
11+ default-shell
12+ /bin/sh
13+ ;
14+ popup
15+ tmux set default-shell '/usr/bin/fish'; export TMUX_POPUP_SERVER='popup_server2' SHELL='/usr/bin/fish'; exec tmux -S socket/path/popup_server2 new -As pane/path/p_nested_toggle_key_2 \; set @__popup_name p_nested_toggle_key_2 \; set @__popup_id_format pane/path/\{popup_name\} \; set @__popup_caller_path working/session/path \; set @__popup_caller_pane_path working/pane/path \; bind -n M-o run \#\{@popup-toggle\}\ --name=p_nested_toggle_key_2\ --toggle-key=-n\\\ M-o\ \; display on-init \; run \#\{@on_init\} >/dev/null
16+ <<<TMUX:END(2)
17+
18+ >>>TMUX:BEGIN(3)
19+ display
20+ after-close
21+ ;
22+ run
23+ #{@after_close}
24+ <<<TMUX:END(3)
25+
Original file line number Diff line number Diff line change 1+ >>>TMUX:BEGIN(1)
2+ display
3+ before-open
4+ ;
5+ run
6+ #{@before_open}
7+ <<<TMUX:END(1)
8+
9+ >>>TMUX:BEGIN(2)
10+ set
11+ default-shell
12+ /bin/sh
13+ ;
14+ popup
15+ tmux set default-shell '/usr/bin/fish'; export TMUX_POPUP_SERVER='popup_server2' SHELL='/usr/bin/fish'; exec tmux -S socket/path/popup_server2 new -As pane/path/p_toggle_key \; set @__popup_name p_toggle_key \; set @__popup_id_format pane/path/\{popup_name\} \; set @__popup_caller_path working/session/path \; set @__popup_caller_pane_path working/pane/path \; bind -T root M-p run \#\{@popup-toggle\}\ --name=p_toggle_key\ --toggle-key=-T\\\ root\\\ M-p\ --toggle-key=-n\\\ M-o\ \; bind -n M-o run \#\{@popup-toggle\}\ --name=p_toggle_key\ --toggle-key=-T\\\ root\\\ M-p\ --toggle-key=-n\\\ M-o\ \; display on-init \; run \#\{@on_init\} >/dev/null
16+ <<<TMUX:END(2)
17+
18+ >>>TMUX:BEGIN(3)
19+ -N
20+ -S
21+ socket/path/popup_server2
22+ unbind
23+ -T
24+ root
25+ M-p
26+ ;
27+ unbind
28+ -n
29+ M-o
30+ ;
31+ <<<TMUX:END(3)
32+
33+ >>>TMUX:BEGIN(4)
34+ display
35+ after-close
36+ ;
37+ run
38+ #{@after_close}
39+ <<<TMUX:END(4)
40+
You can’t perform that action at this time.
0 commit comments