LINUX.ORG.RU

[пиарюсь] kbdd


2

2

Тихо и незаметно вышла очередная версия малокомунужной^W программы kbdd. Которая является WM/DE-независимой переключалкой (не индикатором) клавиатуры с функцией запоминания раскладки для каждого окна и опциональным dbus-интрефейсом. Данная програмка может успешно применяться как в легких WM: xmonad, awesome так и в жирных DE: gnome, kde, xfce.

Написана на C, под лицензией GPL-v3.

Репозиторий: https://github.com/qnikst/kbdd , там же есть маленькая wiki с вариантами использования.

Счастливые пользователи gentoo могут установить kbdd из оверлея rion, а пользователи archlinux из AUR.

Так же для индикации можно использовать WM/DE зависимые плагины, виджеты или подобные штуки, например, описание виджета для awesome можно найти в wiki

http://awesome.naquadah.org/wiki/Keyboard_layouts_with_kbdd

★★★★★

Интересно, а для отдельного окна эта переключалка может держать раскладку всегда en?

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

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

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

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

зато тут аудитория более подходящая, и больше шансов, что найдутся те, кому пригодится ;)

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

>> Которая является WM/DE-независимой переключалкой

What about setxkbmap?

с функцией запоминания раскладки

xxkb?

и опциональным dbus-интрефейсом

Это отличие, но полезность для меня весьма неочевидна :)

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

Для емакса чтоли? У меня тоже такая мысль появилась.

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

>4776 1908

неплохо, спасибо, просто аналогичные апплетики из DE обладают аппетитами раз в 10 большими

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

>зато тут аудитория более подходящая, и больше шансов, что найдутся те, кому пригодится ;)

Дык, аудитория здесь однозначно лучше! Особенно радуют Анонимусы :)

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

У xxkb бывают проблемы с тайловыми менеджерами

Вроде, зависит от настроек. Писали о проблемах с wmii, но у меня таковых не было.

и там дурацкий ненужный индикатор

┌┤~├──────────────────────────────────────────────────────────┤gotf@persephone├─
└─> cat .xxkbrc 
XXkb.mainwindow.enable: no
XXkb.button.enable: no
GotF ★★★★★
()
Ответ на: комментарий от dmsh

>>Это совсем из другой оперы. К тому же ским, кажется, мертв.

вполне жив. т.е. kbdd это _только_ переключалка без дополнительных методов ввода типа транслита?

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

Да. Хитрые инпут методы нужны далеко не всем. А кому нужны для тех есть scim и ibus.

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

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

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

>> Которая является WM/DE-независимой переключалкой

What about setxkbmap?

ну не совсем-то же. как ты setxkbmap-ом в активном окне раскладку менять будешь?

с функцией запоминания раскладки

xxkb?

в тайловых WM работает чуть хуже, чем никак. Пытаться реанимировать безпосполезно (ну лично мне) + делает, на мой взгляд, ненужные вещи типа засовываться в трей, или в заголовок окна.

и опциональным dbus-интрефейсом

Это отличие, но полезность для меня весьма неочевидна :)

ну его можно и отключить, если не нужно. + Если кому будет нужно могу добавить общение с прогой через FIFO.

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

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

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

в тайловых WM работает чуть хуже, чем никак. Пытаться реанимировать безпосполезно (ну лично мне) + делает, на мой взгляд, ненужные вещи типа засовываться в трей, или в заголовок окна.

Я выше привёл конфиг из двух строк. У меня с ним работало без проблем во wmii и ещё где-то. Никаких внешних проявлений при таких настройках тоже нет :)

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

xxkb с Awesome я так и не заставил работать, хотя с ion3 работало нормально.
kbdd же завелся из коробки, без всяких конфигов.

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

> Вроде, зависит от настроек. Писали о проблемах с wmii, но у меня таковых не было.

ну у некоторых были непобедимые проблемы при использовании awesome. В общем-то это было достаточной причиной, чтобы начать пилить своё, т.к. остальные решения не устравивали по всем аспектам.

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

> Я выше привёл конфиг из двух строк. У меня с ним работало без проблем во wmii и ещё где-то.

УМВР это очень не правильный подход.

Если тебе подходит xxkb, то нужно продолжнать его использовать :) Я не настаиваю на том, что нужно переходить на kbdd. Xxkb - это действительно работающая программа. А чем kbdd лучше это тем, что у тех пользователей у кого были проблемы их нет. Хотя сроки жизни програм сравнивать пока тяжело, но всё же.

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

как ты setxkbmap-ом в активном окне раскладку менять будешь?

Там нет понятия «расклака в активном окне», группа переключается глобально. Но это, естественно, не решение проблемы.

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

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

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

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

dmsh
()

Ну, раз пошла такая пьянка...

Мне, например, запоминание раскладки в каждом окне не нужно. А нужно удобное переключение между двумя раскладками. Для меня удобное — это переключение на разные раскладки /разными/ клавишами. Не одна клавиша-триггер, а /включатель/ русской раскладки и /включатель/ английской. При таком подходе индикаторы раскладки или запоминание раскладки в окне становятся ненужными: очень быстро вырабатывается навык перед набором русского текста /включать/ русскую раскладку, перед набором английского — английскую. Ошибки набора не на той раскладке исключены (проверено на личном опыте).

Однако, важно, чтобы включатели были удобными. Например, Ctrl+Alt+F1/Ctrl+Alt+F2 неудобны — слишком много движений руками. Было бы отлично, если бы каждый включатель были не комбинацией клавиш, а одной клавишей. Но, все клавиши уже чем-то заняты… ИМХО, идеальный вариант: включатель русской раскладки — короткое нажатие на правый Ctrl (или правый Shift), включатель английской (латинской) — короткое нажатие на левый Ctrl (или левый Shift). Именно короткое, одиночное нажатие. Ctrl в комбинации с другими клавишами не должен изменять раскладку. Длительное нажатие на Ctrl тоже не должно изменять раскладку.

xkb можно легко сконфигурировать на включатели раскладок, если включатели — какие-нибудь уникальные комбинации клавиш. Однако, сконфигурировать xkb на идеальные включатели у меня не получилось. Максимум, чего я добился: повесил включение русской раскладки на Right Ctrl+Menu, английской — на Left Ctrl+Left Win. Почему так? Left Ctrl и Left Win — две самых правых клавиши в нижнем ряду, Ctrl нажимается средним пальцем левой руки, Win — указательным. Right Ctrl+Menu (не Win!) — то же самое, но для правой руки, две самых правых клавиши нижнего ряда. Не идеально, но довольно удобно. Жил с такими включателями несколько лет, но недавно случился трабл — новый OpenOffice ловит кнопку Menu даже в комбинации с правым Ctrl и выводит контекстную менюшку, сволочь…

Ладно, закругляюсь. Если ваша программа может быть сконфигурирована так, как я описал (русская раскладка по одиночному нажатию на Right Ctrl, английская — по одничному нажатию на Left Ctrl; раскладка глобальная, а не своя собственная в кадом окне) — то я ваша навеки.

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

Тады не понял.

> Которая является WM/DE-независимой *переключалкой* (не индикатором) клавиатуры…

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

Переключалка, которая про кнопки ничего не знает и, фактически, не переключает? Что это за переключалка?

Если её главная фишка в запоминании раскладки в каждом окне и восстановлении раскладки при активации окна, ну, так бы и писали — «запоминалка» или «восстанавливалка» либо ещё как…

Короче, я расстроен. Нет в жизни счастья.

debugger ★★★★★
()
Ответ на: Тады не понял. от debugger

Все правильно. Чтобы переключать, про кнопки знать ничего не надо, переключение группы происходит средствами самого xkb.

dmsh
()
Ответ на: Ну, раз пошла такая пьянка... от debugger

> Однако, важно, чтобы включатели были удобными. Например, Ctrl+Alt+F1/Ctrl+Alt+F2 неудобны — слишком много движений руками. Было бы отлично, если бы каждый включатель были не комбинацией клавиш, а одной клавишей. Но, все клавиши уже чем-то заняты… ИМХО, идеальный вариант: включатель русской раскладки — короткое нажатие на правый Ctrl (или правый Shift), включатель английской (латинской) — короткое нажатие на левый Ctrl (или левый Shift). Именно короткое, одиночное нажатие. Ctrl в комбинации с другими клавишами не должен изменять раскладку. Длительное нажатие на Ctrl тоже не должно изменять раскладку.

В kbdd есть следующий функционал:

можно послать dbus сообщение для переключения на определённую раскладку (подробности тут: https://github.com/qnikst/kbdd/wiki/Usecases )

Т.к. в ближайших версиях kbdd пока пытается следовать Unix-Way и заниматься только своей задачей. Поэтому задачу слушать клавиши можно передать сторонней программе например xbindkey - она слушает нужные клавиши и посылает соответствующее сообщение kbdd, и kbdd переключает на нужную раскладку. Если честно я не уверен, что xbindkeys сумеет поддерживать одиночное название клавиши модификатора типа Ctrl.

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

P.P.S. по поводу именно такой реализации правый левый ctrl мне кажется это странным, но это не важно

qnikst ★★★★★
() автор топика
Ответ на: Тады не понял. от debugger

> Переключалка, которая про кнопки ничего не знает и, фактически, не переключает? Что это за переключалка?

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

Если её главная фишка в запоминании раскладки в каждом окне и восстановлении раскладки при активации окна, ну, так бы и писали — «запоминалка» или «восстанавливалка» либо ещё как…

главная - да, переключение тоже есть.

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