Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
Awesome
Re: Awesome
Не всегда есть возможность использовать замечательный демон kbdd для индикации виджета переключения раскладки клавиатуры который вписывается в awesome просто идеально https://packages.gentoo.org/packages/x11-misc/kbdd . Решил проблему таким образом :
Пишем исполняемый фал и даём права на запуск в системе
Сам виджет:
Думаю вписать его в трей другого вм или в conку труда не составит .
Пишем исполняемый фал и даём права на запуск в системе
Код: Выделить всё
touch /usr/local/bin/skb
echo "xset -q | awk 'BEGIN { a[1]="ru"; a[0]="en"; } /LED/ { print a[$10 && 46]; }'">/usr/local/bin/skb
chmod 755 /usr/local/bin/skb
Код: Выделить всё
--skb.lua by tupoll
local wibox = require('wibox')
local naughty = require('naughty')
local awful = require("awful")
local devnull = ">/dev/null"
local xset = {}
function xset.new()
local w = wibox.widget.textbox()
w:set_text(awful.util.pread(
" skb"
))
xsettimer = timer(
{ timeout = 1 ,hover_timeout = 0.5}
)
xsettimer:connect_signal(
"timeout", function()
w:set_text(awful.util.pread(
"skb"
))end)
xsettimer:start() -- Start the timer
w:connect_signal(
"mouse::enter", function()
xset = naughty.notify(
{title="КЛАВИАТУРА",text=awful.util.pread("skb") ,
position = "bottom_right",
width = 85
})
end)
w:connect_signal(
"mouse::leave", function()
naughty.destroy(xset)
end)
return w
end
return setmetatable(xset, { __call = function(_, ...) return xset.new(...) end})
- Вложения
-
- проверено на freebsd funtoo
- 2016-10-28-204218_259x104_scrot.png (13.32 КБ) 10115 просмотров
-
- Проверяем меняя раскладку
- 2016-10-28_Oct3553-.png (65.46 КБ) 10115 просмотров
Последний раз редактировалось tupoll 31 окт 2016, 16:45, всего редактировалось 2 раза.
Правильный линукс-BSD.
- ChubaDuba
- Уважаемый участник
- Сообщения: 238
- Зарегистрирован: 18 янв 2015, 19:39
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Awesome
У меня xmonad+xmobar. Стоит kbd.tupoll писал(а):Думаю вписать его в трей другого вм или в conку труда не составит .
В xmobar раскладка отображается с помощью:
Код: Выделить всё
, Run Kbd
[ ("us(ru)", "us")
, ("ru", "<fc=#92E0E2>ru</fc>")
, ("us", "<fc=#5FB48A>us</fc>")
]
Re: Awesome
Цель была быстренько собрать рабочую индикацию из того что есть в наличии,и если можно было бы убрать бинарник -я б не задумываясь это сделал,поэтому никчему здесь это.Если кто-то засунет это без лишних строчек в lua-милости прошуChubaDuba писал(а):У меня xmonad+xmobar. Стоит kbd.tupoll писал(а):Думаю вписать его в трей другого вм или в conку труда не составит .
В xmobar раскладка отображается с помощью:Выглядит это вот так:Код: Выделить всё
, Run Kbd [ ("us(ru)", "us") , ("ru", "<fc=#92E0E2>ru</fc>") , ("us", "<fc=#5FB48A>us</fc>") ]
Код: Выделить всё
xset -q | awk 'BEGIN { a[1]="ru"; a[0]="en"; } /LED/ { print a[$10 && 32]; }'
Правильный линукс-BSD.
Re: Awesome
Что то черз awk сложно как то ( но чувствую руку мастера - шутника ) Ни как не моглаtupoll писал(а):Код: Выделить всё
xset -q | awk 'BEGIN { a[1]="ru"; a[0]="en"; } /LED/ { print a[$10 && 32]; }'
проникнутся в смысл выводимого массива a[$10 && 32]
Немного проясняет картину если выполнить:
Код: Выделить всё
awk '{print $0 && 32}' <<<"00001000"
awk '{print $0 && 32}' <<<"00000000"
awk '{print $0 && 32}' <<<"00001005"
логического "и" т.е. если оба числа отличны от нуля значит общее
выражение равно единице, если одно из чисел равно нулю то и ключу присваивается
занчение false тоесть ноль. Значит число 32 может фактически быть любым отличным
от нуля. Проверим и заменим 32 на 1
Код: Выделить всё
xset -q | awk 'BEGIN { a[1]="ru"; a[0]="en"; } /LED/ { print a[$10 && 1]; }'
написала бы очень просто, черз sed
Код: Выделить всё
xset -q | sed -n 's/.*000.$/en/p;s/.*100.$/ru/p'
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Re: Awesome
Меня тут посетила мысль и я вспомнила короткую форму записи оператора выбора
Я думаю это даже лаконичней будет и без массивов
Проверяем. Копируем строчку и запускаем в терминале меняя раскладку.
Код: Выделить всё
xset -q | awk '/LED/ {print $10?"ru":"en"}'
Проверяем. Копируем строчку и запускаем в терминале меняя раскладку.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Re: Awesome
На русскую раскладку sed благополучно плевал как обычно.Молодец!!! на линуксе можно и так,но сути не меняет("ru" "en" неизбежно в кавычках) В луа нужно будет добавлять либы,костыль-бинарник пока остаётся.
Правильный линукс-BSD.
Re: Awesome панель.
[center][/center]Панель(wibox) в стандартном исполнении разбита на три части(layout) left,right,middle:
Назовём wibox mywibox размеры,цвета и расположение предоставим библиотеке beautiful:
Меняем теперь базовую схему разделения и делаем панель «двухэтажной»,изменения секций панели выносим из файла конфигурации в любое удобное место конфигурации(здесь это директория .compact)Левый layout нам нужно сделать вертикальным, разделённым пополам,для этого поделим его на две горизонтальные половины:Центральная часть wibox имеет два горизонтальных лейаута правый лейаут при этом поделен на два горизонтальных выглядит это так:Остаётся только правая часть wibox-в моём случае оставлена поделенной и пустой без виджетов,но зарегистрированной в конфигурации панели по аналогии с левой.Причины для этого две: Всё с двух панелей свободно разместилось с запасом,деление панели получилось не фиксированным геометрически,а виртуальным с использованием разных по величине мест для заполнения.Теперь чтобы убрать всё лишнее с рабочей области достаточно нажать два раза: mod4 /. Внимательней посмотреть конфигурацию можно здесь https://github.com/tupoll/awesome .Разделить как угодно можно любую из полученных секций панели при помощи библиотеки layout используя описанные ей комбинации верх,низ вправо,влево,сжать-растянуть и т.п.Тем более сейчас код более чем упрощён разработчиками вм.
Код: Выделить всё
left layout | middle layout | right layout | --------------------------------------------------------------------------------------------------
Меняем теперь базовую схему разделения и делаем панель «двухэтажной»,изменения секций панели выносим из файла конфигурации в любое удобное место конфигурации(здесь это директория .compact)
Код: Выделить всё
awful.screen.connect_for_each_screen(function(s)
-- Create the wibox
s.mywibox = awful.wibar({ position = beautiful.wibox.position, height = beautiful.wibox.height, screen = s }) -- размер панели в theme.lua
s.mywibox:set_bg(beautiful.wibox.bg) --цвет панели в theme.lua
-- Add widgets to the wibox
s.mywibox:setup {
layout = wibox.layout.align.horizontal,
{ -- Left widgets
layout = wibox.layout.fixed.horizontal,
compact.left(),
},
compact.middle(), -- Middle widget
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
compact.right(),
},
}
end)
Код: Выделить всё
local awful = require("awful")
local beautiful = require("beautiful")
local wibox = require("wibox")
local radical = require("radical") local function new()
local layout = wibox.layout.flex.vertical() --размещение вертикально
local top_layout = wibox.layout.fixed.horizontal() --верхний горизонтальный
top_layout:add(m()) --прописываем верхние виджеты
local bottom_layout = wibox.layout.fixed.horizontal()
bottom_layout:add(p()) --место для виджетов
layout:add(top_layout)
layout:add(bottom_layout)
return layout
end
return (function(_, ...) return new(...) end )
Код: Выделить всё
local awful = require("awful")
local beautiful = require("beautiful")
local wibox = require("wibox")
local radical = require("radical")
local common = require("compact.common") local function new()
local layout = wibox.layout.flex.horizontal() --сам layout расположен свободно горизонтально
local middle_layout = wibox.layout.fixed.horizontal() --левая увеличенная часть
middle_layout:add(u()) --место для размещения «больших виджетов»
middle_layout:add(c())
local right_layout = wibox.layout.flex.vertical() --регистрируем правую половину верт.
local top_layout = wibox.layout.flex.horizontal() --делим на два горизонтальных
top_layout:add(t()) --виджеты правый layout верх
right_layout:add(top_layout)
local bottom_layout = wibox.layout.fixed.horizontal()
bottom_layout:add(d()) --виджеты справа низ
right_layout:add(bottom_layout)
layout:add(middle_layout)
layout:add(right_layout)
return layout
end
return (function(_, ...) return new(...) end )
- Вложения
-
- 2016-11-24_Nov3412-.png (34.6 КБ) 10025 просмотров
Последний раз редактировалось tupoll 31 янв 2020, 09:07, всего редактировалось 2 раза.
Правильный линукс-BSD.
Re: Awesome 4
Четвертая версия awesome имеет значительные изменения в синтаксисе конфигурирования
Однако с приходом её так же появился новый одноимённый сайт с вполне приличным
описанием всех модулей оконного менеджера,имеются так же примеры кофигурирования
и описание отличий от версии 3.5 https://awesomewm.org/
На сегодняшний день имеются вполне рабочие конфиги от создателя библиотеки lain
c которых и советую поближе ознакомиться с версией https://github.com/copycat-killer/awesome-copycats .
И приятно получить уже наконец виджет индикатора раскладки сразу по дефолту.
Однако с приходом её так же появился новый одноимённый сайт с вполне приличным
описанием всех модулей оконного менеджера,имеются так же примеры кофигурирования
и описание отличий от версии 3.5 https://awesomewm.org/
На сегодняшний день имеются вполне рабочие конфиги от создателя библиотеки lain
c которых и советую поближе ознакомиться с версией https://github.com/copycat-killer/awesome-copycats .
И приятно получить уже наконец виджет индикатора раскладки сразу по дефолту.
- Вложения
-
- Пропатченная малость мною тема multicolor
- 2017-06-05-064344_1377x772_scrot.png (695.79 КБ) 5619 просмотров
Правильный линукс-BSD.
Re: Awesome
Добавил наконец конфигурацию для трёх операционных систем -устал переписывать руками
Затем тыкаем мышью в виджет и логинемся снова в иксы.git clone https://github.com/tupoll/awesome.git ~/.config/awesome
chmod 755 ~/.config/awesome/compact/os/make_linux.sh
- Вложения
-
- 2019-11-25_Nov3753-438x382.png (101.5 КБ) 1562 просмотра
Правильный линукс-BSD.
Re: Awesome
Потихоньку меняются выражения и функции в последних версиях (deprecated)
Функция указывающая на директорию размещения конфигурации темы и икон перенесена в /lib/gears.filesystem
и работает с дефолтной конфигурацией:
И напрочь отказывается работать с $HOME разделами:
Как рабочий вариант на сегодня нужно указать путь-до-темы,пример:
В theme.lua:Вместо res можно использовать любое слово(можно просто прописывать полный путь).
Функция указывающая на директорию размещения конфигурации темы и икон перенесена в /lib/gears.filesystem
и работает с дефолтной конфигурацией:
Код: Выделить всё
- Initializes the theme system
beautiful.init(awful.util.getdir("config").."/themes/gentoo/theme.lua") --устаревшее назначение пользователем
Код: Выделить всё
beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
Код: Выделить всё
local themes = {
"pattern", -- 1 --например ~/.config/awesome/themes/pattern
"darkblue" -- 2 --~/.config/awesome/themes/darkblue
}
local chosen_theme = themes[1] --выбранная тема
local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), chosen_theme) --путь
beautiful.init(theme_path) --инициализация
В theme.lua:
Код: Выделить всё
local theme = {}
local res = os.getenv("HOME") .. "/.config/awesome/themes/pattern"
theme.wallpaper = res .. "/3D_black_background_8.jpg"
theme.menu_submenu_icon = res .. "/icons/submenu.png"
theme.distr_icon = res .. "/logos/funtoo_logo1.png"
Правильный линукс-BSD.