XRandR Screen Table/ru

awesome 3.5
В commits 9393b2d1 и c08b9034 данная функциональност была строенна и задокументированна (commit 29ecc609). Поэтому просто используйте следующий код: client.focus.screen = screen["VGA"].index

Данная функциональность теперь не нуждается во внешних утилитах.

awesome меньше 3.5
Эта небольшая функция добавляет адресные экраны, исползуя их имена XRandR вместо обычных номеров. Вставьте этот код в ваш rc.lua. Обновлено klaernie: новая версия вычисляет номер экрана по их левым краям, вместо последовательности в xrandr -q. Также она устанавливает основной экран как screen 1. function xrandr_screens local screens = {} local handle = io.popen("xrandr -q") for display,primary,left in handle:read("*all"):gmatch("([%a%d-]+) connected (p*)r*i*m*a*r*y* *[%d]+x[%d]+%+([%d]+)%+[%d]+") do       if primary == "p" then -- если этот экран является основным, ему присваивается 1 номер в awesome -- поэтому переопределим его для присваивания ему первого номера -- по левому краю screens[#screens+1] = {display=display,left=-1} else screens[#screens+1] = {display=display,left=tonumber(left)} end end handle:close -- сортируем экраны по их левым краям table.sort(screens,function(a,b)                           return a.left<b.left                        end) -- снова расширяем временную таблицу -- screens["input"]=screen id   local tmpscreens = {} for index,spec in pairs(screens) do       tmpscreens[spec.display] = index end return tmpscreens end Затем используйте его, например так: screens = xrandr_screens client.focus.screen = screens["VGA"] Пожалуйста помните, что для этой функции необходима установленная утилита xrandr.