Обживаюсь в теме для awesome wm от Worron, которую нашел в этой теме. В данный момент пытаюсь сделать текстовый виджет, который бы отображал текущую раскладку клавиатуры. Просто две буквы: en, ua или ru. И при этом чтоб не выбивался по стилю. За основу взял виджет textclock (из данной же темы) отредактировал его таким образом, чтобы он просто выводил текст.
Как получить текущую раскладку?
Ниже привожу код виджета.
local setmetatable = setmetatable
local os = os
local textbox = require("wibox.widget.textbox")
local beautiful = require("beautiful")
local tooltip = require("redflat.float.tooltip")
local redutil = require("redflat.util")
-- Initialize tables and vars for module
----------------------------------------------
local mykbind = { mt = {} }
-- Generate default theme vars
----------------------------------------------
local function default_style()
local style = {
font = "Sans 16",
tooltip = {},
color = { text = "#aaaaaa" }
}
return redutil.table.merge(style, redutil.table.check(beautiful, "widget.mykbind") or {})
end
-- Create a text keybosrd layout indicator widget. It draws the current layout in a textbox.
----------------------------------------------
function mykbind.new(args, style)
-- Initialize vars
--------------------------------------
local args = args or {}
local style = redutil.table.merge(default_style(), style or {})
-- Create widget
--------------------------------------
local widg = textbox()
widg:set_font(style.font)
widg:set_text("ua") -- Static output here :(
--------------------------------------
return widg
end
-- Config metatable to call textclock module as function
---------------------------------------------
function mykbind.mt:__call(...)
return mykbind.new(...)
end
return setmetatable(mykbind, mykbind.mt)