Skip to content

Instantly share code, notes, and snippets.

@loveJesus
Last active December 23, 2025 04:11
Show Gist options
  • Select an option

  • Save loveJesus/89a2c75d2403937bb97af1cda76f4be1 to your computer and use it in GitHub Desktop.

Select an option

Save loveJesus/89a2c75d2403937bb97af1cda76f4be1 to your computer and use it in GitHub Desktop.
Hallelujah one line clipping non flickering TMUX window monitor within another TMUX pane
# For God so loved the world, that He gave His only begotten Son, that all who believe in Him should not perish but have everlasting life.
tput civis; clear; trap 'tput cnorm; exit' INT; while true; do tput cup 0 0; tmux capture-pane -t :1 -p -e -S -$(tmux display -p '#{pane_height}') | perl -pe 'my $v_chirho=0; my $o_chirho=""; while (/\G(\e\[[0-9;]*m)|(.)/gc) { if (defined $1) { $o_chirho .= $1 } elsif ($v_chirho++ < '$(tmux display -p '#{pane_width}')') { $o_chirho .= $2 } } $_ = $o_chirho . "\e[K\e[0m\n"'; sleep 0.5; done
#!/bin/bash
# === Save the monitor script first ===
mkdir -p ~/bin
cat > ~/bin/tmux-monitor_chirho << 'EOF'
#!/bin/bash
target_chirho=${1:-:1}
tput civis
trap 'tput cnorm; exit' INT TERM
clear
while true; do
cols_chirho=$(tmux display -p '#{pane_width}')
rows_chirho=$(tmux display -p '#{pane_height}')
tput cup 0 0
tmux capture-pane -t "$target_chirho" -p -e -S -$rows_chirho | head -$rows_chirho | perl -pe "
my \$v_chirho=0; my \$o_chirho='';
while (/\G(\e\[[0-9;]*m)|(.)/gc) {
if (defined \$1) { \$o_chirho .= \$1 }
elsif (\$v_chirho++ < $cols_chirho) { \$o_chirho .= \$2 }
}
\$_ = \$o_chirho . qq{\e[K\e[0m\n};
"
sleep 0.5
done
EOF
chmod +x ~/bin/tmux-monitor_chirho
# === Config ===
dev_session_chirho="dev_chirho"
monitor_session_chirho="monitor_chirho"
dev_dir_chirho="$HOME/dev-chirho"
# === Kill existing sessions ===
tmux kill-session -t "$dev_session_chirho" 2>/dev/null
tmux kill-session -t "$monitor_session_chirho" 2>/dev/null
# === Create dev session with 8 windows ===
tmux new-session -d -s "$dev_session_chirho" -c "$dev_dir_chirho"
tmux send-keys -t "$dev_session_chirho:1" 'unset TMUX' Enter
for i_chirho in {2..8}; do
tmux new-window -t "$dev_session_chirho:$i_chirho" -c "$dev_dir_chirho"
tmux send-keys -t "$dev_session_chirho:$i_chirho" 'unset TMUX' Enter
done
# Go back to window 1
tmux select-window -t "$dev_session_chirho:1"
# === Create monitor session with 8 panes ===
tmux new-session -d -s "$monitor_session_chirho"
tmux send-keys -t "$monitor_session_chirho" "$HOME/bin/tmux-monitor_chirho $dev_session_chirho:1" Enter
for i_chirho in {2..8}; do
tmux split-window -t "$monitor_session_chirho"
tmux select-layout -t "$monitor_session_chirho" tiled # rebalance after each split
tmux send-keys -t "$monitor_session_chirho" "$HOME/bin/tmux-monitor_chirho $dev_session_chirho:$i_chirho" Enter
done
# Final tiled layout
tmux select-layout -t "$monitor_session_chirho" tiled
# === Done ===
echo "Created sessions:"
echo " $dev_session_chirho - 8 windows in $dev_dir_chirho (TMUX unset)"
echo " $monitor_session_chirho - 8 panes monitoring dev windows"
echo ""
echo "Attach:"
echo " tmux attach -t $dev_session_chirho"
echo " tmux attach -t $monitor_session_chirho"
#!/bin/bash
# For God so loved the world, that He gave His only begotten Son, that all who believe in Him should not perish but have everlasting life.
x_chirho="${1:-3}"
y_chirho="${2:-3}"
dir_chirho="$HOME/dev-aleluya"
# Validate inputs are numbers
if ! [[ "$x_chirho" =~ ^[0-9]+$ ]] || ! [[ "$y_chirho" =~ ^[0-9]+$ ]]; then
echo "Usage: $0 <columns> <rows>"
echo "Example: $0 3 3"
exit 1
fi
panes_chirho=$((x_chirho * y_chirho))
layout_chirho="${x_chirho}x${y_chirho}"
# Count existing sessions of this type
count_chirho=$(tmux list-sessions -F '#{session_name}' 2>/dev/null | grep -c "^${layout_chirho}session[0-9]*_chirho$")
next_chirho=$((count_chirho + 1))
session_chirho="${layout_chirho}session${next_chirho}_chirho"
# Create session
tmux new-session -d -s "$session_chirho" -c "$dir_chirho"
# Add panes
for ((i_chirho=1; i_chirho<panes_chirho; i_chirho++)); do
tmux split-window -t "$session_chirho" -c "$dir_chirho"
tmux select-layout -t "$session_chirho" tiled
done
# Unset TMUX in all panes
for ((i_chirho=0; i_chirho<panes_chirho; i_chirho++)); do
tmux send-keys -t "$session_chirho:1.$i_chirho" 'unset TMUX' Enter
done
tmux select-layout -t "$session_chirho" tiled
echo "Created session: $session_chirho ($panes_chirho panes in $dir_chirho)"
echo "Attach: tmux attach -t $session_chirho"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment