LINUX.ORG.RU

Переключатель клавиатуры LoLo Switcher v.0.15


0

1

Выпущен первый публичный релиз низкоуровневого переключателя клавиатуры LoLo Switcher v.0.15 для оконной системы X11.

Основные достоинства переключателя:

  • cпособен работать в любых окружениях рабочего стола (KDE3, KDE4, GNOME2, LXDE);
  • работает напрямую с устройством ввода, очень компактен и быстр;
  • поддерживает любые модели клавиатур и джойстиков;
  • способен прозрачно работать параллельно с другими переключателями клавиатуры;
  • содержит встроенные средства диагностики устройств ввода.

Данный переключатель решает застаревшие проблемы, которые вынуждают пользователей Linux безальтернативно использовать клавишу CapsLock как самую беспроблемную. Программа спроектирована так, что её можно настроить на любое устройство ввода (сейчас поддерживается клавиатура и джойстик), на любую комбинацию действий с любой логикой срабатывания.

Конфигурирование программы происходит с использованием регулярных выражений, которые служат для фильтрации событий и для вычленения нужных последовательностей из потока кодов, генерируемых устройством.

В плане развития указывается на добавление обработки клавиатурных событий среды X11, благодаря чему LoLo Switcher будет полноценным X11-приложением, способным предоставить свой функционал при удалённом подключении к X-серверу. Для этого автору нужна помощь сообщества, так как ему неизвестен работающий способ получения клавиатурных событий от всех окон на рабочем столе.

Автор использует LoLo Switcher для переключения между RUS/LAT с помощью правого и левого SHIFT. Обсуждение такого способа переключения можно найти на ЛОРе.

Официальная страница программы LoLo Switcher

Руководство по конфигурированию LoLo Switcher

Видео с демонстрацией работы LoLo Switcher на YouTube

Новость на сайте автора

Перемещено svu из OpenSource

> webhamster

Любопытный хомячок


Закопать.

bsdfun ★★★★★ ()

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

Бугагашеньки. Аффтар, да будет вам известно, небось поколению Windows 95, что Caplock выбирается отнюдь не по этому признаку, а из-за максимальной удобности и быстроты переключении раскладки в нужный момент 8)

Andru ★★★★ ()

Сходил по ссылке.

Дальнейшее развитие LoLo Switcher видится в подключении работы с событиями X11. Тогда LLS станет не просто локальным низкоуровневым переключателем, а полноценным X11 приложением, способным предоставить свой функционал при удаленном подключении к X-серверу. Для этого мне нужна помощь сообщества, а именно нужен пример кода, который способен получать события клавиатуры (или события джойстика) не только в одном текущем X-окне, но и во всех окнах X-сервера.

facepalm.mkv

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

Аффтар принадлежит к секте включателей раскладки. Боюсь, что по удобству и быстроте они заруливают секту переключателей капслоком.

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

Кстати, этот велосипед сможет сделать переключение раскладки по капсу + капс, работающий как ctrl работающими одновременно. Уже за одно это он заслуживает право на существование.

x3al ★★★★★ ()

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

Дома переключаю при помощи leftWIN, на работе LeftWin себе и Ctrl+Shift для коллег работающих там же.

adriano32 ★★★ ()

Одно то, что он реализовал срабатывание переключалки при отпускании клавиши, а не при её нажатии, выводит проект в список обязательных для установки. Автор сделал то, что не могут сделать давно разрабы Х'ов, тулкитов и DE.

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

> Аффтар, да будет вам известно, небось поколению Windows 95, что Caplock выбирается отнюдь не по этому признаку, а из-за максимальной удобности и быстроты переключении раскладки в нужный момент 8)

Я выбрал CapsLock именно потому что другие комбинации глючат или вступают в противоречие с шорткатами. Например, используя неудобный, но популярный Ctrl+Shift, можно нарваться на то, что невозможно пользоваться шорткатами Ctrl+Shift+буква, не переключив заодно язык. То же самое касается и Alt+Shift.

Кстати, в Mac тоже жуткие проблемы при переключении раскладки, и маководы извращаются как могут. Например, многие настраивают не переключение раскладки, а перемап клавиатуры на кириллистические символы при нажатии CapsLock.

У меня создается впечатление, что с переключателями раскладки нет проблем только в Windows.

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

Там они есть, раскладка не всегда переключается, по крайней мере в WinXP

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

>Автор сделал то, что не могут сделать давно разрабы Х'ов, тулкитов и DE.

Пока ещё он сделал лишь хак, работающий сбоку от X-сервера, только с evdev (да, он ещё не на всех десктопах) и приводящий к забавным, но почти безобидным (наверно) эффектам на многопользовательских десктопах.

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

>Одно то, что он реализовал срабатывание переключалки при отпускании клавиши

Не может быть. Свершилось. Это событие будет поважней смены ядрёной нумерации.

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

> Дома переключаю при помощи leftWIN, на работе LeftWin себе и Ctrl+Shift для коллег работающих там же.

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

Кстати, просто поразмышляй на досуге, почему клавиша SPACE такая длинная. Потом посмотри на клавиши SHIFT, и тоже заметь, что они самые длинные после пробела. Для чего-то ведь сделано именно так, причем не мною.

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

> Сходил по ссылке.

Цитата: Дальнейшее развитие LoLo Switcher видится в подключении работы с событиями X11. Тогда LLS станет не просто локальным низкоуровневым переключателем, а полноценным X11 приложением, способным предоставить свой функционал при удаленном подключении к X-серверу. Для этого мне нужна помощь сообщества, а именно нужен пример кода, который способен получать события клавиатуры (или события джойстика) не только в одном текущем X-окне, но и во всех окнах X-сервера.

facepalm.mkv



Именно. Я все еще жду от тебя файлик main.cpp с рабочим примером получения клавиатурных событий от всех окон на рабочем столе.

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

>переключатель раскладки на нижних клавишах - неэргономично

Предлагаешь переключаться бэкспейсом?

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

почему клавиша SPACE такая длинная. Потом посмотри на клавиши SHIFT, и тоже заметь, что они самые длинные после пробела.

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

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

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

И да, один положительный комментарий из 6-страничного обсуждения != Удобство такого способа переключения недавно обсуждалось...

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

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

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


Ша, ша! Никто тебя не заставляет переключаться по-другому. Просто, как сказал профессиональный психолог на летней школе великого Кургиняна, информацию надо подавать небольшими дозами, чтобы человек смог ее принять и осмыслить. Поэтому я тебя попросил задуматься над одним пустяковым вопросом, а ты уже начал закрываться в своей норке. Видимо, доза эта оказалась слишком большой...

Кстати, каким пальцем ты давишь на левый Ctrl? Спрашиваю не ради обгаживания ответа, а из профессионального интереса.


И да, один положительный комментарий из 6-страничного обсуждения != Удобство такого способа переключения недавно обсуждалось...


А в чем проблема то? В теме я обсуждал удобство переключения по L/R SHIFT. Дал ссылку. При чем тут один положительный комментарий, ума не приложу.

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

> а из-за максимальной удобности и быстроты переключении раскладки в нужный момент

Попробовал. Нифига не удобно капсом переключать, руки на клавиатуре не так лежат (мизинцем левой руки задолбаешься двигать). Ctrl+Shift наше все.

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

> Я только не понял, а что для использования прогу нужно пускать из под рута?!

Чтобы был прямой доступ к девайсам /dev/input/event0, /dev/input/js0.

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

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

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

PS. Всем вопрос, как и чем выставляются права на /dev/input/event*?

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

>руки на клавиатуре не так лежат (мизинцем левой руки задолбаешься двигать)

А как ты enter нажимаешь? Хотя я знаю нескольких упоротых японцев, перебиндивших «;» на enter (и C-; на ;), но всегда думал, что подобных людей мало.

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

>PS. Всем вопрос, как и чем выставляются права на /dev/input/event*?

Эм. udev? Мануалы по его рулезам — в интернете.

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

В современных десктопных дистрибутивах есть *kit'ы для подобного функционала, но я их не тыкал. В теории они тырпрайзнее.

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

>А как ты enter нажимаешь?

Мизинцем правой. Но она у меня вообще при печати сильно больше двигается.

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

> Попробовал. Нифига не удобно капсом переключать, руки на клавиатуре не так лежат (мизинцем левой руки задолбаешься двигать). Ctrl+Shift наше все.

Подумай, частота переключения раскладки с национальной на английскую и обратно, особенно у IT-шников, сравнима по частоте с нажатием ENTER.

Вопрос. Зачем для такого частого действия использовать нажатие _одновременно_ _двух_ клавиш???

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

хз, по скорости переключения одно и то же (одновременно на две клавиши жать).

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

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

x3al ★★★★★ ()

Переключаю раскладку левым мизинцем по капсу. Мне этот ололосвитчер зачем-нибудь нужен?

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

Ага, спасиб, уже нашёл.
Нужно создать файл /etc/udev/rules.d/51-evdev-users.rules следующего содержания

# input
KERNEL=="mouse*|mice|event*", MODE="0644"

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

При том, что кроме того одного комментария никто об удобстве переключения шифтом не высказывался.

Кстати, каким пальцем ты давишь на левый Ctrl?

Вообще я пользуюсь правым, или левый чем-то лучше? Жму или мизинцем, или большим пальцем, в зависимости от того, с какой стороны от него ладонь. А правый в обычном положении могу нажать первым суставом мизинца (там где палец к ладони «прикреплён»), он как раз под ним.

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

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

Шифт и пробел широкие, чтобы на них было легче попасть не прицеливаясь и не ошибиться, верно?

Кстати, о специалист по эргономике, зачем 0 и + на NumLock-клаве большие?

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

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

Не понял, как клавиши там размещаются? не понял Дай картинку клавиатуры.

webhamster ()

Ну сколько можно-то уже «выпускать релизы»? Всё впечатление от новости портит. Посмотрите как переводится слово релиз..., а лучше пишите уже по-русски и читайте классиков для тренировки грамотности.

Название у программы интересное. Надо бы этот мультик накопать и посмотреть.
На С программа или на плюсах?

wbrer ★★★ ()

> поддерживает любые модели ... джойстиков;

И мы пааааалетееееелииии к лаааатииииниииицеееееееее! Осторожно! Уворачивайся от умлаутов!

Программа спроектирована так, что её можно настроить на любое устройство ввода

Реквестирую поддержку MIDI, чтобы можно было футсвитчем между русским, французским, грузинским и суахили переключаться.

AP ★★★★★ ()

Набросок ebuild'а.

# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit cmake-utils
EAPI=3

DESCRIPTION=""
HOMEPAGE="http://webhamster.ru/site/page/index/articles/projectcode/180"
SRC_URI="http://webhamster.ru/db/data/articles/180/loloswitcher_0_15.tar.gz"

LICENSE="GPLv3"
SLOT="0"
KEYWORDS="~x86 ~amd64"
IUSE=""

DEPEND=""
RDEPEND="${DEPEND}"

src_prepare() {
	mv loloswitcher_0_15 loloswitcher-0.15 || die "failed	mv"
	sed 's/sbin/bin/' -i loloswitcher-0.15/CMakeLists.txt || die "failed sed"
	echo "" > loloswitcher-0.15/postinstall.cmake || die "failed rm postinstall"
}
Что необходимо только для сборки, а что чисто для runtime?

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

Кстати, а почему именно LoLo Switcher? Что значит это название?

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

Я так понимаю, что при первом запуске создаётся конфиг для переключения между ENG/RUS по левому и правому шифту?! Ну так вот... не работает оно. :(

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

> Шифт и пробел широкие, чтобы на них было легче попасть не прицеливаясь и не ошибиться, верно?

Именно. Касаемо SHIFT - он испоьлзуется очень часто, например в начале преложения, в начале имен, при печати знаков препинания и математических символов. Можно сказать, что SHIFT используется чаще точки. Его частота нажатия сравнима с частотой встречаемости запятой при печати больших объемов текстов.

Теперь вопрос. Почему SHIFT - большой, а запятая - нет? Ну тут все просто. Запятая - это символ, хоть и часто встречающийся. А шифт - это модификатор. Человеческий мозг при печати делает акцент на символ, и легко его находит. Первичен символ, а модификатор вторичен. Когда человеку нужно напечатать @ или %, он нацелен на эти символы, а модификтор вторичен, хоть его и надо нажимать. Поэтому клавиша SHIFT сделана большой, чтобы человек ее не искал с большой точностью, а усилия на точность нажатия больше перенес на символ.

Кстати, о специалист по эргономике, зачем 0 и + на NumLock-клаве большие?

Хороший вопрос. Про 0 я тебе ничего не скажу, кроме того, что эта клавиша «правильная», горизонтальная. Гораздо интереснее вертикальные клавиши. Вообще, вертикальные клавиши (с параллельным ходом) - это одно большое недоразуменее на любом устройстве. Как минимум, такие клавиши должны обладать специальной кареткой, обеспечивающей хорошую параллельность хода при нажатии на любую точку клавиши, как это сделано под клавишей ENTER. Клавиши Grey+ и GreyEnter на многих моделях клавиатур такой каретки не имеют (и это, кстати проблема). Применение вертикальных клавиш на пультах управления строго противопоказано (потому что человек при работе за столешницей держит руки больше ладонями вниз, чем руки с ладонями перпендикулярно земле, и удар по клавише чаще всего «горизонтальный» если клавиши каснётся больше одного пальца). Но когда вертикальные клавиши находятся на краю устройства, их применение может быть оправдано. Нужно учитывать, что дополнительная клавиатура ведет свое начало со счетных машин, в которых операторы должны были быстро вводить большое количество цифр и уметь их складывать чтоб получить «Итого». Видимо, этим объясняется вертикальность этих двух клавиш - стремились увеличить площадь этих самых частонажимаемых клавиш, и с учетом того, что руку (хотя бы чать руки) можно выносить за край клавиатуры (чего нельзя сделать при работе на основной зоне клавиатуры), пошли на то, что забабахали вертикальные Grey+ и GreyEnter, хотя это очень спорное решение.

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

> Я так понимаю, что при первом запуске создаётся конфиг для переключения между ENG/RUS по левому и правому шифту?! Ну так вот... не работает оно. :(

Ну так запусти

/usr/sbin/loloswitcher -t1

и покажи вывод при нажатии левого и правого шифта.

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

>> Надо бы этот мультик накопать и посмотреть.

Это не мультик, а аниме. Пруф.


То, что мультфильм внесли на сайт анимедб еще не значит, что это аниме.

http://ru.wikipedia.org/wiki/Приключения_пингвинёнка_Лоло

Тип мультфильма: рисованный
Жанр: драма, приключения

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

> Реквестирую поддержку MIDI, чтобы можно было футсвитчем между русским, французским, грузинским и суахили переключаться.

Я бы сделал, но у меня MIDI-устройства нет для тестов.

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

То, что мультфильм внесли на сайт анимедб еще не значит, что это аниме.

А то, что его внесли на википедию, тем более?

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