blob: 51d159af936f18f01e5585268ba72384f3d47f18 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
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
function M.screen_focus_physical(n)
local s = map_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
|