LINUX.ORG.RU

Можно ли в Awesome привязывать к тегам консольные программы?

 


3

3

Можно ли как-нибудь сделать, чтобы программа запущенная в эмуляторе терминала привязывалась не к тому тегу, куда привязан эмулятор терминала, а к другому тегу? Например я хочу, чтобы консольный проигрыватель ncmpcpp запускался в теге «media», а не в теге «terminal».

Есть терминалы которые позволяют менять свойства своего окна (не знаю как правильно выразиться), то есть окнам можно задать свое имя. По нему уже и привязать к тегу. Делал такое, но что за терминал не помню - напишу как вспомню название.

alozovskoy ★★★★★
()
Ответ на: комментарий от alozovskoy

Вызываешь терминал и передаешь ему консольную софтинку, ага.

tazhate ★★★★★
()
Ответ на: комментарий от dmfd

Некоторые консольные приложения (emerge и ncmpcpp, например) умеют сами менять имя окна. В любом случае можно сделать urxvtc --title «foo».

dmfd
()

Многие тут попытались сказать, но не указали на суть. Да, можно. У иксов есть свойства окна, WM_CLASS or WM_NAME. На них и ориентируется осом. Толковые приложения умеют менять его кастомно, для своих нужд.

Рассмотрим на примере:

xterm -name ololo
После этого вызываем xprop к xterm'у, и наблюдаем:
_NET_WM_ICON_GEOMETRY(CARDINAL) = 403, 1056, 197, 24
XKLAVIER_STATE(INTEGER) = 0, 0
_NET_WM_STATE(ATOM) = _NET_WM_STATE_DEMANDS_ATTENTION
WM_STATE(WM_STATE):
		window state: Normal
		icon window: 0x0
_NET_FRAME_EXTENTS(CARDINAL) = 1, 1, 25, 4
_NET_WM_DESKTOP(CARDINAL) = 0
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
_NET_WM_PID(CARDINAL) = 4334
SM_CLIENT_ID(STRING) = "1020949877e83fa27c136179506871584900000031890035"
WM_CLIENT_LEADER(WINDOW): window id # 0x4600024
WM_LOCALE_NAME(STRING) = "en_US.utf8"
WM_CLASS(STRING) = "ololo", "XTerm"
WM_HINTS(WM_HINTS):
		Client accepts input or input focus: True
		Initial state is Normal State.
WM_NORMAL_HINTS(WM_SIZE_HINTS):
		program specified size: 484 by 316
		program specified minimum size: 10 by 17
		program specified resize increment: 6 by 13
		program specified base size: 4 by 4
		window gravity: NorthWest
WM_CLIENT_MACHINE(STRING) = "work-hell-machine"
WM_COMMAND(STRING) = { "xterm", "-name", "ololo" }
WM_ICON_NAME(STRING) = "ololo"
WM_NAME(STRING) = "ololo"
WM_CLASS(STRING) = «ololo», «XTerm»
WM_NAME(STRING) = «ololo»
Цель достигнута. Теперь привязываем на имя ololo, в осоме, хоткей, что будет вызывать команду «xterm -e mc», для примера, и по этому хоткею будет вызван xterm, с запущенным mc, что привязан к нужному тегу.

Spirit_of_Stallman ★★★
()

Ни один способ не работает.

heinrich
() автор топика
Ответ на: комментарий от Spirit_of_Stallman

WM_CLASS(STRING) = «ololo», «XTerm»

Как изменить второй параметр в этой строке? Похоже идентификация происходит именно по нему.

heinrich
() автор топика
Ответ на: комментарий от Spoofing

urxvt -e ncmpcpp

и теперь приложение называется «ncmpcpp», а не «urxvt». УМВР.

Эта команда просто запускает программу в терминале. Название окна от этого не меняется.

WM_CLASS(STRING) = «urxvt», «URxvt»

heinrich
() автор топика

Если задать имя вот так:

xterm -name ncmpcpp -e ncmpcpp

То имя окна меняется:

WM_CLASS(STRING) = «ncmpcpp», «XTerm»

Но по имени ncmpcpp, окно не привязвается к тегу. Получается только привязать по имени XTerm, но тогда к этому тегу будут привязываться все программы запущенные в xterm.

heinrich
() автор топика
Ответ на: комментарий от heinrich

Как изменить второй параметр в этой строке? Похоже идентификация происходит именно по нему.

Только перезаписью поверх.
Но идентификация идёт по любому из, по крайней мере в v3.4.11.

Spirit_of_Stallman ★★★
()

хех, а ::

 { rule = { instance = "Download" },
                                  properties = { floating = true,    tag = tags[1][9]    } }, 

подмени нужное и будет тебе счастье

TODD ★★
()
Ответ на: комментарий от TODD

и еще

и огнелиса class = firefox и instance = navigator (пишу без регистра)

также и у urxvt - class = urxvt , instance = <имя>

где <имя> - то что указано в `-name`

TODD ★★
()
Ответ на: и еще от TODD

Так сработало, спасибо.

heinrich
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.