%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
#!/bin/sh # # tmux-detach-all-but-current-client # Copyright (C) 2013-2014 Dustin Kirkland # # Authors: Dustin Kirkland <kirkland@byobu.org> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, version 3 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. a1= a2= tty1= tty2= # List all clients, ordered by most recent activity descending for c in $(tmux list-clients -F "#{client_activity}___#{client_tty}" | sort -n -r); do if [ -z "$a1" ]; then a1=${c%%___*} tty1=${c##*___} elif [ -z "$a2" ]; then a2=${c%%___*} tty2=${c##*___} fi if [ -n "$a1" ] && [ -n "$a2" ]; then if [ "$a1" = "$a2" ]; then # Activity timestamps match in top 2 attached clients # Let's not detach anyone here! tmux display-message "Multiple active attached clients detected, refusing to detach" >/dev/null 2>&1 elif [ -n "$tty1" ]; then # Detach all but the current client, iterating across each # Tempting to use detach-client -a -t here, but there's a bug # in there, keeping that from working properly tmux detach-client -t "$tty2" >/dev/null 2>&1 a2= fi fi done