Add tmux popup bindings

Thu, 09 Nov 2023 16:54:05 -0600

author
Meredith Howard <mhoward@roomag.org>
date
Thu, 09 Nov 2023 16:54:05 -0600
changeset 1133
cb91318a522e
parent 1132
532c7964b23f
child 1134
fe6ccd1afb11

Add tmux popup bindings

.tmux.conf file | annotate | diff | comparison | revisions
.tmux/popup.conf file | annotate | diff | comparison | revisions
--- a/.tmux.conf
+++ b/.tmux.conf
@@ -40,6 +40,7 @@ set -g set-titles-string "#h(#S)"
 
 source-file ~/.tmux/screen-keys.conf
 source-file ~/.tmux/vim-keys.conf
+source-file ~/.tmux/popup.conf
 
 bind S choose-session
 bind @ choose-window 'join-pane -h -s "%%"'
new file mode 100644
--- /dev/null
+++ b/.tmux/popup.conf
@@ -0,0 +1,16 @@
+# Open a floating pane running tmux with a session named floating. If inside
+# that floating window, detach.
+bind '~' if-shell -F '#{==:#{session_name},floating}' {
+    detach-client
+} {
+    set -gF '@last_session_name' '#S'
+    popup -d '#{pane_current_path}' -xC -yC -w70% -h70% -E 'tmux new -A -s floating'
+}
+
+# Normal break pane, but if inside a floating session, breaks pane back into
+# the most recently opened parent session.
+bind ! if-shell -F '#{!=:#{session_name},floating}' {
+    break-pane
+} {
+    run-shell 'bash -c "tmux break-pane -s floating -t \"$(tmux show -gvq '@last_session_name'):\""'
+}

mercurial