Tmux-Hintergrundfarbe des gezoomten Fensters ändern

Tmux-Hintergrundfarbe des gezoomten Fensters ändern

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 tmuxund vergrößern Sie jeden beliebigen Bereich, um die Lösung zu testen.

Anmerkungen:

  • Es ist eine reine tmuxLö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.

  • -gbedeutet, dass der Hook global ist. Ohne -gihn 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\""'
    

verwandte Informationen