X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/6cce5b6fe11fe8c69b08140d645c604fef59e42a..a274576cfd89c1475aa6b9149ad25fdd5cda1060:/widgets/contrib/kbdlayout.lua?ds=sidebyside diff --git a/widgets/contrib/kbdlayout.lua b/widgets/contrib/kbdlayout.lua index 3b514c5..08e7bd0 100644 --- a/widgets/contrib/kbdlayout.lua +++ b/widgets/contrib/kbdlayout.lua @@ -16,7 +16,7 @@ local setmetatable = setmetatable -- Keyboard layout switcher -- lain.widgets.contrib.kblayout -local kbdlayout = helpers.make_widget_textbox() +local kbdlayout = {} local function worker(args) local args = args or {} @@ -28,6 +28,8 @@ local function worker(args) if args.add_us_secondary == false then add_us_secondary = false end + kbdlayout.widget = wibox.widget.textbox() + local function kbd_run_settings(layout, variant) kbdlayout_now = { layout = string.match(layout, "[^,]+"), -- Make sure to match the primary layout only. @@ -38,8 +40,7 @@ local function worker(args) end function kbdlayout.update() - helpers.async(string.format("%s -c 'setxkbmap -query'", awful.util.shell), - function(status) + helpers.async("setxkbmap -query", function(status) kbd_run_settings(string.match(status, "layout:%s*([^\n]*)"), string.match(status, "variant:%s*([^\n]*)")) end) @@ -73,7 +74,7 @@ local function worker(args) helpers.newtimer("kbdlayout", timeout, kbdlayout.update) - return setmetatable(kbdlayout, { __index = kbdlayout.widget }) + return kbdlayout end return setmetatable({}, { __call = function (_, ...) return worker(...) end })