Diseños de teclado personalizados para varios sistemas operativos

Diseños de teclado personalizados para varios sistemas operativos

¿Existe algún software que genere diseños de teclado para Macintosh, Windows y Linux (xkb) simultáneamente?

Editar: Según tengo entendido, Microsoft Keyboard Layout Creator no admite el cambio de teclas modificadoras (he leído que tal vez autohotkey pueda solucionar este problema)

Respuesta1

Desafortunadamente, no existe ninguna herramienta o paquete de software capaz de generar o transcodificar (portar) los archivos de distribución de teclado nativos de los principales sistemas operativos de escritorio (al menos no uno que esté disponible para el público). Una herramienta de este tipo sería muy útil para todos aquellos que deben utilizar regularmente varios sistemas operativos, ya sea en la misma máquina y teclado o no; que cada vez es más común. Pero hasta ahora no se ha desarrollado ni publicado nada parecido; y eso no es sin razón. Existen varias complicaciones relacionadas con la "portación" de teclados entre sistemas operativos o el intento de mantener diseños de teclado sincronizados con precisión en diferentes plataformas. Una de las barreras importantes es la diferencia entre los 'modificadores'/teclas de comando que utilizan y/o reconocen los distintos sistemas operativos. Además, las Mac tienen teclados físicos únicos con algunas teclas que no se corresponden ni se traducen directamente a otros sistemas operativos, lo que crea una segunda "capa" de problemas e inconsistencias que deben resolverse y superarse. Esencialmente, en realidad es técnicamente imposible tener diseños de teclado que funcionen de manera idéntica en las plataformas que especificó.

Sin embargo,Desarrollador clavees una potente herramienta de software de terceros para la distribución del teclado y el desarrollo de entrada de texto que se acerca tanto a sus necesidades como creo que es posible encontrar. Es la única herramienta de este tipo que yo sepa que está disponible para el público. Si bien el software de terceros no es ideal, afirmo que, considerando todo lo que tiene para ofrecer, vale la pena considerar Keyman, dependiendo de cuáles sean exactamente sus objetivos (y cuán complejos/únicos sean los diseños de su teclado).

El paquete Developer de Keyman es una herramienta sólida capaz de generar varios tipos de archivos de salida, incluidos instaladores todo en uno que incluyen fuentes de métodos de entrada/diseños de teclado no solo para cualquier versión vagamente reciente de los sistemas operativos de escritorio de Microsoft y Apple, sino también para sus respectivas plataformas móviles. /devices, así como plataformas basadas en *nix, incluidas las de Android. Lo que significa que también facilita el desarrollo de teclados virtuales en pantalla: ¡TODOS usando una herramienta integrada, editando un único archivo de proyecto unificado! ADEMÁS, ¡recientemente se ha vuelto de código abierto y gratuito! No creo que puedas superar eso... Para admitir las funciones y características avanzadas y flexibles que requieren muchos scripts complejos, Keyman utiliza su propio motor en lugar de los archivos/tecnología nativos del sistema operativo (.klc/.dll o .keylayout) que no soportan las funciones avanzadas sensibles al contexto que ofrece Keyman, que son requeridas por los llamados lenguajes/sistemas de escritura "complejos" (principalmente esto incluye las escrituras del sur de Asia como India y Tíbet, que a menudo deben volver a ordenar caracteres o seleccionar caracteres dinámicamente según el texto circundante y aún permitir la edición una vez completada la secuencia sin tener que volver a escribir toda la secuencia). KMFLdebe instalarse y usarse en sistemas basados ​​en *nix para compilar el teclado desde el archivo fuente de Keyman. (KMFL es una adaptación/reescritura del motor Keyman).
El motor Keyman (o equivalente) parece bastante eficiente y requiere pocos recursos y también es bastante maduro y parece muy estable, funcionando de manera fluida y confiable sin causar problemas.

Aunque la mayoría de las diversas plataformas y formatos compatibles con Keyman tienen algún tipo de limitaciones técnicas o inherentes (que mencioné anteriormente como teclas modificadoras únicas), o su desarrollo aún está en progreso, lo que puede restringir el funcionamiento o funcionamiento de ciertas características (completamente). ) implementado. Keyman permite la personalización y optimización de funciones exclusivas de cada plataforma que se incluirán/codificarán para ayudar a mitigar estos problemas/diferencias.

Como mencioné, todos los productos Keyman se han migrado recientemente de comercial a código abierto como resultado deSILadquiriendo el proyecto Keyman de su propietario original: Tavultesoft. SIL tiene acceso a los recursos para respaldar su desarrollo continuo por parte del desarrollador original con la incorporación de personal de soporte y un foro de usuarios.

Dependiendo de la complejidad del idioma/sistema de escritura para el que está diseñado el teclado, es posible completar el proyecto utilizando únicamente las funciones admitidas por la interfaz gráfica de usuario de Keyman. Sin embargo, las características más complejas como teclas muertas, reordenamiento contextual y sustitución requieren el uso del lenguaje de descripción del teclado de Keyman (un lenguaje de codificación/scripting) que tiene una curva de aprendizaje bastante pronunciada para el usuario final típico.

Este lenguaje de descripción es muy flexible y extensible, lo que permite el manejo y procesamiento de textos complejos, incluida la normalización Unicode, la reordenación y sustitución de glifos basada en el contexto. También ofrece características que se parecen más a un "método de entrada" adecuado (lo que significa que incluye algunos elementos/ventanas gráficas superpuestas básicas), como listas emergentes automáticas o de mantener presionado de posibles salidas. También ofrece una característica única y conveniente de usar pulsaciones repetidas de teclas/tocar una tecla para recorrer una lista de salidas en bucle. ¡Me gusta especialmente esta característica! Si bien puedes almacenar una larga lista de caracteres en una clave, me resulta más práctico y útil tener entre 2 y 5 como máximo. Lo uso en las teclas de corchetes para proporcionar acceso a algunos corchetes poco comunes utilizados por un lenguaje de programación que uso, así como en otras teclas de símbolos para acceder a símbolos que no se usan con frecuencia. Es genial porque no tengo que recordar una combinación de modificador específica, simplemente toco la tecla hasta que se imprime el carácter que quiero, si lo paso accidentalmente, sigo tocando hasta que vuelve a aparecer. También se puede configurar para realizar sustituciones automáticas de forma similar a como funciona la "Tecla de redacción"; sustituyendo +- por ± y -+ por ∓ y secuencias similares para caracteres como ≤ ≰ ⪇ ≦ ≨ ≮ ≲ ≠ y así sucesivamente.

Como mencioné anteriormente, el lenguaje utilizado para crear las funciones avanzadas me parece menos que ideal e intuitivo. También encontré algunos de losdocumentaciónque la sintaxis y el 'vocabulario' de este lenguaje de descripción de teclado sean algo vagos, ambiguos o confusos y necesiten aumento, expansión o mejora. Sin embargo, esto parece estar mejorando y aún en desarrollo. El foro de usuarios no parece muy activo (¡no hay mucho allí!), aunque las respuestas a las preguntas parecen publicarse rápidamente.
Aún más importante, en mi opinión, el lenguaje en sí me parece engorroso, demasiado/innecesariamente complejo y un poco contrario a la intuición en cuanto a cómo se deben anotar/describir ciertos usos/características en el código.peroNo soy desarrollador/codificador, por lo que mi evaluación debe considerarse en ese contexto y"Tomado con cautela". He descubierto que los desarrolladores parecen bastante abiertos a considerar y evaluar solicitudes de funciones, sugerencias y comentarios sobre el software, el lenguaje de programación y la documentación.

Afortunadamente, Keyman ya admite más de 1000 idiomas, y los archivos/códigos fuente de ellos se pueden observar, estudiar, modificar e incluso copiar para insertarlos y reciclarlos en sus propios proyectos.

Se pueden generar varios tipos diferentes de archivos y paquetes, desde varios tipos de archivos fuente hasta paquetes de instalación totalmente automatizados que contienen el motor Keyman, íconos e incluso fuentes y, por supuesto, la distribución del teclado y los archivos de manejo de texto. Incluso puede crear configuraciones personalizadas que el usuario pueda alternar y que activen diferentes comportamientos en su teclado.

Es una lástima que Keyman no tenga la capacidad de al menos importar los formatos de distribución de teclado nativos del sistema operativo. ¡Eso sería realmente excepcionalmente útil y sorprendentemente fantástico! Sin embargo, es de código abierto, por lo que alguien con las habilidades, la motivación y el tiempo podría empezar a trabajar en él. También es posible, con suficientes solicitudes y comentarios en su foro, convencer a sus desarrolladores de que deberían trabajar en esto.
Un proyecto de este tipo también podría ser un buen candidato para encomendarlo a un codificador independiente económico que busque trabajo en el extranjero para abordarlo. Desafortunadamente, muchas de las funciones de Keyman simplemente no son compatibles con las API de entrada/diseño de teclado de Windows y MacOS, por lo que simplemente no es posible intentar que Keyman genere los archivos de diseño de teclado nativos.

~~~~~~ Cambiar la salida/función de cualquier tecla que no produzca texto (es decir: teclas modificadoras/de comando, teclas de función, teclas multimedia, teclas de edición (arriba, abajo, retroceso, etc.), etc.) es La mayoría de los sistemas operativos no lo consideran parte de la distribución del teclado y Windows no lo admite en absoluto de forma nativa. MacOS proporciona una forma de reasignar teclas modificadoras en el panel de control del teclado, y existen varias herramientas para las diferentes versiones de *nix que permiten personalizaciones similares, a menudo más extensas.
Existe una herramienta de terceros para Windows llamadaKbdque en realidad genera archivos klc estándar y paquetes de instalación de DLL para Windows. KbdEdit es muy parecido a la forma en que imagino cómo debería ser MSKLC... Bastante potente y lo suficientemente flexible como para poder hacer casi cualquier cosa, incluida la creación de diseños de teclado muy complejos con teclas muertas encadenadas... También tiene la capacidad de reasigne cualquier tecla a numerosas v_keys oscuras que incluyen las teclas modificadoras en los teclados japoneses/asiáticos. Un uso creativo y reutilizado de estas oscuras teclas modificadoras podría cerrar la brecha entre las discrepancias entre los sistemas operativos que mencioné anteriormente; pero no existe una forma sencilla u obvia de implementar esto. ¡Creo que un teclado de Windows técnicamente puede tener hasta 15 estados/niveles/capas de teclas de cambio/modificador separados! Uno de ellos (tecla Kana) puede bloquearse o alternarse, como si fuera un bloqueo de mayúsculas. Los teclados funcionan sin ningún software adicional o de terceros. Pero, por supuesto, no existe ninguna herramienta para migrarlos a Mac o Linux.

mosquetónes el análogo de MacOS más cercano, aunque tiene una premisa completamente diferente y en realidad no tiene nada que ver directamente con la distribución del teclado en sí; aunque tiene un lenguaje nativo basado en xml que permite crear teclas modificadoras personalizadas y comportamientos de teclas (como hacer que una tecla modificadora genere un carácter si se toca sola y no se usa como modificador, etc.). Aunque para que un modificador personalizado sea útil, todas las posibles salidas deseadas deben programarse manualmente utilizando un lenguaje no diseñado específicamente para tal fin. Pero es extremadamente versátil y potente y puede realizar algunos trucos y funciones bastante interesantes de bajo nivel. ¡También es gratis!

ukelelees una herramienta gratuita para MacOS que genera archivos y paquetes de distribución de teclado nativos. Tiene una interfaz mucho más potente e intuitiva que MSKLC y un foro muy útil que el desarrollador visita con frecuencia. También es propiedad de SIL, aunque no es de código abierto. Sería bueno ver alguna integración de la GUI de Ukelele en el paquete Keyman Developer; para crear claves muertas, por ejemplo. Y, por supuesto, no puede importar ni exportar diseños desde otras plataformas.

Respuesta2

Sí, y es bastante sencillo.

Mac OS En Mac OS todo está integrado, se pueden encontrar instrucciones simples y paso a pasoaquí

ventanas Microsoft ofrece una lista de instrucciones propia aquí: http://msdn.microsoft.com/en-us/goglobal/bb964665.aspx

linux Crear una distribución de teclado Linux personalizada con la ayuda dexkb.

Una vez se hizo una pregunta similar en StackOverflow: https://stackoverflow.com/questions/826986/how-to-make-a-custom-keyboard-layout

información relacionada