X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/823ea6537a40f3b1fedfde9894c5f615d95ff24d..b8adf932213faa797fcd69df28bb8bf9451cf5df:/widgets/contrib/kbdlayout.lua?ds=sidebyside diff --git a/widgets/contrib/kbdlayout.lua b/widgets/contrib/kbdlayout.lua index 39857af..23dc6e3 100644 --- a/widgets/contrib/kbdlayout.lua +++ b/widgets/contrib/kbdlayout.lua @@ -16,7 +16,10 @@ local string = { match = string.match } local setmetatable = setmetatable -local function worker (args) +-- Keyboard layout switcher +-- lain.widgets.contrib.kblayout + +local function worker(args) local kbdlayout = {} kbdlayout.widget = wibox.widget.textbox('') @@ -24,9 +27,8 @@ local function worker (args) local settings = args.settings or function () end local add_us_secondary = true local timeout = args.timeout or 5 - local idx = 1 - + if args.add_us_secondary == false then add_us_secondary = false end -- Mouse bindings @@ -34,21 +36,21 @@ local function worker (args) awful.button({ }, 1, function () kbdlayout.next() end), awful.button({ }, 3, function () kbdlayout.prev() end))) - local function run_settings (layout, variant) + local function run_settings(layout, variant) widget = kbdlayout.widget kbdlayout_now = { layout=string.match(layout, "[^,]+"), -- Make sure to match the primary layout only. variant=variant } settings() end - function kbdlayout.update () + function kbdlayout.update() local status = read_pipe('setxkbmap -query') run_settings(string.match(status, "layout:%s*([^\n]*)"), string.match(status, "variant:%s*([^\n]*)")) end - function kbdlayout.set (i) + function kbdlayout.set(i) idx = ((i - 1) % #layouts) + 1 -- Make sure to wrap around as needed. local to_execute = 'setxkbmap ' .. layouts[idx].layout @@ -65,11 +67,11 @@ local function worker (args) end end - function kbdlayout.next () + function kbdlayout.next() kbdlayout.set(idx + 1) end - function kbdlayout.prev () + function kbdlayout.prev() kbdlayout.set(idx - 1) end