LINUX.ORG.RU

Вышел LoLo Switcher v.0.25

 , , ,


0

2

LoLo Switcher - низкоуровневый локальный переключатель клавиатуры для оконной системы X11. Работает в любых окружениях рабочего стола: KDE3, KDE4, GNOME, LXDE и прочих.

LoLo Switcher запускается как процесс на низком системном уровне и получает данные от клавиатуры напрямую из файла устройства. Обнаружив нужную последовательность кодов, LLS вызывает функции X11, отвечающие за переключение раскладки. Переключатель очень компактен и быстр, поддерживает любые модели клавиатур и джойстиков, реагирует на любые события устройства ввода, включая отпускание клавиш. Способен прозрачно работать параллельно с другими переключателями клавиатуры.

Гибкость срабатывания переключения языка обусловлена использованием регулярных выражений. Одно выражение фильтрует поток событий, второе вычленяет в потоке набор событий, при котором должно произойти переключение. Доступно как циклическое переключение языка, так и прямое. Автор использует LLS для переключения языков с помощью левого и правого SHIFT-а.

Сегодня стал доступен новый стабильный релиз LoLo Switcher v.0.25. Переключатель созрел для использования как на на 32-битных Linux-платформах, так и на платформах x86_64.

Для ознакомления с возможностями программы, на YouTube размещена видеодемонстрация работы.

Также доступно руководство по настройке.

>>> Официальная страница LoLo Switcher



Проверено: Aceler ()
Последнее исправление: Deleted (всего исправлений: 4)
Ответ на: комментарий от Aceler

а переключением непосредственным занимается он, и настраивается, через setxkbmap… но зачем о нём помнить? лучше написать ещё 100500 программ, которые читают /dev/events, /dev/astral и вызывают функции xkb для переключения :)

это я к тому, что необходимость в программе занимающейся _только_ чтением скан кодов и переключением раскладки находится под вопросом.

qnikst ★★★★★
()

Звёздный час ТСа. Новость подтвердили.

daemonpnz ★★★★★
()
Ответ на: комментарий от tot-to

> А можно на нём реализовать такое поведение: При нажатии ctrl или alt раскладка переключается на английскую qverty, а при отжатии - обратно на ту, что была?

Да, можно. Но это реализуется и системным переключателем (во всяком случае я себе сделал так). И LoLo Switcher работает параллельно с системным.

Грубо говоря, LoLo Switcher имеет смысл использовать для такого переключения, которое невозможно настроить системными средствами.

webhamster
() автор топика
Ответ на: комментарий от buddhist

>> умеет срабатывать по отпусканию клавиш

Почему это является киллер-фичей?


При переключении по шифтам это просто необходимо. Что толку, если раскладка переключится при нажатии Shift, когда тебе нужно было просто набрать заглавную букву?

Посмотри видео, и поймешь.

webhamster
() автор топика
Ответ на: комментарий от webhamster

>Хм, но это не задача переключателя раскладки клавиатуры. Делать комбаин - по моему это провальный путь. Пусть переключатель раскладки переключает раскладку.

зря. Судя по описанию программа куда шире, чем простой переключатель. И возможность глобальных биндингов в ней так и просится.

AVL2 ★★★★★
()
Ответ на: комментарий от webhamster

Под системным переключателем имеется в виду setxkbmap или конфиги в /usr/share/X11/xkb/symbols или ещё что-то? В общем, буду крайне признателен, если подскажешь куда копать в стандартных средствах.

tot-to
()
Ответ на: комментарий от tot-to

> Под системным переключателем имеется в виду setxkbmap или конфиги в /usr/share/X11/xkb/symbols или ещё что-то? В общем, буду крайне признателен, если подскажешь куда копать в стандартных средствах.

Если у тебя только две раскладки, то вот:

Временное переключение раскладки

webhamster
() автор топика
Ответ на: комментарий от tot-to

а у меня бы она события мышки ловила.. и не охота пробовать но судя по всему та же история будет и со второй клавиатурой, которую подключаю к ноуту...

qnikst ★★★★★
()
Ответ на: комментарий от tot-to

> кстати, в моей системе нет файла /dev/input/event0, так что lolo отказалась работать :(

1. Что за система?

2. Файл девайса настраивается в конфиге.

webhamster
() автор топика
Ответ на: комментарий от qnikst

> это я к тому, что необходимость в программе занимающейся _только_ чтением скан кодов и переключением раскладки находится под вопросом.

Я тоже. Только акцент я бы поставил по-другому:

«необходимость в _программе_ занимающейся только чтением скан кодов и переключением раскладки находится под вопросом.»

Aceler ★★★★★
()

Сколько в треде величайших осиляторов всего и вся, великих комбинаторов стандартных раскладок, у которых все просто работает, но которым не терпится похвастаться об этом здесь и которые любое свежее веяние закидывают говном. Они то не догадываются, что говно то берут из-под себя...

Я хоть webhamster-а и не знаю, однако искренне поддерживаю.

bk_ ★★
()
Ответ на: комментарий от Aceler

Что значит «ни от чего»? Придется все равно создавать какой-то abstraction layer, предоставляющий superset консольной клавы и xkb. Чтобы создать что-то сравнимое по гибкости с xkb, придется свернуть горы. Или будет некое подмножество фич, т.е. ограничения. И - главный вопрос - ЗАЧЕМ?

Насчет базы самих раскладок - оно уже есть, насколько я знаю. Используют уже xkeyboard-config в консоли.

svu ★★★★★
()
Ответ на: комментарий от shaplov

Ололо свитчер... Мда... Название конечно не дотягивает до дохной говядины, но в десятке с ней...

Лол свитчер помоему лучше)

goingUp ★★★★★
()
Ответ на: комментарий от vilisvir

Что есть «переключалка» в Ваших терминах? Конфигуратор? Индикатор? Пооконный менеджер переключения? Все эти 3 вещи должны быть хорошо интегрированы в конкретный DE. Ну разве что кроме менеджера переключения, он может быть просто фигней между иксами и оконным менеджером - но такой менеджер довольно прост и неинтересен.

svu ★★★★★
()
Ответ на: комментарий от DoctorSinus

о как, а я и не знал. Вечно перемапливанием хоткеев занимаюсь :)

А что бы в апстрим это запихнуть никто баг не постил?

mrdeath ★★★★★
()

Отличная программа!

Правильно было бы, наверное, сделать программу более настриваемой. Примерно так (где SwitchTo, SwitchToNext и Bash — разные модули):

keyb = Device(
    type = "keyboard",
    event_filter = "^1,[0-9]+,[0-9]+;$",
    sequences = [
        ["(?<!1,29,1;|1,29,2;|1,97,1;|1,97,2;|1,56,1;|1,56,2;|1,100,1;|1,100,2;)1,42,1;1,42,0;$", [
             SwitchTo(1),
             #SwitchToNext(2),
             Bash("beep")
        ]]
    ]
)

devices = [keyb]
anonymous
()
Ответ на: комментарий от webhamster

Нет, у меня их три, а в перспективе возможно и больше. И даже для простейшего переключения не по циклу, а по отдельным клавишам, пришлось так вот патчить /usr/share/X11/xbk/symbols/us:

key <SCLK> {actions=[ LockGroup(group=1)]};

key <CAPS> {actions=[ LockGroup(group=2)]};

key <MENU> {actions=[ LockGroup(group=3)]};

grp:*switch временно переключают просто на следующую по порядку раскладку. А нужно именно на определённую, а потом вернуть ту, что была. Нужно это для правильной работы хоткеев.

tot-to
()
Ответ на: комментарий от bk_

Это тебе не чатик асечный с твоим дружбаном, тут ты со всеми разговариваешь. Если не желаешь со мной разговаривать, то в профиле в моём есть чудесная кнопочка.

daemonpnz ★★★★★
()
Ответ на: комментарий от webhamster

>1. Что за система?

Gentoo без hal, dbus и de. В xorg.conf для клавы прописан стандарный драйвер kbd.

2. Файл девайса настраивается в конфиге.

Само собой, это я прочитал. Но какой файл туда писать...

tot-to
()
Ответ на: комментарий от DoctorSinus

Чудесно конечно. Раскладка не переключается, нажата ещё одна клавиша. Только вот хоткеи не срабатывают. Пример: переключение раскладок по Win_L/Win_R. Переключение раб.столов по Win+1/2/3/4/... С xneur это работает. С патчем с этим нет. Какие будут предложения.

daemonpnz ★★★★★
()
Ответ на: комментарий от om-nom-nimouse

Смотрел. В /dev/input всего 3 файла: mice, mouse0 и by-path/platform-i8042-serio-4-mouse (последний - ссылка на второй)

Судя по названию, есть подозрение, что они все не имеют отношение к клавиатуре. :)

tot-to
()

>LoLo Switcher следует запускать от пользователя, который в данный момент загеристрирован в X-системе. Для запуска используется команда:

/usr/sbin/loloswitcher


Но почему в /usr/sbin?

kernelpanic ★★★★★
()
Ответ на: комментарий от tot-to

У вас вообще клавиатура-то подключена, или по ssh зашли? :-)

Попробуйте грепнуть логи иксов и системный, правда решение одноразовое.

om-nom-nimouse ★★
()

Отличная замена sudo получилась, даже пароль вводить не надо ;)

$ id
uid=1000(user) gid=1000(user)
$ USER=';touch /root/wtf;' /usr/sbin/loloswitcher
$ ls -l /root/wtf
-rw-r--r-- 1 root root 0 Окт 10 02:08 /root/wtf
Deleted
()
Ответ на: комментарий от svu

>Что есть «переключалка» в Ваших терминах? Конфигуратор? Индикатор? Пооконный менеджер переключения? Все эти 3 вещи должны быть хорошо интегрированы в конкретный DE. Ну разве что кроме менеджера переключения, он может быть просто фигней между иксами и оконным менеджером - но такой менеджер довольно прост и неинтересен.

Задача стоит такая: чтоб при определённой комбинации клавиш происходила смена раскладки и отображался значок текущей. Кроме того, чтоб любая запущенная программа начинала с раскладки по-умолчанию. Вот такая тривиальная функция в разных DE умудряется по-своему глючить.

vilisvir ★★★★★
()
Ответ на: комментарий от om-nom-nimouse

Клавиатуру к ноутбуку очень сложно не подключить :)

И, конечно, я тестирую на том компе, за которым в данный момент сижу.

$ grep /dev /var/log/Xorg.0.log

[ 257.573] Kernel command line: root=/dev/sda5 resume=/dev/sda1 irqpoll i915.modeset=1

[ 257.611] drmOpenDevice: node name is /dev/dri/card0

[ 257.611] drmOpenDevice: node name is /dev/dri/card0

[ 258.553] (**) Option «Device» «/dev/input/mice»

[ 258.865] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/mouse0)

Или я что-то не то грепаю? Вот полный лог:

http://tot-to.com/files/Xorg.0.log

tot-to
()

Нужно.
По сути что сделал автор-написал _простой_ скрипт/програмку для расширенного переключения клавиатуры(без ужасающих команд xkb)
И верно подмечено-в этом ужасе переключалок клавиатур-для каждого ДЕ свой,или монстры по 20мб,которые еще и тормозят(xneur тому пример)

Хотя-у большинства бзеров(со стажем) уже все шаблоны для xkb готовы,и скрипты написаны,т.е. юзать бедет только юзеры новые.

Конечно у меня все настроено и работает-ничего менять не буду.Автору респект.

anonymous
()
Ответ на: комментарий от qnikst

>переизобретаем xbindkeys?

ага, но в работоспособном виде.

AVL2 ★★★★★
()
Ответ на: комментарий от daemonpnz

>Оно всё по прежнему с суид битом?

Что??? Ты щас попытался показаться умным, мне так кажется.

anonymous
()
Ответ на: комментарий от tot-to

Если при ребуте не меняется, можно попробовать его прописать. Естественно, в виде /dev/input/event5.

Надёжнее, конечно, правила для udev написать, если есть.

om-nom-nimouse ★★
()
Ответ на: комментарий от vilisvir

> чтоб при определённой комбинации клавиш происходила смена раскладки
Вы понимаете, что понятие «определенной комбинации» зависит от текущей раскладки клавиатуры? Или хотите жестко забиваться на нижнеуровневые сканкоды? В сущности, иксы с этой функцией справляются неплохо, если setxkbmap (или аналогичная DE-специфичная гуевая тулзовина) правильно выбрала раскладки и grp:* опцию.

отображался значок текущей

Уже никакой универсальности сразу. Потому что отображение должно быть сделано в рамках конкретного DE, в соответсвие с конкретными HIG.

Кроме того, чтоб любая запущенная программа начинала с раскладки по-умолчанию.

Да, тут бывают глюки. По хорошему, это должен делать WM, но они этого обычно не делают.

svu ★★★★★
()

Автору респект, для многих новичков находка.

Decard
()

Когда ждать PePe Switcher?

medik ★★★
()
Ответ на: комментарий от Pavval

> Дык есть же вроде патч на самый любимый баг иксов, который дает возможность переключать по Ctr+Shift без потери шорткатов.

Но зачем? По Caps переключать гораздо удобней же.

Зачем в GNU/Linux тащить всякое г-но из винды (это же в винде придумали что переключать раскладку нужно через ctrl-shift/alt-shift, верно?)?

Xenius ★★★★★
()

Вот все о переключалках рассуждают, а есть ли возможность для отдельных приложений назначить раскладку по умолчанию, чтоб в ИМ-клиенте всегда русская, а в консоли и бровзере англицкая?

Satou ★★★★
()
Ответ на: комментарий от Satou

Договаривайся со своим WM. Под оффтопик такие средства более-менее есть.

x3al ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.