local M = {} local awful = require("awful") -- mapping from logical screen indices to indices corresponding to their -- physical layout local function map_screen_physical(n) local function screen_cmp(s1, s2) return s1[2].geometry.x < s2[2].geometry.x end local screens = {} for s = 1, screen.count() do screens[s] = {s, screen[s]} end table.sort(screens, screen_cmp) if screens[n] ~= nil then return screens[n][2] end return nil end local function screen_focus_physical(n) local s = map_screen_physical(n) if s then awful.screen.focus(s) end end function M.screen_focus_physical(n) screen_focus_physical(n) end -- audio control functions local function vol_control(n) local cmd = string.format("amixer -q set Master %d%%", math.abs(n)) .. (n < 0 and "-" or "+") awful.util.spawn(cmd) end function M.vol_control(n) vol_control(n) end return M