Ich verwende iTerm2 und Tmux.
Ich möchte die Hintergrundfarbe eines Tmux-Fensters ändern, aber nur beim Zoomen. Ich weiß, dass es ein Flag window_is_zoomed gibt, und ich frage mich, ob ich dies in einer if-Shell-Anweisung oder irgendwo anders verwenden kann, um den gewünschten Effekt zu erzielen.
Antwort1
Nehmen Sie diesen Einzeiler (zur besseren Lesbarkeit in mehrere Zeilen aufgeteilt) als Beispiel:
tmux set-hook -g after-resize-pane \
'if "[ #{window_zoomed_flag} -eq 1 ]" \
"run \"tmux select-pane -P bg=red\"" \
"run \"tmux select-pane -P bg=black\""
'
Führen Sie es in einer Shell aus tmux
und vergrößern Sie jeden beliebigen Bereich, um die Lösung zu testen.
Anmerkungen:
Es ist eine reine
tmux
Lösung und nicht von iTerm2 abhängig.Es gibt drei Anführungszeichen-Ebenen (einfache Anführungszeichen, doppelte Anführungszeichen, maskierte doppelte Anführungszeichen). Verwechseln Sie diese nicht, wenn Sie den Befehl an Ihre Bedürfnisse anpassen.
-g
bedeutet, dass der Hook global ist. Ohne-g
ihn handelt es sich um einen Sitzungs-Hook.Den Haken mit lösen
tmux set-hook -gu after-resize-pane
.Um die Lösung dauerhaft zu machen, fügen Sie diese Zeile zu
~/.tmux.conf
(oder/etc/tmux.conf
) hinzu:set-hook -g after-resize-pane 'if "[ #{window_zoomed_flag} -eq 1 ]" "run \"tmux select-pane -P bg=red\"" "run \"tmux select-pane -P bg=black\""'