]> src.twobees.de Git - dotfiles.git/blob - stow/oh-my-zsh/.oh-my-zsh/plugins/zsh-navigation-tools/doc/znt-tmux.zsh
initial
[dotfiles.git] / stow / oh-my-zsh / .oh-my-zsh / plugins / zsh-navigation-tools / doc / znt-tmux.zsh
1 #!/usr/bin/env zsh
2
3 # Copyright (c) 2016, Zsolt Lengyel
4 # Modifications copyright (c) 2016, Sebastian Gniazdowski
5
6 #
7 # This script opens a new, temporary tmux pane and runs n-history. When
8 # a selection is made, the result (history entry) is pasted back into
9 # original tmux pane, and the temporary pane is closed. This allows to
10 # use local history on remote machines.
11 #
12 # To use, put this line to your ~/.tmux.conf. The tool is invoked with:
13 # Ctrl+b h
14 #
15 # bind h run-shell -b "$ZNT_REPO_DIR/doc/znt-tmux.zsh"
16 #
17
18 # get and save the current active tmux pane id
19 active_pane=$(tmux display -p -F ':#{session_id}:#I:#P:#{pane_active}:#{window_active}:#{session_attached}' )
20 a_active_pane=("${(@s/:/)active_pane}")
21
22 active_session=${a_active_pane[2]//$}
23 active_window=$a_active_pane[3]
24 active_pane=$a_active_pane[4]
25
26 # set variables for upcoming window
27 tmux setenv -t $active_session:$active_window.$active_pane "ZNT_TMUX_MODE" 1
28 tmux setenv -t $active_session:$active_window.$active_pane "ZNT_TMUX_ORIGIN_SESSION" "$active_session"
29 tmux setenv -t $active_session:$active_window.$active_pane "ZNT_TMUX_ORIGIN_WINDOW" "$active_window"
30 tmux setenv -t $active_session:$active_window.$active_pane "ZNT_TMUX_ORIGIN_PANE" "$active_pane"
31
32 # create a new window in the active session and call it znt-hist
33 tmux new-window -t $active_session: -n znt-hist
34
35 # unset the variables, so only above single window has them
36 tmux setenv -u -t $active_session:$active_window.$active_pane "ZNT_TMUX_MODE"
37 tmux setenv -u -t $active_session:$active_window.$active_pane "ZNT_TMUX_ORIGIN_SESSION"
38 tmux setenv -u -t $active_session:$active_window.$active_pane "ZNT_TMUX_ORIGIN_WINDOW"
39 tmux setenv -u -t $active_session:$active_window.$active_pane "ZNT_TMUX_ORIGIN_PANE"
40
41 # znt's session id
42 znt_active_pane=$(tmux display -p -F ':#{session_id}:#I:#P:#{pane_active}:#{window_active}:#{session_attached}' )
43 znt_a_active_pane=("${(@s/:/)znt_active_pane}")
44
45 znt_active_session=${znt_a_active_pane[2]//$}
46 znt_active_window=$znt_a_active_pane[3]
47 znt_active_pane=$znt_a_active_pane[4]
48
49 # call znt
50 tmux send -t "$znt_active_session:$znt_active_window.$znt_active_pane" n-history ENTER