
Sway использует Wayland, поэтому любые файлы XKB будут обрабатываться Sway, а не X.
- Я хочу добавить слой на клавиатуру (вероятно, с помощью Hyper)
- Я хочу перетасовать некоторые клавиши-модификаторы
Я просмотрел много сайтов, но я все еще не знаю, как это сделать. В XKB так много частей, и я не уверен, что куда идет. Мне нужен пример файла (или файлов) и объяснение.
решение1
Допустим, ваш файл конфигурации xkb называется custom-xkb и хранится в ~/.config
. Затем вы включаете это в свой файл конфигурации sway:
input "type:keyboard" { # or input <identifier>
xkb_file ~/.config/xkb/custom-xkb
}
Вы, вероятно, уже знаете эту часть — самая сложная часть — создание файла custom-xkb
. Я не специалист, но вот что я бы сделал:
- Я бы сделал поиск в Интернете по запросу "xkb specification", и это принесет вам всевозможную информацию, от википедии до
x.org
полной спецификации. У вас, вероятно, уже есть коллекция таких ресурсов. - Затем я бы нашел в своей системе файлы конфигурации клавиатуры по умолчанию, может быть, в
\etc\X11\xdg\
или где-то еще (вам, возможно, придется немного поискать: в моем странном дистрибутиве путь такой/nix/store/n1mlvwrkdlm77b4ai9s26kwji89jjb65-xkeyboard-config-2.27/share/X11/xkb/
). - В этом пути я бы искал два подкаталога:
symbols
иtypes
. В первом находятся раскладки клавиш для всех различных языков, а в каждом файле — вариации раскладок клавиш для этого языка. Во втором подкаталоге определяются виртуальные клавиши (например, Mod1, Control и т. д.). - Затем я скопировал бы содержимое этих файлов в свой
~/.config/xkb/custom-xkb
и поэкспериментировал бы с различными правками, чтобы посмотреть, что получится. И попытался бы развеять свои сомнения, используя собранные мной интернет-ресурсы. Если бы случилось что-то катастрофическое, я бы нажал Control+Alt+F1, затем выполнил бы вход в систему nox, закомментировал бы строкуxkb_file ~/.config/xkb/custom-xkb
и перезапустил X-сервер... - Я бы не стал вмешиваться в содержимое подкаталогов
rules
,geometry
иkeycodes
. Но вам нужно взглянуть и на них тоже.
Я на самом деле ничего из этого не делал, но, возможно, это работает. Я думаю, что просмотр реальных файлов конфигурации помогает понять, что на самом деле говорят руководства и руководства...
удачи Гуку
решение2
XKB — действительно сложный зверь. (По крайней мере, по моему опыту. Кажется, в нем есть некоторые странные дизайнерские решения, которые я отношу к тому факту, что его первый релиз был еще в 1996 году, а также, на мой взгляд, не самая лучшая документация.)
Мне удалось достичь определенного уровня понимания, экспериментируя со множеством различных конфигураций, и я остановился на подмножестве функций, поведение которых я могу надежно предсказать и с комфортом создавать макеты, при этом сохраняя достаточную гибкость для выражения того, чего я хотел бы добиться.
Написание всеобъемлющего руководства по тому, что я узнал, заняло бы довольно много времени, но вы можете взглянуть на мои файлы конфигурации, которые, надеюсь, более усвояемы, чем чтение макетов по умолчанию.
https://github.com/Isti115/dotfiles/tree/master/.config/xkb
(Они включены в мою конфигурацию Sway)здесь.)
Я особенно рекомендуюLenovo-L13.xkb
файл, который я создал для своего ноутбука, так как он имеет несколько слоев. (Я даже превратил пробел в модификатор, удерживая его сevdoublebind.) Раскладка Vortex Core также хороша, но это не полная картина, поскольку сама клавиатура также программируема.
Если вам нужно что-то, чего здесь нет, как уже упоминалось в предыдущем ответе, то начать нужно со встроенных файлов. Вы можете получить представление о том, какие из них используются для вашей клавиатуры, используя setxkbmap -print
. С этого момента вы можете искать импортированные определения в любом месте, где xkb
находятся ваши файлы. (Если вы не используете NixOS, то, вероятно, они находятся в каком-то разумном месте, например, /usr/share/X11/xkb
в Arch.)