--------------------------------------------------- -- Licensed under the GNU General Public License v2 -- * (c) 2012, Axel Arnold -- based on https://awesome.naquadah.org/wiki/Change_keyboard_maps --------------------------------------------------- --------------------------------------------------- -- a simple configurable keyboard layout switching -- widget. --------------------------------------------------- local capi = { widget = widget, exec = os.execute } local awful = require("awful") module("kb_switch") function keyboard_switch() local kbdcfg = {} kbdcfg.cmd = function(layout) capi.exec( "setxkbmap" .. " " .. layout[1] .. " " .. layout[2] ) end kbdcfg.layout = { { "de", "nodeadkeys" }, { "ru", "" } } kbdcfg.current = 1 kbdcfg.widget = capi.widget({ type = "textbox", align = "right" }) kbdcfg.widget.text = " " .. kbdcfg.layout[kbdcfg.current][1] .. " " kbdcfg.widget.bg = "#e0e0e0" kbdcfg.switch = function () kbdcfg.current = kbdcfg.current % #(kbdcfg.layout) + 1 local t = kbdcfg.layout[kbdcfg.current] kbdcfg.widget.text = " " .. t[1] .. " " kbdcfg.cmd(t) end -- Mouse bindings kbdcfg.widget:buttons(awful.util.table.join( awful.button({ }, 1, function() kbdcfg.switch() end) )) return kbdcfg end