Easy Switcher взаимодействует напрямую с ядром Linux для конвертации (точнее с устройствами ввода и вывода), и не взаимодействует с графическим окружением, иксами и т.д.
Если вы ткнули в середину предложения, конвертация не сработает, т.к. программа не знает где именно сейчас курсор, и что нужно выводить.
Алгоритм программы по сути прост: сидим на вводе, копим буфер, при нажатии клавиши конвертации стираем введеное ранее, меняем раскладку и пишем заново.
Нажатие мыши очищает буфер, т.к. в общем случае это означает, что сменилось окно ввода и старый текст надо забыть.
То же происходит при нажатии клавиш которые могут менять окно ввода или положение курсора (типа Ctrl, Alt, стрелки, PgUp/PgDown и тд)
Почему такой подход?
Опыт xneur/gxneur работавшем через иксы показывает, что с выходом обновлений, (например gnome), постоянно что-то отваливается, и автор вынужден что-то переделывать. Кроме того, ему приходилось писать отдельно под gnome, отдельно под kde.
Поэтому я решил полностью отказаться от взаимодействия с рабочим окружением.
Примуществом работы на низком уровне является отсутствие ошибок, связанных с различиями между платформами.
Easy Switcher поддерживает широкий спектр дистрибутивов использующих ядро Linux, и, вероятно, останется стабильным в будущих версиях ОС. (Ядро вряд ли будет меняться в части работы со стандартной клавиатурой)
Недостатком этого подхода является то, что мы не можем делать некоторые вещи, такие как преобразование выделений, работу с буфером обмена и корректировку текста в неправильном регистре.
Автозамены тоже не будет) Т.к. непонятно как надежно определить текущую раскладку, не обращаясь к окружению.
если у меня сразу 2 клавиши
Можно указать любую, без разницы. Работают как комбинации клавиш, так и отдельные.
Запустите с ключом -с, и настройте автоматически
два пробела
конвертируется последнее слово, а слова обычно отделяются пробелами)
Если будет 2 пробела, конвертация будет до 2го
Опять же, мы работаем на ядре, смотрим ввод и пытаемся корректно разобрать что вы понаписали.
Экзотические случаи типа двойных пробелов я не учитывал)
Shift+Break кстати будет конвертировать последнюю введенную строку целиком, двойной пробел будет корректно обработан.
с приходом вяленого
Из-под wayland шустрее работает, можно delay=2 поставить, нормально отрабатывало когда тестил. Опять же, от компа зависит скорость.
xneur, разумеется, - это только иксы
С нажатием Shift исправляет строку.
все так
что первое приконектится
Вероятно у вас еще какой-то софт стоит для обработки клавиатуры. Если клавиатура улетела на event17, то что-то насоздавало виртуальных устройств ввода. Обычно клавиатура висит на event2. О конфликте с ремапперами клавиатуры писал ранее, если после перезагрузки меняется имя устройства ввода, то работать толком не будет, т.к. придется конфигурировать каждый раз перед запуском.