rename omni tmux session files; renumber windows for easier navigation

This commit is contained in:
2023-07-24 08:52:23 -06:00
parent c5163cc424
commit 181688ef7c
5 changed files with 51 additions and 4 deletions

View File

@ -22,12 +22,12 @@ OMNI_TMUX list-sessions 2>/dev/null | grep -v omni-manager | grep -qi omni || {
STATUS "initializing omni server"
OMNI_TMUX kill-session -t=omni-manager >/dev/null 2>&1
OMNI_TMUX -f "$SCWRYPTS_ROOT__remote/omni.tmux.conf" new -d -s omni \
OMNI_TMUX -f "$SCWRYPTS_ROOT__remote/omni/tmux.conf" new -d -s omni \
"echo searching for first connection...; sleep 30" \; \
split-window "sleep 3; TMUX= tmux -L $OMNI_SOCKET a -t=omni-manager" \; \
move-window -t 99 \;
OMNI_TMUX new -d -s omni-manager "$SCWRYPTS_ROOT__remote/omni-manager"
OMNI_TMUX new -d -s omni-manager "$SCWRYPTS_ROOT__remote/omni/manager"
}
STATUS 'connecting to omni server'

60
scwrypts/ssh/omni/manager Executable file
View File

@ -0,0 +1,60 @@
#!/bin/zsh
#
# works as a standalone zsh script
#
CONNECTIONS_FILE="$HOME/.config/wryn/remote-connections"
OMNI_SOCKET="omni.socket"
OMNI_TMUX() { tmux -L $OMNI_SOCKET $@; }
sleep 1
OMNI_TMUX new-window -t=omni-manager -dn 'harakiri' "
while true
do
tmux -L $OMNI_SOCKET list-sessions | grep -v omni-manager | grep -qi omni || {
tmux -L $OMNI_SOCKET kill-session -t omni-manager
}
sleep 5
done
"
CONNECTED() { echo "\\033[1;32mconnected\\033[0m"; }
DISCONNECTED() { echo "\\033[1;31mdisconnected\\033[0m"; }
while true
do
clear
REMOTE_HOSTS=()
for CONNECTION in $(sed -n 's/#.*//;s/ \+$//;s/|//g;s/ \+/^/g;/./p;' <(echo "$(hostnamectl --static) | localhost"; cat "$CONNECTIONS_FILE"))
do
CONNECTION=$(echo $CONNECTION | sed 's/[\^]/ /g')
REMOTE_NAME=$(echo $CONNECTION | awk '{print $1;}')
REMOTE_HOST=$(echo $CONNECTION | awk '{print $2;}')
REMOTE_ARGS=($(echo $CONNECTION | awk '{$1=$2="";}1'))
printf "$REMOTE_NAME : "
OMNI_TMUX list-windows -t=omni | awk '{print $2;}' | grep -q $REMOTE_NAME \
&& CONNECTED && continue
SUCCESS=0
[[ $REMOTE_HOST =~ ^localhost$ ]] && SUCCESS=1
[[ $SUCCESS -eq 1 ]] || {
timeout 3 ssh ${REMOTE_ARGS} -o BatchMode=yes $REMOTE_HOST 'command -v tmux 2>/dev/null' 2>/dev/null | grep -q tmux \
&& SUCCESS=1
}
[[ $SUCCESS -eq 1 ]] && {
OMNI_TMUX new-window -t=omni -dn $REMOTE_NAME "source ~/.zshrc >/dev/null 2>&1; TMUX= scwrypts -n connect tmux $REMOTE_NAME; echo 'connection closed'; sleep 2"
OMNI_TMUX list-window -t=omni | awk '{print $1;}' | grep -q '99:' \
&& OMNI_TMUX kill-window -t omni:99
}
OMNI_TMUX list-windows -t=omni | awk '{print $2;}' | grep -q $REMOTE_NAME \
&& CONNECTED || DISCONNECTED
done
echo "\nPress ENTER to search again now (checks every 60 seconds)"
read -t 60
done

30
scwrypts/ssh/omni/spawn Executable file
View File

@ -0,0 +1,30 @@
#!/bin/zsh
#####################################################################
DEPENDENCIES+=()
REQUIRED_ENV+=()
CHECK_ENVIRONMENT
#####################################################################
[[ $TERM =~ tmux ]] && FAIL 69 "\n Cannot run tmux-omni within a tmux session!\n "
OMNI_SOCKET="omni.socket"
OMNI_TMUX() { tmux -L $OMNI_SOCKET $@; }
OMNI_TMUX list-sessions 2>/dev/null | grep -v omni-manager | grep -qi omni || {
STATUS "initializing omni server"
OMNI_TMUX kill-session -t=omni-manager >/dev/null 2>&1
OMNI_TMUX -f "$SCWRYPTS_ROOT__remote/omni/tmux.conf" new -d -s omni \
"echo searching for first connection...; sleep 30" \; \
split-window "sleep 3; TMUX= tmux -L $OMNI_SOCKET a -t=omni-manager" \; \
move-window -t 99 \;
OMNI_TMUX new -d -s omni-manager "$SCWRYPTS_ROOT__remote/omni/manager"
}
STATUS 'connecting to omni server'
OMNI_TMUX a -t=omni

View File

@ -0,0 +1,60 @@
source ~/.config/tmux/tmux.conf
# window / tile navigation settings from $DOTWRYN/config/tmux.conf
# but default to nested session rather than host
bind -n M-h send-keys C-b Left
bind -n M-H select-pane -L
bind -n M-j send-keys C-b Down
bind -n M-J select-pane -D
bind -n M-k send-keys C-b Up
bind -n M-K select-pane -U
bind -n M-l send-keys C-b Right
bind -n M-L select-pane -R
bind -n M-Left send-keys C-b C-Left
bind -n M-S-Left resize-pane -L 2
bind -n M-Down send-keys C-b C-Down
bind -n M-S-Down resize-pane -D 2
bind -n M-Up send-keys C-b C-Up
bind -n M-S-Up resize-pane -U 2
bind -n M-Right send-keys C-b C-Right
bind -n M-S-Right resize-pane -R 2
bind-key -n M-Tab send-keys C-b n
bind-key -n M-n next-window
bind-key -n M-BTab send-keys C-b p
bind-key -n M-p previous-window
bind-key -n M-c new-window
bind-key -n M-Enter send-keys C-b c
bind-key -n M-v send-keys M-v
bind-key -n M-V split-window -v
bind-key -n M-b send-keys M-b
bind-key -n M-B split-window -h
bind-key -n M-q send-keys M-q
bind-key -n M-Q kill-session
bind-key -n M-z send-keys M-z
bind-key -n M-Z resize-pane -Z
bind-key -n M-w send-keys C-M-w
unbind-key C-b
bind-key C-b send-prefix
set-option -g prefix C-s
# force reload now
bind-key -n M-R send-keys -t omni-manager ENTER
set -g status-right "omni host : #(hostnamectl --static) | #(cat /sys/class/power_supply/BAT0/capacity)% "
set -g base-index 1
bind-key -n M-1 select-window -t 1
bind-key -n M-2 select-window -t 2
bind-key -n M-3 select-window -t 3
bind-key -n M-4 select-window -t 4
bind-key -n M-5 select-window -t 5
bind-key -n M-6 select-window -t 6
bind-key -n M-7 select-window -t 7
bind-key -n M-8 select-window -t 8
bind-key -n M-9 select-window -t 9