Closed itspec-ru closed 6 years ago
Изменения в */xkb.lua
сомнительны: это пример виджета; предполагается, что пользователи сами, основываясь на том, какие раскладки у них настроены, перепишут его; и/или изменят цвета.
Излишняя общность тут ни к чему, я думаю.
Второй коммит принял.
Большинство Ваших примеров я использую практически без изменений. У меня layout прописан "us,ru", и в первоначальном варианте виджет работал не так как ожидалось. По этому и решил сделать вариант который подошёл бы для большинства случаев без доработки. Работает одинаково для любой раскладки даже если это и не русская и не английская "из коробки". Изменённый вариант меня устраивает, буду пользоваться сам.
Вот что получилось. i3/xkb.lua:
widget = {
plugin = 'xkb',
cb = function(t)
if t.name then
local base_layout = t.name:match('[^(]+')
if (base_layout == 'gb' or base_layout == 'us') then
return {full_text = '[En]', color = '#9c9c9c'}
elseif base_layout == 'ru' then
return {full_text = '[Ru]', color = '#eab93d'}
else
return {full_text = '[' .. base_layout:sub(1,1):upper() .. base_layout:sub(2) .. ']'}
end
else
return {full_text = '[' .. '? ID ' .. t.id .. ']'}
end
end,
}
dwm/xkb.lua:
widget = {
plugin = 'xkb',
cb = function(t)
if t.name then
local base_layout = t.name:match('[^(]+')
if (base_layout == 'gb' or base_layout == 'us') then
return '[En]'
elseif base_layout == 'ru' then
return '[Ru]'
else
return '[' .. base_layout:sub(1,1):upper() .. base_layout:sub(2) .. ']'
end
else
return '[' .. '? ID ' .. t.id .. ']'
end
end,
}
Подойдёт такой вариант?
В целом — да, только, опять же, скобки в
if (base_layout == 'gb' or base_layout == 'us') then
не нужны.
Previously, 'ru' layout was displayed as 'ru', not as 'Ru'
For other layouts first character now also displayed in upper case
contrib/widget-examples/i3/mem-usage.lua: fixed incorrect number of options in string.format() function