Linux carece de una buena solución de reasignación de claves. Para lograr resultados satisfactorios es necesario emplear una combinación de herramientas (por ejemplo, xcape, xmodmap) y el resultado final suele estar vinculado a un entorno específico (X11). keyd intenta resolver este problema proporcionando un demonio flexible para todo el sistema que reasigna claves utilizando primitivas de entrada a nivel del kernel (evdev, uinput).
El formato de configuración ha pasado por varias iteraciones desde el primer lanzamiento. Para aquellos que migran sus configuraciones desde la versión 1, es mejor volver a leer la página de manual.
Ver también: registro de cambios.
keyd tiene varias características únicas, muchas de las cuales tradicionalmente solo se encuentran en firmware de teclado personalizado como QMK, así como algunas que son exclusivas de keyd.
Algunos de los más interesantes incluyen:
C-1
sin romper la semántica del modificador.Nota: master sirve como rama de desarrollo; ocasionalmente, es posible que las cosas se rompan entre versiones. Las versiones están etiquetadas y deben considerarse estables.
git clone https://github.com/rvaiya/keyd
cd keyd
make && sudo make install
sudo systemctl enable keyd && sudo systemctl start keyd
Instalar e iniciar keyd (por ejemplo, sudo systemctl enable keyd
)
Coloque lo siguiente en /etc/keyd/default.conf
:
[ids]
*
[main]
# Maps capslock to escape when pressed and control when held.
capslock = overload(control, esc)
# Remaps the escape key to capslock
esc = capslock
Los nombres de las claves se pueden obtener utilizando el comando keyd monitor
. Tenga en cuenta que mientras se ejecuta keyd, la salida de este comando corresponderá a la salida de keyd. Los eventos de entrada originales se pueden ver deteniendo primero keyd y luego ejecutando el comando. Consulte la página de manual para obtener más detalles.
Ejecute sudo keyd reload
para recargar el conjunto de configuración.
Consulte la página de manual ( man keyd
) para obtener una descripción más completa.
Los errores de configuración aparecerán en la salida del registro y se podrá acceder a ellos de la forma habitual utilizando el administrador de servicios de su sistema (por ejemplo, sudo journalctl -eu keyd
).
Nota : Es posible inutilizar su máquina con un archivo de configuración incorrecto. Si se encuentra en esta posición, la secuencia de teclas especial backspace+escape+enter
debería hacer que keyd finalice.
Algunos ratones (por ejemplo, Logitech MX Master) son capaces de emitir claves y, en consecuencia, coinciden con el ID comodín. Puede que sea necesario incluirlos explícitamente en la lista negra.
Agréguese al grupo con clave:
usermod -aG keyd <user>
Rellenar ~/.config/keyd/app.conf
:
P.EJ
[alacritty]
alt.] = macro(C-g n)
alt.[ = macro(C-g p)
[chromium]
alt.[ = C-S-tab
alt.] = macro(C-tab)
Correr:
keyd-application-mapper
Probablemente querrás poner keyd-application-mapper -d
en algún lugar de la lógica de inicialización de tu servidor de visualización (por ejemplo, ~/.xinitrc) a menos que estés ejecutando Gnome.
Consulte la página de manual para obtener más detalles.
Se ha agregado soporte experimental para computadoras de placa única (SBC) a través de un dispositivo USB, cortesía de Giorgi Chavchanidze.
Consulte usb-gadget.md para obtener más detalles.
También existen paquetes de terceros para algunas distribuciones. Si desea agregar el suyo a la lista, presente un PR. Estos son amablemente mantenidos por miembros de la comunidad, no se asume ninguna responsabilidad personal por ellos.
Paquete con clave mantenido por @jirutka.
Paquete Arch Linux mantenido por los empaquetadores de Arch.
Los paquetes experimentales keyd
y keyd-application-mapper
se pueden encontrar en los artefactos de compilación de CI del repositorio de paquetes de trabajo en progreso de Debian:
Cualquier desarrollador de Debian que esté dispuesto a revisar el esfuerzo de debianización y patrocinar su carga puede contactar a @rhansen (consulte también el error de Debian ITP).
Paquete COPR mantenido por @alternateved.
Paquete opensuse mantenido por @bubbleguuum.
Fácil instalación con sudo zypper in keyd
.
Los paquetes experimentales keyd
y keyd-application-mapper
se pueden encontrar en el archivo ppa:keyd-team/ppa
.
Si desea ayudar a mantener este PPA, comuníquese con @rhansen.
[ids]
*
[main]
leftshift = oneshot(shift)
capslock = overload(symbols, esc)
[symbols]
d = ~
f = /
...
Probablemente muchos usuarios no estarán interesados en aprovechar al máximo keyd. Para aquellos que buscan mejoras simples en la calidad de vida, puedo recomendar la siguiente configuración:
[ids]
*
[main]
shift = oneshot(shift)
meta = oneshot(meta)
control = oneshot(control)
leftalt = oneshot(alt)
rightalt = oneshot(altgr)
capslock = overload(control, esc)
insert = S-insert
Esto sobrecarga la tecla Bloq Mayús para que funcione como escape (cuando se toca) y control (cuando se mantiene presionada) y reasigna todos los modificadores a teclas de un solo uso. Por lo tanto, para producir la letra A, ahora puede simplemente tocar Mayús y luego a en lugar de tener que mantenerla presionada. Finalmente reasigna insertar a S-insertar (pegar en X11).
xmodmap y amigos son herramientas de nivel de servidor de visualización con funcionalidad limitada. keyd es una solución a nivel de sistema que implementa funciones avanzadas como capas y modificadores de una sola vez. Si bien algunas herramientas X ofrecen una funcionalidad similar, no conozco nada que sea tan flexible como keyd.
keyd fue escrito hace varios años para permitirme experimentar fácilmente con diferentes diseños en mi creciente colección de teclados. En ese momento, kmonad no existía y el firmware de teclado personalizado como QMK (que inspiró el teclado) era la única forma de obtener funciones comparables. Me di cuenta de kmonad después de haber publicado keyd. Si bien kmonad es un excelente proyecto con objetivos similares, adopta un enfoque diferente y tiene una filosofía de diseño diferente.
En particular, keyd fue escrito completamente en C teniendo en cuenta el rendimiento y de manera simple y probablemente nunca será tan configurable como kmonad (que es extensible en Haskell). Dicho esto, proporciona (en opinión del autor) las características más valiosas en menos de 2000 líneas de C y al mismo tiempo proporciona un formato de configuración simple e independiente del lenguaje.
Si cree que falta algo o encuentra un error, puede presentar un problema en github. keyd tiene una filosofía de diseño minimalista (pero sensata) que omite intencionalmente ciertas características (por ejemplo, ejecutar ejecutables arbitrarios como root). Las cosas que ya existen en el firmware de teclado personalizado como QMK son buenos candidatos para su inclusión.
Ver CONTRIBUIR. Canal IRC: #keyd en oftc