Holen Sie sich die aktive Fenster-ID im Hex-Format, nicht im Dezimalformat

Holen Sie sich die aktive Fenster-ID im Hex-Format, nicht im Dezimalformat

Wie erhalte ich die Fenster-ID des Fokusfensters (aktiven Fensters) in Hex?

Antwort1

Versuchen Sie diesen Hack:

wmctrl -lp | grep $(xprop -root | grep _NET_ACTIVE_WINDOW | head -1 | \
    awk '{print $5}' | sed 's/,//' | sed 's/^0x/0x0/')

Zum Beispiel:

$ wmctrl -lp | grep $(xprop -root | grep _NET_ACTIVE_WINDOW | head -1 | \
>     awk '{print $5}' | sed 's/,//' | sed 's/^0x/0x0/')

0x07600006  0 19051  maythuxPC Gnome Terminal

0x07600006 ist der Hex-Wert des aktiven Fensters, das in meinem Fall das Terminal ist.

Um sicherzugehen, geben wir es in Dezimalzahlen wieder:

$ xdotool getactivewindow 
123731974

Nun von Dezimal in Hex umwandeln:

$ printf 0x%x 123731974
0x7600006

Es ist das gleiche.

Antwort2

Gibt Ihnen 3 Sekunden Zeit, den Fensterfokus zu ändern und
druckt anschließend die hexadezimale PID:

~$ sleep 3; printf 0x%x $(xdotool getactivewindow getwindowpid)

Antwort3

Verwenden Sie printf, um Dezimalzahlen in Hex umzuwandeln. Um beispielsweise die Fenster-ID des aktiven Fensters in Hex zu erhalten, verwenden Sie

xdotool getactivewindow | xargs -I{} printf '%x\n' {}

verwandte Informationen