LINUX.ORG.RU

Как добавить «европейскую» букву к раскладке?

 ,


0

1

У меня ноутбук с немецкой клавиатурой, но по роду занятий часто приходится писать на французском. На немецкой клавиатуре есть буквы é, è, à, ê, î, но отсутствует ç. Было бы просто замечательно, если бы я мог поставить ее на комбинацию двух клавиш типа AltGr + c. Как можно это сделать?

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



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

Можно модифицировать раскладку xkb, поместив созданный файл в /usr/share/X11/xkb/symbols/. Можно (и скорее всего - нужно) наследовать настройки у уже используемой раскладки. Например:

default partial alphanumeric_keys
xkb_symbols "basic" {
    include "de(basic)"
    name[Group1]="German with cedilla";
    key <AB03>  { [         c,          C,       ccedilla,       Ccedilla ] };
    include "level3(ralt_switch)"
};

то есть: обозначение клавиши, в скобках - буква без шифта, с шифтом, с правым альтом и, наконец, с правым альтом и шифтом.

include "level3(ralt_switch)"

нужно, чтобы работал AltGr.

Поместить в, скажем, /usr/share/X11/xkb/symbols/de_cedilla, настроить в DE, печатать и радоваться.

Если есть вариант поэлегантнее, чтоб потом задавать de(cedilla) - сообщите, самому интересно.

token_polyak ★★★★★
()
Последнее исправление: token_polyak (всего исправлений: 6)

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

Вопрос не в количестве букв, а в частоте их использования.

Если буква ç тебе нужна редко (скажем, несколько раз в день), то Compose — вполне себе оптимальное решение, тем более что с помощью Compose можно вводить множество других символов: ° (градус), ′ (это не апостроф, а минута), ″ (это не кавычка, а секунда), ©, ℗, ™, ☭, ∞, ≤, ≥, ú, ü, ą, …, ¤, §, № — тысячи их. Что самое главное, комбинации с Compose мнемоничны, их легко запомнить и трудно забыть.

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

выделять отдельную клавишу под Compose

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

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

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

…настроить в DE…

Настройка в современных DE (Гном и Кеды, остальные не проверял) будет выражаться в редактировании файла /usr/share/X11/xkb/rules/evdev.xml (и/или /usr/share/X11/xkb/rules/base.xml). И надо быть готовым к тому, что настройка будет слетать каждый раз при обновлении пакета xkeyboard-config.

Если ТС осилит, я бы рекомендовал опакетить свою раскладку, а в пакете использовать xmlstartlet для редактирования evdev.xml и сделать хук на обновление этого файла.

Если есть вариант поэлегантнее, чтоб потом задавать de(cedilla) - сообщите, самому интересно.

Ну, не совсем понятно, что ты имеешь ввиду.

Если отредактировать evdev.xml, то выбирать свою раскладку можно будет в гуях (например, в GNOME Settings), и она не будет отличаться от прочих. Я сделал раскладки «Russian (typewriter, modern)» и «English (typewriter, modern)», в гуях они ничем не отличаются от штатных. Русская находится там же, где и все прочие русские раскладки, английская — среди английских.

В терминале же приходится писать setxkbmap -layout ru-tm-en,ru-tm-ru, но для меня это не критично (зато не надо править файл xkb/symbols/ru).

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

А если добавить французскую раскладку, там нет этой клавиши? Если клава немецкая, то клавиша просто может быть не на своём месте. Поищи, потыкай.

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

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

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

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

Ради одной буквы учить целую новую раскладку и переключаться туда-сюда — оверкилл. Выше предложили 2 адекватных варианта. Я бы лично использовать xcompose, потому что он так и так полезен для всего остального. Если, конечно, не приходится печатать эту ç постоянно.

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

А как остальные французские буквы набраные в немецкой раскладке? Символы юникода правильные? И спеллчекеры не спотыкаются? То что буква выглядит похоже ещё ничего не значит. Включив правильную раскладку ты будешь уверен в правильности символов.

R_He_Po6oT ★★★★★
()

выделять отдельную клавишу под Compose

Зачем? У меня lv3:ralt_switch_multikey делает Compose из Shift+AltGr. Хотя и требует некоторой ловкости рук при наборе.

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

Нет никаких французских и немецких букв отдельно, есть расширенная латиница.

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

если добавить французскую раскладку

Следующий вопрос будет как добавить ß.

no-such-file ★★★★★
()
Ответ на: комментарий от R_He_Po6oT

В немецкой раскладке есть остальные французские буквы.

evioejgg45
() автор топика
Ответ на: комментарий от no-such-file

Хорошая идея, но у меня на ноутуке немецкая клавиатура. Если когда-нибудь куплю отдельную, то только с такой Eur-раскладкой.

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

Спасибо, все шикарно работает! Только я добавил изменения в базовую раскладку, тк система почему-то не видит файл de_cedilla.

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

Учти, что первое же обновление xkeyboard-config перезапишет твои изменения. Чтобы такого избежать (а также понять, почему система не видит раскладку в файле с другим названием) - смотри выше.

token_polyak ★★★★★
()
Последнее исправление: token_polyak (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.