LINUX.ORG.RU

tiling wm plugin для того, что бы припарковать приложение на тэг

 ,


0

3

Есть для какого-нибудь живого тайлового wm (в идеале - awesome т.к. уже используется) расширение, которое парковало бы текущего клиента на заданный тэг по хоткею.

Когда я говорю парковало - я имею ввиду, процесс персистентный к перезагрузке/выходу из сессии, автоматического записывания правила на какой тег укладывать appname, в идеале предлагая перед этим в виде списка признак, по которому приложение будет идентифицироваться. Желательно, что бы текущий паркинг сохранялся где нибудь в удобном для экспорта виде.

Понятно, что для того же awesome - запилить прототип, фигня вопрос, но запилить хорошее отлаженное решение, слега сложее а хочется такого.

Upd. а сиё поделие никто не юзает?

★★★★★

Последнее исправление: pon4ik (всего исправлений: 1)

Я для сохранения чего-то временного между сессиями юзаю файлик, в который пишется функцией, а другой функцией читается. Ты можешь запилить так, чтобы правило тагов сохраняло в файл, а применять всё тем же awful.tag.*. Примеров давать не стану, я тот ещё быдлокодер и костылист.

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

про xmonad на 100% уверен, ещё с достаточно большой вероятностью вероятностью про kwin. про другие говорить не берусь, т.к. не очень конфигал, но скорее всего вообще все wm с конфигом на языке программирования подойдут.

f1u77y ★★★★
()
Последнее исправление: f1u77y (всего исправлений: 1)
Ответ на: комментарий от kep

Думаю ещё в каком нить pytile сиё наура пролетит.

Разговор то не про то, как закостылить, а про готовое решение.

pon4ik ★★★★★
() автор топика

Я накатил кастомное, которое привязывает по WM_CLIENT. Вот модуль https://github.com/alexander-yakushev/awesomerc/blob/master/rulez.lua, вот юзедж: https://github.com/alexander-yakushev/awesomerc/blob/master/main.lua#L259, вот бинд https://github.com/alexander-yakushev/awesomerc/blob/master/main.lua#L211.

Идея в том, чтобы не вшивать правила в rc.lua, а загружать (и соответственно сохранять) из отдельного файла.

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

Правда его надо отвязать от vista - модуля для более эффективной работы с несколькими экранами. Или прикрутить vista к себе.

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

Спасибо, это уже больше похоже на то, что я хотел. Потыкаю на свежую голову, дабы не быть предвзятым.

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

нет(хотя в нём можно запилить пародию на тайлинг), но вот кидать клиенты по воркспейсам таким образом, как описано в ОП, он вроде как умеет

f1u77y ★★★★
()

Создаёшь сначала переменную, которая будет определять признак, по которому будет детектиться окно. Пилишь выбор этой переменной с помощью того же zenity. Далеее получаешь нужную информацию об активном окне: xprop -id $(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2) | grep $ТА_ПЕРЕМЕННАЯ. Потом пишешь выбор рабочего стола аналагично. А затем генерируешь правило для окна по шаблону, подставля готовые переменные. Все правила для окон выноси в отдельный файл, а в rc.lua просто его подключай; в этот файл делай echo полученного правила и перезапускай awesome.
Я не знаю, как делать echo в определённое место файла. Как вариант можно сначала удалять '}' в конце, делать echo в конец файла, и потом снова добавлять скобку.
А вообще такой скрипт можно ещё для bspwm запилить, там даже оно проще, чем для awesome выйдет.

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

томушт это всё делается средствами самого осома, если бы это было для bspwm, то это был бы не костыль, потому что там просто по-другому нельзя. а в осоме можно это всё зафигачить на луа, а не вызывать стрёмные внешние команды

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

Что мешает зафигачить описанный мной алгоритм на lua? А как средствами осома получить id и нужный параметр текущего окна? Я привёл общую команду, потому что не знаю, как там в awesome это сделать (а может и никак).

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

Что мешает

ничего

как средствами осома получить id и нужный параметр текущего окна?

id окна — параметр коллбэка для awful.key, а нужный параметр — чего-то вроде get_xproperty. на самом деле другие отметившиеся в треде люди подскажут тебе по осому куда лучше меня, хотя бы потому что они им пользовались больше 4 часов

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

Ну пускай ТС спросит у этих людей. Заменить команды аналогичными из awesome и всё. Я то думал, тебе сам принцип костыльным показался.

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