LINUX.ORG.RU

devilspie матчинг окон

 , , ,


1

1

Нашел в галлерее скриншот mironov_ivan'a с федорой и xfce, на котором, если окно во весь экран убираются заголовки и кнопки. Захотелось сделать так же, засел за этот devilspie и тут началось: странный(но разобраться можно) язык, отсутсвие документации, искал на лоре, но то что нашел это в основном советы воспользоваться сабжем для матчинга окон.

Как мне при помощи этого поделия матчить все окна ? Что-то подсказывает, что нужно window_property каким-то образом использовать, но оно не работает. У самого получилось нечто такое:

(if
        (and
                (matches (application_name) "[a-z]")
                (is (window_name) "urxvt")
        )

        (begin
                (maximize)
                (undecorate)
                (println "--------------")
                (debug)
        )
)

По ссылке ходил, но помогло не до конца.

Алсо прошу mironov_ivan'a поделится своим скриптом, если есть возможность.



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

У меня вот такой скрипт:

(begin
	(if
		(and 
			(contains(window_property "_NET_WM_STATE") "_NET_WM_STATE_MAXIMIZED_HORZ")
			(contains(window_property "_NET_WM_STATE") "_NET_WM_STATE_MAXIMIZED_VERT"))
		(undecorate)
	)
)
Но у него есть как минимум два минуса:

  • Не декорирует окна обратно при «сворачивании в окно».
  • Ловит окна, только если они сразу запускаются в развёрнутом на весь экран состоянии.
Deleted
()
Ответ на: комментарий от Deleted

Спасибо. Я так и знал, передавал аргумент window_property без кавычек.

Вообще, да, кривоватое оно какое-то. Пока гуглил видел devilspie2, там вместо языка-велосипеда lua, но пакета не было, а компилять не хотелось, потом может соберу/посмотрю как там с фичами.

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

Не декорирует окна обратно при «сворачивании в окно».

а если делать что-то типа:

(if 
    (or 
     (not (contains(window_property "_NET_WM_STATE") "_NET_WM_STATE_MAXIMIZED_HORZ"))
     (not (contains(window_property "_NET_WM_STATE") "_NET_WM_STATE_MAXIMIZED_VERT")))
     (decorate))

Ловит окна, только если они сразу запускаются в развёрнутом на весь экран состоянии.

повесить на хоткеи развертывания wmctrl

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

ну и кстати, под deb этот луашный велик есть в бинарных пакетах

lazyklimm ★★★★★
()

Можно заменить xfwm на openbox, который это умеет из коробки.

nikodymus
()
Ответ на: комментарий от lazyklimm

а ты в курсе

Не знал про s-выражения. Думал автор сам навилосепедил. Спасибо, интересная штука, пойду почитаю.

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

В курсе, уже видел ссылку, вроде от тебя же. Луалюбом не являюсь.

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

и, кстати, всем луалюбам я кидаю ссылку на пост изначального аффтара awesome

Чего ж он сразу не запилил guile? А та статья смахивает на выискивание блох. Так можно к любому языку прикопаться.

nikodymus
()
Ответ на: комментарий от lazyklimm

Значит пора ему делать awesome-4 со скриптами на лиспе. Любопытно сколько будет пользователей, и как быстро его форкнут.

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

я так понял ему сейчас даже не до первого awesome, по блогу складывается впечатление, что он все больше емаксом занят.

А на лиспе у нас stumpwm есть :)

lazyklimm ★★★★★
()

если окно во весь экран убираются заголовки и кнопки

maximus это умеет. Только для него не забыть выполнить

gconftool-2 --set /apps/maximus/no_maximize --type BOOL true
Хотя я предпочитаю видеть отображение текущего заголовка в панели.

dadd ★★★
()

гуй поставь, gDevilspie называется

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

Пока гуглил видел devilspie2, там вместо языка-велосипеда lua

Уже было хотел независимые от xmonad части переписать (чтобы проще было переходить, особенно если ghc на машине нема). А тут такое. Скобочки вполне адекватны для этой задачи, и смотрится приятно.

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