Wie ändere ich Tastenkombinationen basierend auf dem fokussierten Fenster?


8

Ich habe diese Zeilen gerade in meiner i3-Konfiguration:

# Play/pause, prev, next
bindcode 172 exec "/opt/playerctl/bin/playerctl play-pause"
bindcode 173 exec "/opt/playerctl/bin/playerctl previous"
bindcode 171 exec "/opt/playerctl/bin/playerctl next"

Dadurch können die Medientasten auf meiner Tastatur Audio-Player abspielen / anhalten, die von playerctl wie Spotify unterstützt werden.

Das Problem ist, dass die Schaltfläche zum Abspielen / Anhalten von Medien in meinem Video-Player (SMPlayer) jetzt nicht mehr funktioniert.

Ist es möglich, dass die Tastenkombinationen nur wirksam werden, wenn das fokussierte Fenster nicht SMPlayer ist?


Um zusammenzufassen, was ich versuche: Ich möchte, dass die obigen Tastenkombinationen immer wirksam sind, außer wenn das SMPlayer-Fenster (Klasse: "Smplayer") fokussiert ist.

Ist das möglich?

Antworten:


3

Sie könnten dies versuchen. Denken Sie daran, usernameim Folgenden durch Ihren echten Linux-Benutzernamen zu ersetzen . Aus irgendeinem Grund hat die Verwendung von ~statt home/usernamefür mich nicht funktioniert.

Verwenden Sie diese Zeilen in der i3-Konfiguration:

# Play/pause, prev, next
bindcode 172 exec /home/username/.i3/play.sh play-pause
bindcode 173 exec /home/username/.i3/play.sh previous
bindcode 171 exec /home/username/.i3/play.sh next

Fügen Sie Folgendes in eine Datei mit dem Namen ein /home/username/.i3/play.sh

cmd="$1"
id=$(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')
curr_title=$(xprop -id $id | awk '/_NET_WM_NAME/{$1=$2="";print}' | cut -d'"' -f2)
if [[ "$curr_title" != "SMPlayer"* ]]; then
    /opt/playerctl/bin/playerctl "$cmd"
fi

Möglicherweise müssen Sie den Teil "SMPlayer" * abhängig vom genauen Titel des Fensters anpassen. Ich habe keine Erfahrung mit diesem Programm. elseWenn Sie möchten, können Sie eine Klausel hinzufügen, um ein anderes Programm auszuführen, wenn SMPlayer ausgeführt wird.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.