FullScreens/ru

Дело в том, что меня раздражало то, что мои коллеги, использующие Gnome, могут растягивать приложения/окна чтобы захватить оба экрана. После некоторого размышления и помощи через Awesome IRC канал, я написал Lua функцию, которая позволяет растягивать приложение на оба экрана.

= Функция = function fullscreens(c) awful.client.floating.toggle(c) if awful.client.floating.get(c) then local clientX = screen[1].workarea.x         local clientY = screen[1].workarea.y          local clientWidth = 0 -- look at http://www.rpm.org/api/4.4.2.2/llimits_8h-source.html local clientHeight = 2147483640 for s = 1, screen.count do             clientHeight = math.min(clientHeight, screen[s].workarea.height) clientWidth = clientWidth + screen[s].workarea.width end local t = c:geometry({x = clientX, y = clientY, width = clientWidth, height = clientHeight}) else --apply the rules to this client so he can return to the right tag if there is a rule for that. awful.rules.apply(c) end -- focus our client client.focus = c end

Эта функция позволяет:
 * Переключать плавающий режим на требуемом клиенте в качестве параметра.
 * Если floating property установлено равным true функция будет изменять размер клиента на всех экранах.
 * Если floating property установлено равным false, то будет восстановлен стандартный размер и тег для клиента.

= Некоторые замечание = На некоторых машинах, самый левый экран (откуда начинаются геометрические координаты), это не screen[1] поэтому: local clientX = screen[1].workarea.x local clientY = screen[1].workarea.y необходимо заменить на local clientX = screen[other_index].workarea.x local clientY = screen[other_index].workarea.y

= Использование функции = В моем файле конфигурации Mod + f привязан к режиму fullscreen, поэтому Mod + Shift + f похоже будет являться хорошей комбинацией для fullscreens. Для ее использования поместите эту строку, в разделе clientkeys

clientkeys = awful.util.table.join(     ...      awful.key({ modkey, "Shift" }, "f",        fullscreens),      ...  )