LINUX.ORG.RU

Вышел Таппер 0.7.1

 , ,


2

2

Вчера, 15 декабря 2022 года, тихо и незаметно вышел в свет Таппер 0.7.1, открытый переключатель раскладок клавиатуры.

О программе

Таппер — переключатель раскладок клавиатуры для Иксов и Вайланда. Таппер работает в фоновом режиме, и при ударе по назначенной клавише Таппер включает соответствующую ей раскладку клавиатуры. Особенность Таппера заключается в использовании клавиш-модификаторов для включения раскладок без потери функций модификаторов.

Удар — нажатие и быстрое отпускание клавиши, при этом:

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

Что нового

По сравнению с версией 0.6.0 (новость о выходе которой была опубликована на ЛОРе 2 июня):

  • Заметные улучшения:
    • В версии 0.7.0 появился раскладчик для KDE. Другими словами, Таппер умеет переключать раскладки в KDE. Даже в Вайланде.
    • В версии 0.7.1 урезаны привилегии Таппера. Раньше исполняемый файл Таппера принадлежал руту и устанавливался с битом set-user-id, т. е. обладал всеми рутовыми привилегиями. Однако, для работы Таппера достаточно всего двух привилегий (англ. capabilities): cap_setuid и cap_setgid, что и было реализовано.
  • Приятные мелочи:
    • В версии 0.6.2 появилась опция --dconf-editor для запуска программы dconf-editor для редактирования настроек Таппера. Конечно, dconf-editor можно запустить и руками, но придётся искать настройки Таппера в развесистом дереве, в то время как tapper --dconf сразу открывает нужную страницу.
    • В той же версии появилась опция --autostart, которая добавляет символическую ссылку на Таппер в каталог ~/.config/autostart, чтобы Таппер запускался автоматически при старте графической сессии.
    • В той же версии появилась опция --no-autostart, которая удаляет символическую ссылку на Таппер из каталога ~/.config/autostart, чтобы Таппер не запускался автоматически при старте графической сессии.

Рабочие столы

Таппер работает в таких конфигурациях:

Рабочий стол    Иксы    Вайланд  
Гном
KDE
i3
Классический Гном
LXDE
LXQt
Мате
Убунту
Xfce
Циннамон

 

Пробелы в столбце «Вайланд» объясняются тем, что автор Таппера не нашёл лёгких для использования дистрибутивов, в которых соответствующие столы запускаются поверх Вайланда «из коробки».

>>> Сайт Таппера

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 15)

Ответ на: комментарий от isdv

Похожая настройка переключения раскладок есть в gnome-tweaks, но эти настройки работают только для Xorg и, у меня, левыйCtrl/правыйCtrl не работает.

Можно подробнее? Похожая — это какая? Как её найти?

В Fedora 36 расширение gnome-shell-extension-agism установилось, но не запустилось и его пришлось включить в gnome-extensions-app.

?? Автоматом при установке оно и не включается. Хотя бы потому, что надо Гном перезапускать (а на Вайланде вообще надо делать выход и вход). Об этом в доках написано несколько раз, и в доке Таппера, и в доке Агизма.

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

Важное замечание: Начиная с версии 0.6.0, Таппер требует Агизм (расширение Гномьего шелла) для работы на рабочих столах Гном, Классический Гном и Убунту. Если вы устанавливаете Таппер из копровского репозитория vandebugger/tapper по нижеприведённой инструкции, Агизм будет установлен автоматически, в противном случае вы должны установить его самостоятельно. Независимо от способа установки Агизма он должен быть включен чтобы Таппер мог работать на рабочих столах Гном, Классический Гном и Убунту.

Последнее предложение. Ну, разве что для большего усиления надо в императивном виде написать: «Вы должны включить Агизм!»

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

По поводу претензий к xneur

Никогда не пользовался этими надмозгами - xneur и Punto - для угадывания раскладки, но вот для включения раскладки (причём именно L/R-Ctrl :)) - нормально работали. Точнее, xneur до какого-то момента нормально работал, а Punto тогда так ещё не умел, мы долго с его разрабом срались («Пунто - это надмозг, а не переключалка, не нравится - не пользуйтесь!» (c) Разраб_Пунто_на_тот_момент_не_помню_как_звали), в Punto эта настройка через год-два только появилась.

В 2014 году, когда я выпустил первую версию Таппера, xswitcher ещё не существовало.

Ага, теперь понятно, откуда ноги растут.

разве что если это аналог xneur, то он мне даром не нужен.

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

А с проектом удачи! Даёшь ВКЛючалок раскладок больше и разных! :)

Только, блин, у меня кнопки Ctrl на углах со стороны пользователя стираются от постоянного жмакания по ним ногтями больших пальцев :(

DOOMer
()
Последнее исправление: DOOMer (всего исправлений: 1)
Ответ на: комментарий от isdv

https://imgur.com/DzSSoFY

Спасибо. Но эта штука мало того, что раскладки не переключает, так ещё и все комбинации с контролом ломает. А то уж я испугался что зря Таппер пилил.

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

Циклически очень геморройно, когда раскладок больше двух.

На практике делаю в конкретном DE бинд setxkbmap с параметрами на Ctrl+1,2,3,….

Но десять лет назад пользовался подобной описанной тут программой, которая давала биндить на правый/левый Ctrl, Alt и Shift по раскладке.

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

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

Слушай, но вот ты же ленивый? Ты сам не стал разбираться чем Таппер лучше xnuer, а мне вопрос задал. Теперь моя очередь вопросы задавать. Мне лениво в чужом коде ковыряться. Давай, расскажи, что в этом xswitcher интересного?

Я смотрел некоторых «конкурентов», но всё десткий сад и наколенные поделки. Ни документации, ни справки, и код грязный.

Взять хоть этот же xswitcher. В Гноме переключение раскладки делается запуском внешнего процесса (!) — /usr/local/bin/switch.gnome. А это скрипт на баше, который запускает ещё один внешний бинарник, причём несколько раз (!), в зависимости от аргумента. Итого, для переключения раскладки — старт двух или трёх (!!) процессов. Ну это же из пушки по воробьям. А потом народ жалуется, что Гном тормоз, жрёт много памяти, что переключение тормозит. А как оно может не тормозить, если на переключение раскладки по два-три процесса запускать? Ну, если по-чесноку, хоть и неохота чужую работу обсирать, но это же говно(код).

xswitcher работает только в иксах. Я вот собираюсь на Вяленого преползать (мне осталось только одну проблему решить). xswitcher на Вяленом не работает.

О безопасности: Я догадываюсь, что он пишет в /dev/uinput, но после открытия файла рутовую идентичность можно сбрасывать и дальше работать без неё, но парень херачит под рутом всё время. Для чтения из /dev/input рут не нужен, достаточно группы input. А вообще, xswitcher работает только в иксах. Так на кой чёрт вообще ему рутовые права? В иксах всё можно и без рутовых прав сделать.

Построение из исходников. Стандартная процедура configure && make && make install — это же удобно. Хочешь в /usr/local поставить — пожалуйста, хочешь в /usr — проще пареной репы, хочешь в ~/.local — да не вопрос. Да, я знаю что не все GNU Autotools любят, но можно же не использовать GNU Autotools, но сохранить подход. Тут же какие-то команды надо исполнять руками, копировать туда-сюда какие-то файлы. Тривиальный Makefile можно же было написать? Автор даже нормально отформатировать инструкцию не сумел, часть инструкции превратилась в кашу из-за переносов строк.

Как-то это всё несерьёзно.

Давай, расскажи, что я ещё в xswitcher не увидел?

debugger ★★★★★
() автор топика
Последнее исправление: debugger (всего исправлений: 3)
Ответ на: комментарий от I-Love-Microsoft

Может и вовсе слово mate, mating )))

Ещё один.

https://mate-desktop.org/

Мотать вниз, читать раздел «Where does the name come from?»

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

Есть ещё kmonad (если вдруг кому то нужна кросплатформенность). Вообще интересная идея, спасибо автору - таппер, наверное, ставить не буду, но саму концепцию попробую

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

psh ★★
()
Ответ на: комментарий от papin-aziat

Как же часто бывает в этой жизни, что понятные просто артикулируемые вещи на практике превращаются в адские проблемы

Просто людям предлагают нервничать Ctrl-ом всегда, но с гарантией результата, а люди согласны на боль Backspace, но только когда надо.

Лучше ужасный конец Отмены, чем бесконечный ужас Контроля:).

  • Володя, надень каску.
    • Михалыч, я 10 лет тут бегаю, 99.9% ничего не случится.
  • Хочешь оказаться в оставшемся 0.1%?
    • Нет.
  • Надевай каску.

Таппер нашему человеку предстаёт шаблоном начальников, перестраховщиков и западников (культура «чек-листов»). Предложением надеть зонтик/маску/резину «на всякий случай; так положено; страховку не выплатят» - даже если не понадобится. Такого наш человек не принимает.

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

Сам я уже пару лет как не печатаю вслепую (потерял палец), но для «десятипальцевых» Таппер будет полезен тем, что позволяет соблюдать принятое позиционирование рук. Мне, понятное дело, позиционирование уже не важно, мне и так удобно:

# Set keyboard layouts
setxkbmap us,ru

# Left Ctrl to first layout; Right Ctrl to last layout
setxkbmap -option grp:lctrl_rctrl_switch

# Make Caps Lock an additional Ctrl
setxkbmap -option caps:ctrl_modifier

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

Slackballs-80s
()
Ответ на: комментарий от AVL2

Шизофазия. Никакой связи между запоминанием текущей раскладки и набором цифрами вместо букв не вижу.

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

Супер-пробел, это вообще эпичный макосный высер во вселенную.

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

sbu_shpigun
()
Последнее исправление: sbu_shpigun (всего исправлений: 1)
Ответ на: комментарий от Slackballs-80s

Просто людям предлагают нервничать Ctrl-ом всегда, но с гарантией результата, а люди согласны на боль Backspace, но только когда надо.

С таппером можно продолжать в таком же духе. Если нет желания научиться сразу вводить нужные символы, то не о чем и говорить. Эта программа ДЛЯ человека, а не ВМЕСТО.

papin-aziat ★★★★★
()
Ответ на: комментарий от Slackballs-80s

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

В третьем абзаце новости объясняется что такое «удар». Ты, при наборе своего текста произвёл около двух тысяч ударов по клавишам — при печати всех строчных букв. Это как минимум.

«Удар» — общепринятый термин:

При отработке первых ударов по клавишам не забывайте о положении локтей.

— В. Андрианов. Десятипальцевый метод печати на компьютере, СПб.: Питер, 2004.

Старайтесь произвести удар после того, как произнесли вслух название печатаемого знака.

— Н. Березина. Самоучитель быстрого и правильного набора на компьютере. М.: Олма-пресс, 2006.

Обычный обученный пользователь достигает при прохождении «10-минутного теста» скорости от 200 до 400 ударов в минуту.

https://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%B5%D0%BF%D0%BE%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4_%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%B8

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

Полгода назад шутников типа тебя было много, в этот раз ты — первый, и пока единственный. Такое впечатление, что ты не палец потерял, а половину мозга. (Шутка, конечно. Такая же тупая, как и твоя про удары.)

debugger ★★★★★
() автор топика
Последнее исправление: debugger (всего исправлений: 2)
Ответ на: комментарий от psh

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

Переключать языки автору легко и просто. Автор просто не любит русский язык ломать.

Все же говорят: поставил Гном, работаю в Гноме, доволен (или не доволен) Гномом. В письменной речи приходится либо (1) так конструировать предложения, чтобы термин был в именительном падеже, (2) либо забить на падежи и просто писать английский термин (пусть читатели голову ломают как это прочитать), (3) либо плодить ублюдков: «в xswitcher’е» «пользуюсь xswitcher’ом». Так что мой подход писать русскими буквами далеко не самый плохой, если уж не лучший.

debugger ★★★★★
() автор топика
Последнее исправление: debugger (всего исправлений: 1)
Ответ на: комментарий от i3draven

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

AVL2 ★★★★★
()
Ответ на: комментарий от Slackballs-80s

Таппер нашему человеку предстаёт шаблоном начальников, перестраховщиков и западников (культура «чек-листов»).

Сравнение Таппера с чек-листом некорректное.

Мне Таппер скорее напоминает поворотники. Нормальные водители включает поворотники не думая об этом. Спроси у меня — поворотник слева от руля или справа — и я не найду что ответить, т. к. я не помню! Но в процессе езды руки сами сделают то, что надо. Да, этот навык надо тренировать в автошколе, первые десять/сто/тысячу поворотов надо контролировать себя, но потом руки начинают работать сами.

Джеф Раскин в книжке The Humane Interface подробно разобрал этот вопрос, и выделил условия, когда автоматизм образуется, а когда нет. По Раскину, включение раскладок поддаётся автоматизму, а переключение раскладок — нет. (Раскин не писал конкретно про раскладки, но у него есть глава про режимы и переключатели и рассматривается КапсЛок как пример переключателя.)

Конечно, всегда бывают исключения. Вон, например, eternal_sorrow утверждает, что он особенный, и у него автоматизм не вырабатывается. Но он один такой особенный, большинство всё-таки нормальные.

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

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

Ну неправда же это. Вернее, не неправда, а просто какая-то бессмыслица: зачем менять шило на мыло «чтобы ничего не изменилось»? Чтобы ничего не изменилось, ничего делать не надо.

Таппер не мешает штатному преключателю, а штатный не мешает Тапперу. Они могут работать одновременно. Ставишь Таппер, и можешь либо переключать раскладки штатным, как раньше, либо включать раскладки Таппером. Если по старой привычке нажмёшь Win+Space (или что там у тебя было), то язык переключится, как и раньше — вполне себе эволюционный подход.

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

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

У меня до капса руки так и не дошли. Иногда использую и бывает путаница возникает. Типичная переключалка, надо что-то переделать.

Ты как решил?

papin-aziat ★★★★★
()
Ответ на: комментарий от debugger

Ну неправда же это. Вернее, не неправда, а просто какая-то бессмыслица:

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

зачем менять шило на мыло «чтобы ничего не изменилось»? Чтобы ничего не изменилось, ничего делать не надо.

  1. Ничего не изменилось в части пользовательских привычек. Что в этом непонятного?

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

Непонятно что то, я переключаю раскладки через капслок. Стандартный переключатель дико тормозной потому, я успеваю нередко набрать еще несколько букв в неправильной раскладке пока он допрет, что надо ее поменять. Очень раздражает. Таппер работает быстрее? Если я стандартный вырежу из системы и заменю на таппер он сможет обрабатывать капслок нажатие как сигнал к переключению раскладки и обратно? Или надо именно нажать и отпустить что бы переключить?

Я написал абстрактно. Ты не понял. Человек тебе написал конкретный вопрос , ты опять не понимаешь. Что с тобой не так?

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

А ты вместо того, чтобы четко и по пунктам ответить:

  1. НЕТ, у тебя не будет ни одного ПЕРЕКЛЮЧАТЕЛЯ. ни капслок ни какой другой. В этой программе НЕТ переключателей, а есть только включатели.

  2. клавиша КАПСЛОК в этом переключателе вообще никак не задействуется, забудь про нее! (могу ошибаться).

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

Лучше подумай, зачем ты вообще называешь свой Таппер ПЕРЕКЛЮЧАТЕЛЕМ раскладок, если он является ВКЛЮЧАТЕЛЕМ раскладок? Сколько ненужных вопросов и недомолвок было бы закрыто, если бы ты пользовался русским языком по назначению, а не для перевода названий дистров!

Твое прочтение эволюционности перехода изначально безумно.

  • Может ли моя секретарша перейти эволюционно перейти с мсофиса на емакс?

  • Легко, ведь она может их запустить параллельно!

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

У! Я не настолько умный, иначе был бы программистом :(

Однако понял две вещи:
1. Ты таки посмотрел на xswitcher (и, видимо, на его возможности, как минимум в конфиг).
2. Мне нужно поставить «на зыринг» Таппер и посмотреть его возможности :)

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

Непонятно, ты кому отвечаешь? Я вот этого не писал:

Непонятно что то, я переключаю раскладки через капслок.

Откуда эта цитата? Почему ты отвечаешь мне?

бессмыслица, это запускать два переключателя в параллель. Я кстати это делал, это окончательно хоронит системный переключатель…

Я проделал десятки тестов на разных дистрах с разными столами, я ни разу не удалял штатный переключатель. Всё везде (за исключением Убунту+Свай+Вайланд) работает.

Может ли моя секретарша перейти эволюционно перейти с мсофиса на емакс?

Безумно твоё сравнение офиса с переключателями раскладок. Курящий может прикурить сигарету зажигалкой, а может спичками. Зажигалка спичкам не мешает, а спички не мешают зажигалке. С переключалками раскладок то же самое.

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

зачем ты вообще называешь свой Таппер ПЕРЕКЛЮЧАТЕЛЕМ раскладок, если он является ВКЛЮЧАТЕЛЕМ раскладок? Сколько ненужных вопросов и недомолвок было бы закрыто

Нет такого общеупотребительного термина «включатель раскладок», автор программы использует его в контексте описания своей программы, т.к. контекст этот самый, не поверите, помогает понять, что имеется в виду, а вот написать прямо в заголовке новости включатель раскладок точно создаст и вопросы и недомолвки :)

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

согласись, «Хфце» по-русски никто не говорит. Про Мате тоже, кстати, можно поспорить, Мате это или Мейт. :P

не соглашусь, совсем

Noob_Linux ★★★★
()

Вроде собралось и поставилось. Убунту 22.04 со штатным гномом. При запуске ругается матерно :

$ tapper

Tapper 0.7.2.

tapper: W: Exception caught: No suitable layouter.

tapper: E: No suitable layouter.

agism поставил, машину ребутнул.

$ gnome-extensions show agism@agism.sourceforge.io

State: ENABLED

Что ему может не хватать для счастья ?

zhelud
()

Очень нравится ваша манера писать все названия русскими буквами. Спасибо большое!

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

Ну так и программа не общеупотребительная. Общеупотребителен как раз переключатель. А тут обычное нажатие клавиши мы отбрасываем и вводим понятие «удар», а включатель это уже ту мач?

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

Это хорошо, что ты хоть что-то прислал, но всё равно мало. Давай по списку: BUGS И на почту.

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

О безопасности: Я догадываюсь, что он пишет в /dev/uinput, но после открытия файла рутовую идентичность можно сбрасывать и дальше работать без неё, но парень херачит под рутом всё время. Для чтения из /dev/input рут не нужен, достаточно группы input. А вообще, xswitcher работает только в иксах. Так на кой чёрт вообще ему рутовые права? В иксах всё можно и без рутовых прав сделать.

Хм, а интересно, как fcitx5 умудряется вообще без видимого повышения прав работать?

alex@flanky $ pacman -Ql fcitx5 | grep '/usr/bin/.' | awk '{print $2}' | xargs ls -l                                                                                              
-rwxr-xr-x 1 root root 358536 ноя 24 21:54 /usr/bin/fcitx5
-rwxr-xr-x 1 root root   4028 ноя 24 21:54 /usr/bin/fcitx5-configtool
-rwxr-xr-x 1 root root  55968 ноя 24 21:54 /usr/bin/fcitx5-diagnose
-rwxr-xr-x 1 root root  18456 ноя 24 21:54 /usr/bin/fcitx5-remote
alex@flanky $  getpcaps $(pidof fcitx5)                                                                                                                                           
1360: =
alex@flanky $ _

Вроде, в вейлендовской KDE-шной сессии у него всё тоже самое, завтра на работе нужно будет попробовать.

P.S. Кстати, включение раскладок там работает именно по отпусканию. То есть, и хоткеи Ctrl-Shift-чего-нибудь продолжают работать, и переключение по Ctrl-Shift вполне живое.

AlexM ★★★★★
()
Последнее исправление: AlexM (всего исправлений: 1)
Ответ на: комментарий от AlexM

Хм, а интересно, как fcitx5 умудряется вообще без видимого повышения прав работать?

Это же инпут метод (IM), инфраструктура для них давно готова на уровне тулкитов, и в GTK, и в KDE. Там не надо никакого повышения прав.

debugger ★★★★★
() автор топика
Ответ на: комментарий от DOOMer
  1. Ты таки посмотрел на xswitcher (и, видимо, на его возможности, как минимум в конфиг).

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

  1. Мне нужно поставить «на зыринг» Таппер и посмотреть его возможности :)

Дело хозяйское. Возможности Таппера очень простые и уже триста раз обсасывались: включение одной раскладки по левому контролу, другой — по правому без потери основной функции контролов. Это то, для чего он создавался.

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

Если обобщить, то Таппер придаёт смысл удару по клавише-модификатору. Это действие без Таппера смысла не имело: удар по шифту, например, не приводит к вводу каких-либо символов.

debugger ★★★★★
() автор топика

Удар — нажатие и быстрое отпускание клавиши, при этом:
- никакие другие клавиши не должны быть нажаты;
- период между нажатием и отпусканием должен быть короче задержки перед включением автоповтора (обычно автоповтор включается, если клавиша удерживается более половины секунды, но это зависит от настроек системы).

Эх ты, дело LoLo Switcher живет и развивается.

А то меня достали: зачем нужна реакция на отпускание клавиши?

Автору Таппера респект.

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

Хм, нашел man-страницу

https://kbd-tapper.sourceforge.io/tapper.html

Но она на англицком, там какие-то сложные концепции расписываются.

На русском мануала нет? А то из всего что необходимо понять для пользования программой, имеется только фраза «Терминология (слушатель, эмиттер, раскладчик), параметры командной строки Таппера и примеры использования описаны в справочной странице».

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

Эх ты, дело LoLo Switcher живет и развивается.

Гм, если уж искать «предшественника» Таппера, чьё дело живёт и развивается, то это будет RusLat95 Сергея Быкова. RusLat95 не акцентировал внимание на этом, но позволял включать раскладки контролами. (Да, RusLat95 был виндовой программой без исходников, у них так принято.)

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

Но она на англицком, там какие-то сложные концепции расписываются.

Поддерживать в актуальном состоянии две версии мана — не самое увлекательное занятие. Тем более, что ман мало кто читает.

На русском мануала нет?

Пока (?) нет. Гуглоперевод даёт вполне приличный результат. Единственный недостаток гуглоперевода — перевод терминов. Layouter переводится то как «верстальщик», то как «компоновщик», то оставляется вообще без перевода.

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

Расскажи для каких трюков ты его используешь

Основное - это то самое включение раскладки по Ctrl'ам. Плюс, при ошибке в выборе раскладки (штош, бывает порой всё равно), - исправление набранного в неправильной раскладке. В общем, и всё.
Однако считаю потенциально полезной как саму возможность настройки прибитых гвоздями операций (определение комбинации модификаторов, задержки нажатия), так и возможность выполнения внешних команд по хоткеям (больше велосипедов хороших и разных! :)).
В xswitcher можно включать больше двух раскладок, а в свете последних событий эта функция, кмк, будет особенно востребованной.

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

В xswitcher можно включать больше двух раскладок…

Вот эту фразу я не понял. Это камень в мой огород, что ли? В Таппере количество раскладок ограничивается только количеством клавиш, которые ты можешь выделить на включение раскладок.

debugger ★★★★★
() автор топика
30 января 2023 г.

Спасибо за утилиту, начал пользоваться, удобно. Но заметил, что при запуске rofimoji (окружение: X11, dwm) tapper падает с ошибкой:

tapper: W: Exception caught: Out of range [9…255].
tapper: W: Exception caught: Out of range [9…255].
tapper: E: Out of range [9…255].
emorozov
()
Ответ на: комментарий от debugger
$ echo $XDG_SESSION_TYPE
x11
$ echo $XDG_SESSION_DESKTOP
[пустая строка]
$ gnome-extensions show agism@agism.sourceforge.io
[у меня не стоит gnome]
$ gsettings list-recursively io.sourceforge.kbd-tapper
io.sourceforge.kbd-tapper assignments {42: '@1', 54: '@2'}
io.sourceforge.kbd-tapper bell 'disabled'
io.sourceforge.kbd-tapper emitter 'auto'
io.sourceforge.kbd-tapper layouter 'xkb'
io.sourceforge.kbd-tapper listener 'xrecord'

Версия tapper: Tapper 0.7.2.

Установлен из AUR.

Под gdb:

gdb) run
Starting program: /usr/bin/tapper

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7fd76e9356c0 (LWP 53529)]
[New Thread 0x7fd76e1346c0 (LWP 53530)]
Tapper 0.7.2.
[New Thread 0x7fd76d9336c0 (LWP 53531)]
Starting in XRecord/Xkb/Dummy mode.
Bell is disabled.
Tap on 42:LFSH activates layout 1:English (US).
Tap on 54:RTSH activates layout 2:Russian.
[New Thread 0x7fd76d1326c0 (LWP 53534)]


tapper: W: Exception caught: Out of range [9…255].
😊
Thread 1 "tapper" received signal SIGTERM, Terminated.
0x00007fd76ece6825 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7ffe93f85500, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
48	  r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, clock_id, flags, req,
(gdb) 👏
Undefined command: "".  Try "help".
(gdb) 😊
Undefined command: "".  Try "help".
(gdb) bt
#0  0x00007fd76ece6825 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7ffe93f85500, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
#1  0x00007fd76eceb337 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2  0x0000562072b32d1b in  ()
#3  0x0000562072b2b647 in  ()
#4  0x0000562072b2b978 in  ()
#5  0x0000562072b240ab in  ()
#6  0x00007fd76ec3c290 in __libc_start_call_main (main=main@entry=0x562072b24060, argc=argc@entry=1, argv=argv@entry=0x7ffe93f85ac8) at ../sysdeps/nptl/libc_start_call_main.h:58
#7  0x00007fd76ec3c34a in __libc_start_main_impl (main=0x562072b24060, argc=1, argv=0x7ffe93f85ac8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe93f85ab8) at ../csu/libc-start.c:381
emorozov
()
Последнее исправление: emorozov (всего исправлений: 1)
Ответ на: комментарий от emorozov

Ты по ссылке ходил? До конца прочитал? Последнее предложение:

Collect all the requested information and send the bug report to ..***@***.***.

Это раз. Пожалуйста, аккуратно по списку. Это два.

Я буду рад помочь, но, чёрт, уважай моё время и мои силы. Иструкция (BUGS.md) не от балды написана. Прочитай её и далее по пунктам.

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

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

emorozov
()
12 марта 2023 г.
Ответ на: комментарий от debugger

В поисках решения своего вопроса не раз заходил на эту ветку.
Темы схожие. С вязи с чем прошу посмотреть мой вопрос может будут какие идеи.
Суть вопроса:
Неожиданно для себя я понял, что индикация раскладок клавиатуры на любых панелях по углам экрана - не рабочая и не эффективная тема.
По факту, кто смотрит на панель с индикацией текущей раскладки клавиатуры перед тем как набирать текст?
Вариант с нажатием правого ctrl для RU, а левого ctrl для EN - идея хорошая, но тоже далека от рефлектории человека.
Когда человек решил что-то написать он просто начинает писать.
И никто кроме него самого не знает на каком языке и какмими симловами он это будет делать.
Т.е. мысль о необходимости нажатия каких-то клавишь для смены раскладки клавиатуры приходит позже.
Результат тот-же - Backspacing.
И если посчитать сколько раз я Backspacing-ую, то становится печально.
При этом на панели в верхнем правом углу у меня есть индикация текущей раскладки.
В связи с чем, вижу единственный правильный варинт (для себя) это индикация раскладки клавиатуры с помощью курсора.
Т.е. сделать курсор в виде прямоугольника (можно мигающего), в которм разместить друг над другом (рядом друг с другом) 2-е буквы текущей раскладки.
И использовать данный курсор по умолчанию во всех приложениях.

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

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

Если верить неглупому дядьке Джефу Раскину (см. Jef Raskin, The Humane Interface, 2000), то индикатор раскладки находится вне локуса внимания человека. При этом совершенно не важно, где находится индикатор.

В своей книжке Раскин приводит несколько примеров:

  1. Авиакатастрофа 1972 года — оба пилота увлеклись заменой лампочки в приборке, случайно выключили автопилот и самолёт начал снижаться. Раздался звуковой сигнал, загорелась жёлтая лампочка, но пилоты продолжали возиться с перегоревшей лампочкой и не обращали внимания на эти сигналы. Когда случайно заметили показания альтиметра, было уже поздно — через 8 секунд самолёт разбился.

  2. Стандартная ситуация, когда человек смотрит, но не видит. Ты ищешь по всей комнате предмет, который лежит у тебя перед носом, но не можешь его найти.

Когда человек решил что-то написать он просто начинает писать. <…> мысль о необходимости нажатия каких-то клавишь для смены раскладки клавиатуры приходит позже.

Когда водитель транспортного средства решил повернуть, он (1) включает указатели поворота, (2) крутит руль. Опытный водитель не думает о том, что надо включить поворотник — он просто его включает. Да, нужно некоторое количество тренировок, чтобы приобрести этот навык. Главное: у водителя нет мыслей что надо включить поворотник — это делается водителем «на автомате».

По своему личному опыту могу сказать, что когда я решаю написать что-то, я включаю нужную раскладку и начинаю печатать. Я не думаю о том, что мне нужно включать раскладку. Я её просто включаю. Точно так же, как я включаю поворотники перед поворотом.

И, как видно из общения на ЛОРе, я не один — есть люди, которые подтверждают, что включатели раскладок гораздо лучше переключателей.

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

В связи с чем, вижу единственный правильный варинт (для себя)…

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

  • План «А»: Ты начинаешь пользоваться Таппером и через некоторое время становишься опытным пользователем, включающим раскладки не думая об этом, вследствие чего твоя идея идеального индикатора становится неактуальной.
  • План «Б»: Ты реализовываешь свою идею сам, ибо найти желающего реализовать твою идею вряд ли получится.

Начинать советую с плана «А» т. к. это сильно проще. В случае неудачи (т. е. если у тебя не получится стать опытным пользователем Таппера (на ЛОРе есть один, который утверждает, что он не смог — я даже почти верю, ведь есть же водители BMW (шутка), которые не смогли освоить включение поворотников)), ты почти ничего не теряешь, и у тебя всегда есть возможность перейти к плану «Б».

В любом случае — удачи.

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