Last active
December 23, 2025 04:11
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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