Получить идентификатор активного окна в шестнадцатеричном, а не десятичном виде
Как получить идентификатор окна фокуса (активного) окна в шестнадцатеричном формате?
3 ответа
Попробуйте это взломать:
wmctrl -lp | grep $(xprop -root | grep _NET_ACTIVE_WINDOW | head -1 | \
awk '{print $5}' | sed 's/,//' | sed 's/^0x/0x0/')
Например:
$ 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 - это шестнадцатеричное активное окно, которое является терминалом в моем случае.
Чтобы быть уверенным, давайте получим это в десятичном виде:
$ xdotool getactivewindow
123731974
Теперь преобразуйте из десятичного в шестнадцатеричное:
$ printf 0x%x 123731974
0x7600006
Это то же самое.
Дает вам 3 секунды, чтобы изменить фокус окна и
печатает после этого шестнадцатеричный PID:
~$ sleep 3; printf 0x%x $(xdotool getactivewindow getwindowpid)
Используйте printf для преобразования десятичного числа в шестнадцатеричное. Например. чтобы получить идентификатор окна активного окна в шестнадцатеричном формате
xdotool getactivewindow | xargs -I{} printf '%x\n' {}