@@ -36,12 +36,8 @@ sidebar_pane_args() {
36
36
37
37
register_sidebar () {
38
38
local sidebar_id=" $1 "
39
- local pane_id=" $2 "
40
- set_tmux_option " ${REGISTERED_SIDEBAR_PREFIX} -${sidebar_id} " " $pane_id "
41
- }
42
-
43
- register_sidebar_for_current_pane () {
44
- set_tmux_option " ${REGISTERED_PANE_PREFIX} -${PANE_ID} " " $1 ,$ARGS "
39
+ set_tmux_option " ${REGISTERED_SIDEBAR_PREFIX} -${sidebar_id} " " $PANE_ID "
40
+ set_tmux_option " ${REGISTERED_PANE_PREFIX} -${PANE_ID} " " ${sidebar_id} ,${ARGS} "
45
41
}
46
42
47
43
registration_not_for_the_same_command () {
@@ -99,10 +95,6 @@ kill_sidebar() {
99
95
PANE_WIDTH=" $new_current_pane_width "
100
96
}
101
97
102
- orientation_option () {
103
- echo " -h"
104
- }
105
-
106
98
sidebar_left () {
107
99
[[ $POSITION =~ " left" ]]
108
100
}
@@ -129,44 +121,23 @@ desired_sidebar_size() {
129
121
fi
130
122
}
131
123
132
- resize_sidebar_left () {
133
- local " $sidebar_id "
134
- local desired_size=" $( desired_sidebar_size) "
135
- if [ -n $desired_size ]; then
136
- tmux resize-pane -x " $(( desired_size - 1 )) "
137
- # this is done just to refresh the main pane. See github issue #14.
138
- tmux resize-pane -t " $sidebar_id " " -R" 1
139
- fi
140
- }
141
-
142
124
split_sidebar_left () {
143
- tmux split-window " $( orientation_option) " -c " $PANE_CURRENT_PATH " -P -F " #{pane_id},#{pane_width}" " $COMMAND "
144
- }
145
-
146
- create_sidebar_left () {
147
- local sidebar_info=$( split_sidebar_left)
148
- local sidebar_id=$( echo " $sidebar_info " | cut -d' ,' -f1)
149
- register_sidebar " $sidebar_id " " $PANE_ID "
150
- register_sidebar_for_current_pane " $sidebar_id "
151
- tmux swap-pane -U
152
- resize_sidebar_left " $sidebar_id "
153
-
154
- if no_focus; then
155
- tmux last-pane
156
- fi
125
+ local sidebar_size=$( desired_sidebar_size)
126
+ local inverted_size=$(( PANE_WIDTH - $sidebar_size - 1 ))
127
+ local sidebar_id=" $( tmux new-window -c " $PANE_CURRENT_PATH " -P -F " #{pane_id}" " $COMMAND " ) "
128
+ tmux join-pane -hb -l " $inverted_size " -t " $PANE_ID " -s " $sidebar_id "
129
+ echo " $sidebar_id "
157
130
}
158
131
159
132
split_sidebar_right () {
160
133
local sidebar_size=$( desired_sidebar_size)
161
- tmux split-window " $( orientation_option ) " -l " $sidebar_size " -c " $PANE_CURRENT_PATH " -P -F " #{pane_id},#{pane_width }" " $COMMAND "
134
+ tmux split-window -h -l " $sidebar_size " -c " $PANE_CURRENT_PATH " -P -F " #{pane_id}" " $COMMAND "
162
135
}
163
136
164
- create_sidebar_right () {
165
- local sidebar_info=$( split_sidebar_right)
166
- local sidebar_id=$( echo " $sidebar_info " | cut -d' ,' -f1)
167
- register_sidebar " $sidebar_id " " $PANE_ID "
168
- register_sidebar_for_current_pane " $sidebar_id "
169
-
137
+ create_sidebar () {
138
+ local position=" $1 " # left / right
139
+ local sidebar_id=" $( split_sidebar_${position} ) "
140
+ register_sidebar " $sidebar_id "
170
141
if no_focus; then
171
142
tmux last-pane
172
143
fi
@@ -205,9 +176,9 @@ toggle_sidebar() {
205
176
else
206
177
exit_if_pane_too_narrow
207
178
if sidebar_left; then
208
- create_sidebar_left
179
+ create_sidebar " left "
209
180
else
210
- create_sidebar_right
181
+ create_sidebar " right "
211
182
fi
212
183
fi
213
184
}
0 commit comments