LINUX.ORG.RU

Более удобный менеждемент окон в плавающем режиме на примере osx приложения. (Как такое запилить в Awesome?)

 ,


0

2

Под Mac OS X есть бесплатное свободное приложение ShiftIt, которым удобно рулить окнами
Вот записал демонстрацию: http://www.youtube.com/watch?v=H0bC8IZShDk (флеш. Не флеш, 13 мегабайт, можно здесь скачать).

Как работает:

C+M+A+c - центрирует окно
C+M+A+left/right - размещает окно на левой/правой стороне дисплея
C+M+A+up/down - размещает окно на верхней/нижней стороне дисплея
C+M+A+m - максимизирует окно
C+M+A+ +/- --> увеличивает окно в зависимости от расположения

и так далее, на самом деле там много еще чего есть.

Как такое запилить в осомском плавающем режиме? Кстати для этой цели идеально бы подошел бесполезный Numeric Keypad или как он правильно называется, короче тот массив бесполезных клавиш с правой стороны клавиатуры.

Например: modkey + KP_Left кидает окно ровно на правую часть дисплея.

В общем, если бы вы заюзали ту прогу (ShiftIt), то нашли бы удобным и приятным менеджмент окон таким образом в плавающем режиме.

Для тайлинга есть типа такого (и разумеется нет проблем в пл.реж. с максимизацией окна):

awful.key({ modkey,           }, "l",        function () awful.tag.incmwfact( 0.05)    end),
awful.key({ modkey,           }, "h",        function () awful.tag.incmwfact(-0.05)    end),
awful.key({ modkey, "Shift"   }, "h",        function () awful.tag.incnmaster( 1)      end),
awful.key({ modkey, "Control" }, "h",        function () awful.tag.incncol( 1)         end),
awful.key({ modkey, "Shift"   }, "l",        function () awful.tag.incnmaster(-1)      end),
awful.key({ modkey, "Control" }, "l",        function () awful.tag.incncol(-1)         end),

для плавающего режима есть такое:

awful.key({ modkey }, "Next",  function () awful.client.moveresize( 20,  20, -40, -40) end),
awful.key({ modkey }, "Prior", function () awful.client.moveresize(-20, -20,  40,  40) end),
awful.key({ modkey }, "Down",  function () awful.client.moveresize(  0,  20,   0,   0) end),
awful.key({ modkey }, "Up",    function () awful.client.moveresize(  0, -20,   0,   0) end),
awful.key({ modkey }, "Left",  function () awful.client.moveresize(-20,   0,   0,   0) end),
awful.key({ modkey }, "Right", function () awful.client.moveresize( 20,   0,   0,   0) end),

Т.е. увеличивает, уменьшает окно по modkey+PgUp/PgDn и перемещает окно в фактическом размере по modkey+стрелки.

А как запилить плавающем режиме раскидывание окон по частям дисплея? И не просто раскидывание, а чтобы учитывалась и подстраивалась геометрия. Кто пробовал запилить себе такое?

P.S. насчёт «nenuzhno issue»: Нужно. Пользуюсь осомом не первый год, но фактически тайлинг использую только 60% времени, ибо.

★★☆

Насчет «nenuzhno issue»: не нужно. Пользуюсь осомом четвертый год, 80% времени использую фуллскрин. Ничего более удобного, чем фуллскрин с одним приложением на тег я не встречал. Тайлинг использую только когда перевожу тексты или нужен матлаб. Считаю, что дергать окна мышкой будут только конченные извращенцы.

zhuravlik ★★★★
()

тебе нужен subtle wm, там это реализовано из коробки

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

Считаю, что дергать окна мышкой будут только конченные извращенцы.

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

Не будем забывать, что:

It manages windows in different layouts, like floating or tiled.
и
A dynamic floating and tiling window manager

Если wm предоставляет возможность рулить клиентами в плавающем режиме, более того - из коробки возможен определенный функционал, то почему не довести до ума, не довести до состояния идеального менеждера окон (независимо от режима).

science ★★☆
() автор топика

про awesome не скажу, но именно то, что показано в ролике на youtube, умеет компиз c модулем grid

anonymous
()

Вроде ничего не нужно, кроме аксессоров к геометрии и положению клиента и ридеров к размерам экрана и панелек... и арифметики.

Гугля скажет где доки к API.

ados ★★★★★
()

А как запилить плавающем режиме раскидывание окон по частям дисплея? И не просто раскидывание, а чтобы учитывалась и подстраивалась геометрия.

То есть, ты не знаешь как получить ширину/высоту экрана? Окай.

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

То есть, ты не знаешь как получить ширину/высоту экрана? Окай.

Знаю. Спрашиваю вдруг кто уже запилил весь винегрет функций и хоткеев, вдруг есть уже готовая паста на это дело :)

Дело в том, что если мне ничего не приснилось - я уже встречал готовую портянку около года назад, реализующую нужную мне функциональность, но вот где и при каких обстоятельствах - вспомнить и нагуглить не могу.

Если еще не запилили - в течение пару дней запилю.

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

Наверное хреново, когда экран слишком большой, а приложение - консоль с книжкой в less.

80% времени я пользуюсь ноутом 13". Нормальный монитор есть, но редко бывает сильно нужен. :)

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

Если wm предоставляет возможность рулить клиентами в плавающем режиме, более того - из коробки возможен определенный функционал, то почему не довести до ума, не довести до состояния идеального менеждера окон (независимо от режима).

В осоме куча активных коммитеров, а также куча плагинописателей. Если не нагуглилось - значит, просто никому это еще не было нужно. Было бы нужно - уже было бы сделано. =)

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