¿Cómo creo un archivo XKB personalizado complicado para Sway?

¿Cómo creo un archivo XKB personalizado complicado para Sway?

Sway usa Wayland, por lo que cualquier archivo XKB será analizado por Sway, no por X.

  • Quiero agregar una capa en el teclado (probablemente usando Hyper)
  • Quiero mezclar algunas teclas modificadoras

He mirado muchos sitios, pero todavía no sé cómo lograrlo. XKB tiene tantas partes que no estoy seguro de qué van y dónde. Quiero un archivo (o archivos) de ejemplo y una explicación.

Respuesta1

Digamos que su archivo de configuración xkb se llama custom-xkb y está almacenado en ~/.config. Luego incluye esto en su archivo de configuración de sway:

input "type:keyboard" {           # or input <identifier> 
  xkb_file ~/.config/xkb/custom-xkb
}

Probablemente ya conozcas esa parte: la parte difícil es crear el custom-xkbarchivo. No soy un especialista, pero esto es lo que haría:

  1. Haría una búsqueda en la web de "especificación xkb", y eso le brindará todo tipo de información, desde wikipedia hasta la x.orgespecificación completa. Probablemente ya tengas una colección de recursos como esos.
  2. Luego encontraría en mi sistema los archivos de configuración de teclado predeterminados, tal vez en \etc\X11\xdg\o algo así (puede que tengas que mirar un poco a tu alrededor: en mi extraña distribución, la ruta es /nix/store/n1mlvwrkdlm77b4ai9s26kwji89jjb65-xkeyboard-config-2.27/share/X11/xkb/).
  3. En esa ruta, buscaría dos subdirectorios: symbolsy types. El primero es donde están los mapas de claves para todos los diferentes idiomas y, dentro de cada archivo, las variaciones de los mapas de claves para ese idioma. El segundo subdirectorio es donde se definen las claves virtuales (como Mod1, Control, etc.).
  4. Luego copiaría el contenido de esos archivos en mi ~/.config/xkb/custom-xkby experimentaría diferentes ediciones para ver qué sucede. Y trato de aclarar mis dudas utilizando los recursos de Internet que habría recopilado. Si sucediera algo catastrófico, presionaría Control+Alt+F1, luego iniciaría sesión nox, comentaría la línea xkb_file ~/.config/xkb/custom-xkby reiniciaría el servidor X...
  5. No alteraría el contenido de los subdirectorios rulesy geometry. keycodesPero es necesario, échales un vistazo también.

En realidad no he hecho nada de eso, pero tal vez funcione. Creo que mirar los archivos de configuración reales ayuda a descubrir qué dicen realmente los tutoriales y guías...

buena suerte

Respuesta2

XKB es una bestia realmente complicada. (Al menos en mi experiencia. Parece tener algunas decisiones de diseño extrañas que atribuyo al hecho de que su primera versión fue allá por 1996, y tampoco es la mejor documentación en mi opinión).

Me las arreglé para llegar a cierto nivel de comprensión al experimentar con muchas configuraciones diferentes y me decidí por un subconjunto de funcionalidades cuyo comportamiento puedo adivinar de manera confiable y con el que puedo crear diseños cómodamente sin dejar de tener suficiente flexibilidad para expresar lo que me gustaría. lograr.

Escribir un tutorial completo de lo que he aprendido tomaría bastante tiempo, pero lo que puedes hacer es echar un vistazo a mis archivos de configuración, que espero sean más digeribles que leer los diseños predeterminados.

https://github.com/Isti115/dotfiles/tree/master/.config/xkb

(Están incluidos en mi configuración de Swayaquí.)

Recomiendo especialmente el Lenovo-L13.xkbarchivo que creé para mi computadora portátil, ya que tiene varias capas. (Incluso convertí mi barra espaciadora en un modificador mientras la mantenía presionada condoble enlace.) El diseño de Vortex Core también es bueno, pero esa no es la imagen completa, ya que el teclado en sí también es programable.

Si necesita algo que no se puede encontrar aquí, como ya se mencionó en la respuesta anterior, el lugar para comenzar son los archivos integrados. Puedes hacerte una idea de cuáles se utilizan para tu teclado usando setxkbmap -print. A partir de ese momento, podrá buscar las definiciones importadas dondequiera que xkbse encuentren sus archivos. (A menos que estés usando NixOS, probablemente esté en algún lugar razonable, como /usr/share/X11/xkben Arch).

información relacionada