Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: awesome: правило для окна без имени, запущенного в wine  (Прочитано 2854 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lumberjack

  • Автор темы
  • Активист
  • *
  • Сообщений: 293
    • Просмотр профиля
собственно:
xprop | grep -i name
_NET_WM_NAME(UTF8_STRING) =
WM_ICON_NAME(STRING) =
WM_NAME(STRING) =
WM_LOCALE_NAME(STRING) = "ru_RU.UTF-8"
как задать правила, применяемые ТОЛЬКО для вторичных менюшек по правому клику в приложениях wine?

пока сделал таким костылем...
{ rule_any = { instance = { "EXCEL.EXE", "WINWORD.EXE" } },
properties = { tag = tags[1][5]},
callback   = awful.client.setslave },

{ rule_any = { instance = { "EXCEL.EXE", "WINWORD.EXE" } },
except = { name = "" },
properties = { tag = tags[1][5], border_width = 0 } },
ну и не полчается в одном правиле сие "нарисовать" :(

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
lumberjack,
ну так у окон разные параметры есть, не только имя или класс
а если попробовать так
xprop | grep WM_WINDOW_ROLEи использовать полученное в правиле?

я бы вообще попробовал просмотреть весь вывод xprop без сортировки, чтобы посмотреть, за что можно зацепиться, кроме NAME, CLASS и INSTANCE

Оффлайн lumberjack

  • Автор темы
  • Активист
  • *
  • Сообщений: 293
    • Просмотр профиля
роли нет..., xprop меню по правому клику, окно Word
пробовал прописывать диалог... но тогда менюшка появляется по центру, т.к. глобальным правилом идет:
{ rule_any = { type = { "Dialog", "dialog", "DIALOG" } },
    properties = { floating = true },
    callback = awful.placement.centered },

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
а если так?
{ rule_any = { instance = { "EXCEL.EXE", "WINWORD.EXE" }, type = { "Dialog", "dialog", "DIALOG" } },
properties = { tag = tags[1][5], border_width = 0 } },

Оффлайн lumberjack

  • Автор темы
  • Активист
  • *
  • Сообщений: 293
    • Просмотр профиля
так тоже пробовал... но тогда вообще все диалоги всех приложений уходят на тег с вордом, + у них у всех нет рамки. так же, исчезает рамка и у самого окна ворда и экселя...
« Последнее редактирование: 21 Июля 2015, 20:15:05 от lumberjack »

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
тогда не знаю - MSO у меня нет, чтобы поэкпериментировать
можно попробовать ещё с id окна - у главного оно
window id # of group leader: 0x5a00001а у менюшки
window id # 0x5800025вот только как это впихнуть в правило - ума не приложу
к тому же нет гарантии, что при следующем вызове программы окно не получит новый id  :-\

да и с пустым именем не всё так радужно - мало ли в каком приложении может присутствовать окно без имени

Оффлайн lumberjack

  • Автор темы
  • Активист
  • *
  • Сообщений: 293
    • Просмотр профиля
тоже об этом думал...
в общем-то, потому и написал в вопросе, что костыль...  :-\

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
lumberjack,

https://awesome.naquadah.org/wiki/Understanding_Rules#window
Цитировать
window

A unique ID number identifying that window and no other. The window value is an integer, is read-only, and is uniquely assigned to the window on its creation. The ID persists for the life of the window, and is destroyed when the window is closed. Window IDs are never reused during a given login session.
:(

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
может это как-то поможет?
там не совсем то, что требуется, но общий посыл...

вот ещё такой пример нашёл
{ rule = { class = "Chromium-browser", role = "pop-up" },
      properties = { tag = tags[3][1] } }
тут к окну применяются сразу два критерия для сортировки
можно попробовать использовать

Оффлайн lumberjack

  • Автор темы
  • Активист
  • *
  • Сообщений: 293
    • Просмотр профиля
Haron Prime, хм... интересно... спасибо, попробую с функцией похимичить :)
а с role тухлый номер... нету...
вот если как-то задать...
« Последнее редактирование: 21 Июля 2015, 22:45:30 от lumberjack »

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
lumberjack,
я просто скопипастил для примера
можно попробовать аналогично, но использовать другой критерий вместо role
затык в том, что у данного окна практически не за что зацепиться - своего имени нет, роли нет....

мне ещё непонятно, почему конструкция, которую я приводил выше
{ rule_any = { instance = { "EXCEL.EXE", "WINWORD.EXE" }, type = { "Dialog", "dialog", "DIALOG" } },
properties = { tag = tags[1][5], border_width = 0 } },
затрагивает все окна типа диалог, а не только окна данного приложения?
может, тут дело в rule_any
а если попробовать так
{ rule = { instance = { "EXCEL.EXE", "WINWORD.EXE" }, type = "DIALOG" },
properties = { tag = tags[1][5], border_width = 0 } },


Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
точно!
Цитировать
rule
    To match a window, the window's properties must match all the properties specified in the array assigned to rule.
rule_any
    To match a window, the window's properties must match one or more of the properties specified in the array assigned to rule_any.

Оффлайн lumberjack

  • Автор темы
  • Активист
  • *
  • Сообщений: 293
    • Просмотр профиля
lumberjack,
я просто скопипастил для примера
можно попробовать аналогично, но использовать другой критерий вместо role
затык в том, что у данного окна практически не за что зацепиться - своего имени нет, роли нет....

мне ещё непонятно, почему конструкция, которую я приводил выше
{ rule_any = { instance = { "EXCEL.EXE", "WINWORD.EXE" }, type = { "Dialog", "dialog", "DIALOG" } },
properties = { tag = tags[1][5], border_width = 0 } },
затрагивает все окна типа диалог, а не только окна данного приложения?
может, тут дело в rule_any
а если попробовать так
{ rule = { instance = { "EXCEL.EXE", "WINWORD.EXE" }, type = "DIALOG" },
properties = { tag = tags[1][5], border_width = 0 } },


так тоже пробовал... итог -- ворд и эксель запускаются на том же теге, что и тунар (тег 4), и рамка вокруг меню так же не исчезает...

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
т.е. окна открываются там, где пытаешься открыть файл? или это чистый запуск офиса?
я подозревал, что нечто подобное может получиться, т.к. правило выполняется при соблюдении ВСЕХ условий, а прописано в INSTANCE сразу две программы - и ворд, и эксель
значит не судьба подогнать всё под одно правило - придётся применять отдельное правило rule_any для основных окон и по одному правилу rule для диалоговых окон каждого приложения
других вариантов я не вижу - уж слишком мало свойств определяется у этих дилоговых окон, никак не зацепить

 

Страница сгенерирована за 0.063 секунд. Запросов: 23.