Мне врал… пробел

Мне врал… пробел


Недавно, я начал экспериментировать с раскладкой клавиатуры, это можно было понять по предыдущем постам. Сначала я пробовал поменять Shift и Alt местами, написав по аналогии xkb_option, но у меня это не вышло, всё работало криво. К тому же, зажимать Alt большим пальцем неудобно. Я решил думать, что можно с этим делать и чуть позже я просто снял пробел с клавиатуры. И всё бы ничего, но я обнаружил аж 4 ячейки с резинками, из которых пробел нажимал лишь одну. Ради интереса, я решил нажать каждую по отдельности, чтобы узнать, какие коды выдаёт каждая резинка, вот что у меня получилось:

  1. 131 (Hangul_Hanja)
  2. 65 (Space)
  3. 65 (Space)
  4. 130 (Hangul)

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

[Ctrl] [Super] [Alt] [Menu] X [Super] [Ctrl] [Alt] X X X

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

Раскладка

Раньше

Раскладка меняется проще, чем физические части клавиатуры, поэтому она не могла ни мутировать, поэтому ещё до изменения клавиатуры я сделал следующее:

Поместил Ё ближе. (про что я писал статью) Поменял CapsLock и ESC местами, так как вторым я пользуюсь чаще, чем первым. Сделал я это через обычный встроенный xkb_option, для которого есть обёртка в настройках почти для каждого DE. Затем было самое крупное изменение, а именно: я сделал Dvorak основной раскладкой вместо QWERTY. До этого Dvorak я использовал только когда тренировался печатать в слепую. Сразу после этого я поменял обычный Dvorak на Dvorak для программистов.

Сейчас

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

На этот раз я решил использовать Xmodmap, так как он очень удобный, но имеет один большой недостаток: он работает только в X11 и не работает в Wayland.

Сначала я решил сделать кнопку Ханчи как левый Shift, а кнопку Хангыли как Backspace. Затем я решил не оставлять дублирующие клавиши и сделал старый Backspace как F13, а старый левый Shift как F14 и тут же переназначил его в настройках на кнопку смены языка.

Стало гораздо удобнее, но старый Backspace я так нигде и не использовал. Также раньше я имел разные кнопки для включения разных языков, Ctrl+Space для английского и Super+Space для русского. Теперь же, поскольку клавиша была одна, мне приходилось держать текущий язык в голове.

И тут я осознал, что у меня есть правый Shift, который вообще не используется, поэтому переназначил его на F14, на который стал включать русский язык, а левый на F13, на который стал включать английский язык. А Backspace я стал использовать для Compose, так как до этого он стоял на Scroll Lock.

Техническая часть

Как я уже сказал, сделал я все через Xmodmap. Первым делом я узнал нужные коды клавиш с помощью xev, затем я просто создал файл ~/.Xmodmap (но можно любой другой), в который просто поместил строки в следующем формате:

[код клавиши] = [название клавиши]

После этого я тупо применил его командной xmodmap ~/.Xmodmap и бросил её в автозапуск.

Чтобы было понятнее, вот старый пример моего Xmodmap:

keycode 131 = Shift_L
keycode 130 = BackSpace
keycode 22 = F13
keycode 50 = F14

А вот нового:

keycode 131 = Shift_L
keycode 130 = BackSpace
keycode 22 = Multi_key
keycode 50 = F13
keycode 62 = F14

Вывод

Зачем я всё это делаю и почему бы не оставить всё как обычно? Ответ прост: я просто хочу, чтобы печатать было удобнее, а следовательно, можно было и напечатать больше текста. Примерно по такой же причине некоторые люди используют Vim как основной текстовый редактор (я его тоже использую).

Напоследок, для лучшего понимания, мне хотелось бы приложить полное изображение того, как выглядит моя клавиатура и раскладка:

Вообще, всё это выглядит не очень идеально и я ещё буду это дорабатывать. Скорее всего, в будущем, я сделаю с нуля свою полуфонетическую раскладку для русского языка, которая будет иметь цифры как дворак для программистов. Почему я использую английскую раскладку как основную? Потому что в основном я пишу код или команды. Общаюсь я больше с телефона, когда нет доступа к ПК.