UrOwnKeyboard es un gestor de distribuciones de teclado personalizadas para Linux.
Permite importar, crear, activar y eliminar configuraciones basadas en XKB y, opcionalmente, asociarlas con archivos keyd.conf para remapeos físicos y atajos avanzados.
Incluye:
- un comando de terminal llamado
uok; - un indicador gráfico compatible con AppIndicator/Ayatana;
- un editor visual de distribuciones XKB;
- soporte para perfiles XKB propios;
- soporte opcional para
keyd; - Extensiónes específicas para ocultar el indicador nativo de fuentes de entrada.
UrOwnKeyboard está orientado a escritorios Linux que usen XKB.
Estado de soporte:
| Escritorio | Estado |
|---|---|
| GNOME | Soportado (x11) |
| KDE Plasma | Soportado (x11) |
| XFCE | Soportado (x11) |
| MATE | Soportado (x11) |
| Cinnamon | Soportado (x11) |
| LXQt | Soportado (x11) |
| Otros | Puede funcionar si soportan XKB y AppIndicator/Ayatana/StatusNotifier (x11) |
En GNOME, UrOwnKeyboard usa las fuentes de entrada de gsettings.
En XFCE, UrOwnKeyboard puede leer distribuciones añadidas desde la configuración de teclado de XFCE, setxkbmap e IBus cuando está presente.
- Importar distribuciones XKB desde archivos.
- Crear distribuciones nuevas desde un editor visual.
- Usar como base una distribución del sistema, una fuente añadida desde la configuración del escritorio o una configuración propia de UrOwnKeyboard.
- Editar teclas visualmente, incluyendo niveles normal, Shift, AltGr y AltGr+Shift.
- Exportar una distribución editada como archivo XKB.
- Importar directamente una distribución editada en UrOwnKeyboard.
- Asociar opcionalmente un archivo
keyd.conf. - Aplicar automáticamente XKB + keyd.
- Volver a una distribución normal dejando
keyden modo neutral. - Listar configuraciones importadas.
- Eliminar configuraciones importadas.
- Mostrar la configuración activa.
- Mostrar el
keyd.confasociado a la configuración activa. - Mostrar una vista completa de la configuración activa.
- Usar un menú gráfico en la barra superior o panel.
- Abrir la configuración de teclado del sistema desde el menú gráfico.
- Ocultar el indicador nativo/IBus en cuando sea posible.
- Iniciarse automáticamente al iniciar sesión.
En Ubuntu, Debian y derivadas:
sudo apt update
sudo apt install -y git build-essential python3-gi gir1.2-gtk-3.0 gir1.2-ayatanaappindicator3-0.1 zenity gkbd-capplet gnome-shell-extension-appindicator fonts-noto-core fonts-noto-extra x11-xkb-utils fonts-noto-core fonts-noto-extra
if ! command -v keyd >/dev/null 2>&1; then
cd /tmp
rm -rf keyd
git clone https://github.com/rvaiya/keyd.git
cd keyd
make
sudo make install
sudo systemctl enable --now keyd
fi
cd "$HOME"
rm -rf UrOwnKeyboard
git clone https://github.com/Oriesu/UrOwnKeyboard.git
cd UrOwnKeyboard
chmod +x install.sh uninstall.sh make-release.sh uok
chmod +x install.sh uninstall.sh uok
./install.shEl instalador instala las dependencias necesarias, copia los archivos a ~/.local/bin, instala el helper de keyd, crea la regla sudoers limitada y activa el autoinicio del indicador.
Después de instalar, se recomienda cerrar sesión y volver a entrar.
En GNOME, si el indicador nativo sigue apareciendo, ejecuta:
gnome-extensions enable hide-input-source@teclado-indicadorEl script install.sh:
- instala dependencias GTK, AppIndicator/Ayatana, XKB, Noto y herramientas de escritorio;
- instala o activa
keyd; - crea directorios de configuración en
~/.config/teclado-indicador/; - copia
uoka~/.local/bin/uok; - copia
teclado-indicador.pya~/.local/bin/; - copia
uok-layout-editor.pya~/.local/bin/; - copia los módulos
uok_xkb_symbols.pyyuok_xkb_sources.py; - instala el helper
/usr/local/sbin/keyd-aplicar-conf; - crea la regla sudoers
/etc/sudoers.d/teclado-indicador-keyd; - crea el autoinicio
~/.config/autostart/teclado-indicador.desktop; - instala la extensión local de GNOME si detecta GNOME Shell;
- inicia el indicador gráfico.
La regla sudoers se limita al helper de keyd:
/usr/local/sbin/keyd-aplicar-conf
Puedes comprobarla con:
sudo visudo -cf /etc/sudoers.d/teclado-indicador-keydDespués de instalar, aparecerá un indicador de UrOwnKeyboard en la barra superior o panel.
Desde el menú puedes usar:
Show full configuration
New configuration…
├─ Open visual editor…
├─ Import configuration…
└─ Add from settings…
Delete configuration…
Reload list
Agrupa las formas de crear o añadir configuraciones:
- Open visual editor… abre el editor visual.
- Import configuration… importa un archivo XKB existente.
- Add from settings… abre la configuración de teclado del escritorio actual.
Add from settings… se adapta al escritorio:
- en GNOME abre la configuración de teclado/región de GNOME;
- en XFCE abre
xfce4-keyboard-settings; - en Cinnamon intenta abrir
cinnamon-settings keyboard; - en KDE intenta abrir el módulo de teclado de System Settings.
Recarga las distribuciones mostradas en el menú.
Útil si acabas de añadir una distribución desde los ajustes del sistema.
El editor visual permite crear una distribución XKB desde una base existente.
Se puede iniciar desde el menú gráfico o desde terminal:
uok editorTambién se puede abrir directamente:
~/.local/bin/uok-layout-editor.pyEl editor permite:
- elegir una distribución base;
- modificar símbolos de teclas;
- editar niveles normal, Shift, AltGr y AltGr+Shift;
- guardar la distribución como archivo XKB;
- importar la distribución directamente en UrOwnKeyboard;
- añadir atajos concretos de keyd.
El editor visual sólo debe generar reglas concretas de keyd.
La opción antigua de bloqueo global de todos los atajos fue eliminada porque generaba archivos keyd.conf enormes con muchas secciones y muchos noop. Ese formato podía hacer fallar keyd por superar su límite interno de secciones.
Formato recomendado:
[ids]
*
[main]
leftcontrol = layer(ctrlq)
rightcontrol = layer(ctrlq)
leftalt = layer(altq)
[ctrlq]
c = C-c
v = C-v
[altq]
tab = A-tabNo se recomienda generar secciones masivas como:
[ctrl_alt_shift_meta_altgrq]
a = noop
b = noop
c = noopuok --helpuok listuok import --name "Mi teclado" --xkb ./mi_tecladouok import \
--name "Mi teclado" \
--xkb ./mi_teclado \
--keyd ./mi_teclado.keyd.confuok activate mi_tecladouok currentuok current-keyduok showuok delete mi_tecladoSi tienes una carpeta con:
Dvorak-para-programacion-en-espanol-main/
├── esprog
├── esprog.keyd.conf
└── README.md
puedes importarla con:
uok import \
--name "Dvorak esprog" \
--xkb "$HOME/Descargas/Dvorak-para-programacion-en-espanol-main/esprog" \
--keyd "$HOME/Descargas/Dvorak-para-programacion-en-espanol-main/esprog.keyd.conf"Luego activa el perfil:
uok list
uok activate dvorak_esprogSi el ID generado es distinto, usa el ID exacto mostrado por uok list.
UrOwnKeyboard trata XKB como la parte principal y keyd como una capa opcional.
Al activar una configuración importada:
- intenta aplicar el
keyd.confasociado, si existe; - aplica la distribución XKB;
- guarda el perfil como configuración activa.
Si keyd falla, UrOwnKeyboard puede mantener XKB activo y mostrar un aviso no bloqueante.
Al volver a una distribución normal del sistema, UrOwnKeyboard deja /etc/keyd/default.conf en modo neutral:
[ids]
*
[main]Esto significa que el servicio keyd puede seguir activo, pero sin remapeos personalizados.
Comprobar estado:
sudo cat /etc/keyd/default.conf
systemctl is-active keydEs normal que systemctl is-active keyd muestre:
active
Lo importante es que /etc/keyd/default.conf esté neutral cuando uses una distribución normal.
En GNOME, UrOwnKeyboard lee las fuentes de entrada desde:
gsettings get org.gnome.desktop.input-sources sourcesTambién puede cambiar la fuente activa de GNOME y aplicar XKB.
Para ocultar el indicador nativo de GNOME, el instalador incluye una extensión local:
gnome-extension/
├── extension.js
└── metadata.json
Activación manual:
gnome-extensions enable hide-input-source@teclado-indicadorEn XFCE, UrOwnKeyboard puede leer fuentes desde:
xfconf-query;setxkbmap -query;- IBus, si está activo;
- configuraciones detectables del panel.
Para abrir la configuración de teclado de XFCE:
xfce4-keyboard-settingsPara comprobar la configuración actual:
xfconf-query -c keyboard-layout -l -v
setxkbmap -queryUrOwnKeyboard intenta ocultar indicadores nativos o de IBus en el panel de XFCE cuando interfieren con el menú propio.
.
├── gnome-extension
│ ├── extension.js
│ └── metadata.json
├── helpers
│ └── keyd-aplicar-conf
├── install.sh
├── make-release.sh
├── README.md
├── teclado-indicador.py
├── uninstall.sh
├── uok
├── uok-layout-editor.keyd.py
├── uok-layout-editor.py
├── uok_xkb_sources.py
└── uok_xkb_symbols.py
Archivos principales:
| Archivo | Función |
|---|---|
uok |
CLI principal |
teclado-indicador.py |
Indicador gráfico |
uok-layout-editor.py |
Editor visual XKB |
uok_xkb_sources.py |
Lectura de fuentes XKB del sistema/escritorio |
uok_xkb_symbols.py |
Utilidades para símbolos XKB |
helpers/keyd-aplicar-conf |
Helper con sudo para aplicar keyd |
install.sh |
Instalador |
uninstall.sh |
Desinstalador |
make-release.sh |
Generador de release |
./make-release.shEl script genera una carpeta release/ con el paquete y el .tar.gz.
./uninstall.shEsto elimina los archivos instalados por UrOwnKeyboard.
Si quieres dejar keyd neutral manualmente:
sudo tee /etc/keyd/default.conf >/dev/null <<'EOF2'
[ids]
*
[main]
EOF2
sudo systemctl restart keydComprueba que el autoinicio existe:
ls ~/.config/autostart/teclado-indicador.desktopReinicia manualmente:
pkill -f teclado-indicador.py 2>/dev/null || true
pkill -f uok-indicator-start 2>/dev/null || true
rm -rf "/tmp/uok-indicator-$USER.lock"
~/.local/bin/uok-indicator-start &Comprueba el archivo asociado:
uok current-keyd
sudo journalctl -u keyd -n 120 --no-pagerComprueba que el helper funciona:
sudo /usr/local/sbin/keyd-aplicar-conf ~/.config/teclado-indicador/keyd/ID_DEL_PERFIL.confEso es correcto.
Comprueba que esté neutral:
sudo cat /etc/keyd/default.confDebe mostrar:
[ids]
*
[main]No debería ocurrir en la versión actual.
Comprueba:
wc -l ~/.config/teclado-indicador/keyd/mi_teclado.conf
grep -n '^\[' ~/.config/teclado-indicador/keyd/mi_teclado.confSi aparecen muchas secciones de combinaciones de modificadores, elimina esa configuración y vuelve a generarla con la versión actual del editor.
Algunas distribuciones usan símbolos Unicode poco comunes. Para mejorar su visualización se recomienda tener instaladas las fuentes Noto.
El instalador intenta instalar:
fonts-noto-core fonts-noto-extraInstalación manual:
sudo apt install -y fonts-noto-core fonts-noto-extraIndica aquí la licencia del proyecto.