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