LINUX.ORG.RU

Orcsome — расширение для NetWM совместимых менеджеров окон

 netwm, , , ,


0

2

В основе Orcsome лежит простая идея: отрисовка окон возлагается на стабильный, проверенный временем, быстрый менеджер окон, а управление им осуществляется при помощи скрипта на Python.
Это позволяет в широких пределах варьировать поведение любых менеджеров окон, даже имеющих весьма бедные возможности для настройки.

Теоретически возможности Orcsome ограничены только вашими знаниями Xlib — библиотеки функций клиента X Window.
Если вы не обладаете таковыми знаниями совсем или обладаете, но в недостаточной степени, Orcsome предоставляет обёртку, реализующую самые распространённые задачи по управлению окнами:

  • управление фокусом, вызов окна на передний план с активацией нужного рабочего стола;
  • перемещение окна на указанный рабочий стол;
  • возможность перемещать окно внутри стека;
  • выборка и фильтрация окон по их свойствам;
  • подписка на события X Window: нажатие горячих клавиш, создание/удаление окна, изменение свойств окна;
  • захват клавиатуры и мыши;
  • история фокуса.

Всё это в сочетании с понятным скриптовым языком позволяет реализовывать достаточно сложные операции, например, такое популярное действие, как «spawn or raise» — запуск приложения или передача ему фокуса, если оно уже запущено.

Пример конфигурации от baverman

Документация

>>> Страница проекта на github'e

★★★

Проверено: Shaman007 ()
Последнее исправление: baverman (всего исправлений: 4)
Ответ на: комментарий от x3al

Возможно я не уловил смысл «динамического тайлинга»? Я не знал что их много. А в ion3 статический? В ion3 много режимов, объясните пожалуйств.

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

>Вообще без привязки к языку.
В i3 оно тоже без привязки к языку, поскольку сокет. Ну и i3-msg работает примерно с тем же успехом, что и wmiir.

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

Навигация по возможностям интерфейса более естественно ложится на ФС, чем на сокет. Нам это пытаются доказать и d-bus и plan9+wmii. Безусловно реализация на базе сокета ясна и понятна - там уже 20 лет всё известно и решено. А вот на базе ФС есть проблемы. Так что мне лично интереснее ФС. Сам-то я wmii не использую, я на ion3. Но мне понравилась идея.

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

А вообще очень здорово. Как собственный /proc своей программы таскаешь. Типа клиентов в /proc/clients. События /proc/event/хоть поимённо. Но вот проблемы протокола всё портят. Как xml. Всё по полочкам, а что конкретно писать чтобы программа поняла не ясно.

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

>Как xml.
p9-way это не CLI, это, хм, как это сказать. Это xml размазанный по ФС (c) не моё.
События можно было бы слать и отдельному 9p-серверу. В крайнем случае пламберу. В том же plan9 это смотрелось бы естественно. А в линуксе кто-то из plan9-филов видел пламбер, да ещё и чтобы его кто-то использовал?

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

Ну вот, вы меня обвиняли что я не в теме, а сами в одной фразе и CLI и p9-way употребили. Нехорошо. В том-то и идея чтобы никакого явного сервера не было. Есть ФС - стандартный open и вперёд. А CLI там или GUI дело десятое. А ваши сантехники выглядят как возможность использовать p9 для того чтобы использовать p9. Тогда уже проще на d-bus и перейти.

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

>Есть ФС - стандартный open и вперёд.
Эм. wmii — и есть такой сервер.

А ваши сантехники выглядят как возможность использовать p9 для того чтобы использовать p9.

Ну, это — гораздо лучше, чем мониторить эвенты поллингом снаружи.

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

Нет он сервер для ядра. Ядро является посредником. Клиенты к нему не обращаются сами. Можно было наверное и на FUSE такое-же написать, но p9 успели раньше.

Ну, это — гораздо лучше, чем мониторить эвенты поллингом снаружи.

Не факт последнее слово ещё не сказано.

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

А чего, можно например сделать /proc/workspaces а потом делать symlink с /proc/clients/win0 -> /proc/workspaces/1. Или echo 1 > /proc/clients/win1/fullscreen. Хуже с hook. Но что-нибудь надо придумать вместо /proc/events.

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

> Я их все пересмотрел. И все жирнющие и тормозящие.

поделись списком пожалуйста, если не трудно

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

qtile
pytyle
samurai-x
plwm
whimsy
partiwm
pywm

Отдельно стоит упомянуть pycawm — единственный вменяемый, очень хороший код, с минимумом архитектурных излишеств. Но он на глаза попался достаточно поздно, когда было уже почти все готово — искал как получить стоковый курсор через python-xlib.

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