Индикатор раскладки в i3status на коленке

ion, dwm, wmii, awesome, xmonad и другие

Модератор: Модераторы разделов

Ответить
Аватара пользователя
olecya
Сообщения: 901
ОС: debian, fedora (i3-wm)

Индикатор раскладки в i3status на коленке

Сообщение olecya »

Система федора 30. i3wm стоит сверху гнома
При установке системы просто выбираю в качестве
переключателя раскладки Caps_Lock а переключателем регистра символов
Caps_Lock + Shift
Потом устанавливаю пакет qxkb который в минимальной конфигурации
использую как индикатор на панеле. С последними обновлениями
поломался индикатор и не захотел больше переключаться. Я восприняла
это как вызов и попыталась решить это глобально и избавится наконец
от лишней установки пакета qxkb. Мне это проще так как я все конфиги
держу в репозитории и при установке просто клонирую его целиком.
К моему разочарованию в конфиге i3status нет возможности выполнять и
выводить команду оболочки, но в man страничке я нашла
"прототип" функции чтения из файла.

Код: Выделить всё

LESS=+/"read_file uptime" man i3status
Я вспомнила как помогала сделать выборку для индикатора раскладки в
тайлинге Awesome через утилиту xset. И вот что у меня получилось
Добавляю в конфиг i3status следующие строчки

Код: Выделить всё

order += "read_file xkb"
...
read_file xkb {
        format = "%content"
        path = "/tmp/xkb"
} 
Спецификатор формата нашла там же, немного его обрезав

Код: Выделить всё

LESS=+/"File Contents" man i3status
Добавила в файл основного конфига:

Код: Выделить всё

exec echo US >/tmp/xkb
bindsym Caps_Lock exec xset q | awk '/LED/ {print ($10>1)?"RU":"US"}' >/tmp/xkb && killall -SIGUSR1 i3status
команда killall -SIGUSR1 i3status нужна что бы панель обновилась сразу, а не через установленный
интервал в 5сек
В выводе утилиты awk по десятому полю получаю такие изменения при переключении раскладки
us 00000000
US 00000001
ru 00001000
RU 00001001
и на их основе перезаписываю временный файл
Есть еще задумка отображать также и изменение регистра символов, но
пока довольна что так быстро удалось решить проблему локальными средствами
предусмотренными в дизайне самих конфигов хотя может и несколько для иных целей.
xkb.png
xkb.png (6.83 КБ) 7886 просмотров
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Индикатор раскладки в i3status на коленке

Сообщение Bizdelnick »

olecya писала:
13.02.2020 16:18
К моему разочарованию в конфиге i3status нет возможности выполнять и
выводить команду оболочки, но в man страничке я нашла
"прототип" функции чтения из файла.
Ещё там есть прототип скрипта, позволяющего комбинировать вывод i3status с выводом других команд:

Код: Выделить всё

#!/bin/sh
# shell script to prepend i3status with more stuff

i3status | while :
do
        read line
        echo "mystuff | $line" || exit 1
done
P. S. Использование нециклического переключения раскладки делает индикатор ненужным.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 901
ОС: debian, fedora (i3-wm)

Re: Индикатор раскладки в i3status на коленке

Сообщение olecya »

По моему в начале знакомства с i3wm я пробовала подобные скрипты и были проблемы
по выводу в оригинальном цвете, но я могу и ошибаться
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Индикатор раскладки в i3status на коленке

Сообщение Hephaestus »

olecya писала:
13.02.2020 16:18
При установке системы просто выбираю в качестве
переключателя раскладки Caps_Lock а переключателем регистра символов
Caps_Lock + Shift
Потом устанавливаю пакет qxkb который в минимальной конфигурации
использую как индикатор на панеле.
Рассмотрите в качестве альтернативы вариант с использованием, например, Scroll Lock как индикатора раскладки.
Для циклического переключения двух раскладок - вполне годно. Настроил я у себя это дело ещё лет десять назад - так с тех пор и осталось.

Нециклическое переключение при всех достоинствах у меня лично не прижилось:
Во-первых, мне тогда не удалось это настроить вне иксов (я вообще не знаю, это возможно или нет?).
Во-вторых, я работаю на разных системах и хочется иметь одинаковый вариант переключения везде.
Циклическое переключение по CapsLock, мне удалось перетащить на Win, а вот с нециклическим гораздо сложнее.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Ответить