Средство командной строки linux wmctrl
позволяет перечислять все окна или все рабочие столы, среди прочего. В режиме списка рабочих столов текущий рабочий стол отмечен звездочкой.
Мне нужен инструмент, который может выяснить заголовок текущего активного окна. К сожалению, wmctrl
нет помощника, который делает это - несмотря на то, что он знает, какое окно активно в данный момент (см. :ACTIVE:
Маркер).
Есть ли другой инструмент командной строки, который может дать мне идентификатор окна и / или заголовок окна текущего окна?
linux
command-line
xorg
Дейв Фогт
источник
источник
wmctrl
, вы можете сделать:,wmctrl -i -r `xdotool getwindowfocus` -e 0,10,10,-1,-1
где-i
указывает wmctrl ожидать идентификатор окна, а не заголовок окна.Это более прямой и использует только
xprop
иcut
:Эти команды являются просто извлечением свойств из корневого окна и окна приложения, но согласно запросу Лоренцо фон Маттерхорна:
Первый,
Извлекает
_NET_ACTIVE_WINDOW
свойство из корня, который дает вам XID активного окна.32x '\t$0'
Говоритxprop
формат вывода таким образом , чтоcut
можно легко разобрать позже.Затем извлеките только XID из вывода с помощью
cut -f 2
Затем передайте XID в качестве параметра
Который печатает название этого окна.
источник
Существует, но нет краткого ответа или решения.
результат:
В использовании:
источник
Вот что сработало для меня:
xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME
дает:
WM_NAME(STRING) = "~"
Так что, возможно, вы бы сделали небольшое уродливое впечатление, чтобы получить имя само по себе:
xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME | sed -e 's/.*"\(.*\)".*/\1/'
дает:
~
Который является моим текущим именем окна, само по себе.
Или избегайте sed с чуть менее уродливым:
xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME | awk -F '"' '{print $2}'
источник
xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME | cut -d '"' -f 2
Относительно короткие, и правильно обрабатывает имена окон, содержащие кавычки:
источник