Tengo una solución sin la necesidad de scripts externos. Ponga lo siguiente en su .tmux.conf:
bind i command-prompt -p 'Insert window at:' 'run-shell "if tmux select-window -t %1; then tmux new-window -a; tmux swap-window -s %1 -t \$((%1+1)); else tmux new-window; tmux move-window -t %1; fi; tmux select-window -t #I; tmux select-window -t %1;"'
Presione [PREFIX] -i y proporcione la ubicación de inserción deseada. Los últimos 2 comandos de ventana de selección se aseguran de que la ventana 'anterior' esté configurada como se espera y que vaya a la ventana insertada.
EDITAR: ok, hablé demasiado pronto. Tuve que cambiar #I
a #{window_id}
porque el índice de la ventana cambia para algunas ventanas en la inserción. La nueva función (con nuevas líneas agregadas para facilitar la lectura):
bind i command-prompt -p 'Insert window at:' ' \
run-shell " \
if tmux select-window -t %1; then \
tmux new-window -a; \
tmux swap-window -s %1 -t \$((%1+1)); \
else \
tmux new-window; \
tmux move-window -t %1; \
fi; \
tmux select-window -t #{window_id}; \
tmux select-window -t %1; \
"'
Comencé a usar una versión simplificada, a través de los siguientes 2 comandos en .tmux.conf:
bind i command-prompt -p 'Insert window at:' 'new-window -a -t %1; swap-window -t -1'
bind I command-prompt -p 'New window at:' 'new-window -t %1'
Prefijo-i inserta una nueva ventana en la posición x cuando existe la ventana x , y mueve las ventanas por encima de esa. Prefijo-I crea una nueva ventana en la posición x cuando la ventana x no existe.