summaryrefslogtreecommitdiff
path: root/utils.lua
blob: 1df96907458e1776c8d83765d4acf24cc595f42e (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][1]
    end
    return nil
end

local function screen_focus_physical(n)
    local idx_logical = map_screen_physical(n)
    if idx_logical then
        awful.screen.focus(idx_logical)
    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