Existe algum software que gere layouts de teclado Macintosh, Windows e Linux (xkb) simultaneamente?
Editar: Pelo que entendi, o Microsoft Keyboard Layout Creator não oferece suporte à alteração de teclas modificadoras (li que talvez o autohotkey possa solucionar esse problema)
Responder1
Infelizmente, não existe nenhuma ferramenta ou pacote de software capaz de gerar ou transcodificar (portar) os arquivos de layout de teclado nativos dos principais sistemas operacionais de desktop (pelo menos nenhum que esteja disponível ao público). Tal ferramenta seria muito útil para todos aqueles que precisam usar regularmente vários sistemas operacionais, seja na mesma máquina e teclado ou não; que está se tornando cada vez mais comum. Mas nada parecido com isto foi desenvolvido – e lançado – até agora; e isso não é sem razão. Existem várias complicações envolvidas na "portação" de teclados entre sistemas operacionais ou na tentativa de manter layouts de teclado sincronizados com precisão em diferentes plataformas. Uma das barreiras significativas é a diferença entre 'modificadores'/teclas de comando que são usados e/ou reconhecidos pelos vários sistemas operacionais. Além disso, os Macs possuem teclados físicos exclusivos com algumas teclas que não correspondem diretamente ou não são traduzidas para outros sistemas operacionais, criando uma segunda “camada” de problemas e inconsistências a serem resolvidas e superadas. Essencialmente, é tecnicamente impossível ter layouts de teclado funcionando de forma idêntica nas plataformas que você especificou.
No entanto,Desenvolvedor Keymané uma poderosa ferramenta de software de terceiros para layout de teclado e desenvolvimento de entrada de texto que chega tão perto de atender às suas necessidades quanto eu acho que você pode esperar encontrar. É a única ferramenta deste tipo que conheço e que está disponível ao público. Embora o software de terceiros não seja ideal, afirmo que, considerando tudo o que ele tem a oferecer, vale a pena considerar Keyman - dependendo de quais são exatamente seus objetivos (e quão complexos/exclusivos são seus layouts de teclado).
O pacote Developer do Keyman é uma ferramenta robusta capaz de gerar vários tipos de arquivos de saída, incluindo instaladores completos, incluindo fontes de métodos de entrada/layouts de teclado, não apenas para qualquer versão vagamente recente dos sistemas operacionais de desktop da Microsoft e da Apple, mas também para suas respectivas plataformas móveis. /devices, bem como plataformas baseadas em *nix, inclusive para Android. O que significa que também facilita o desenvolvimento de teclados virtuais na tela – TUDO usando uma ferramenta integrada, editando um único arquivo de projeto unificado! ALÉM DISSO, recentemente se tornou de código aberto e gratuito! Eu não acho que você possa superar isso... Para oferecer suporte às funções e recursos avançados e flexíveis exigidos por muitos scripts complexos, o Keyman usa seu próprio mecanismo em vez dos arquivos/tecnologia nativos do sistema operacional (.klc/.dll ou .keylayout) que não suportam os recursos avançados sensíveis ao contexto oferecidos por Keyman, que são exigidos pelos chamados idiomas/sistemas de escrita "complexos" (principalmente isso inclui os scripts do Sul da Ásia, como Índia e Tibete, que muitas vezes devem ser re- ordenar caracteres ou selecionar caracteres dinamicamente com base no texto circundante e ainda permitir a edição após a sequência ser concluída sem precisar redigitar toda a sequência). KMFLdeve ser instalado e usado em sistemas baseados em *nix para compilar o teclado a partir do arquivo fonte Keyman. (KMFL é uma porta/reescrita do mecanismo Keyman).
O mecanismo Keyman (ou equivalente) parece bastante eficiente e requer poucos recursos e também é bastante maduro e parece muito estável, funcionando de maneira suave e confiável, sem causar problemas.
Embora a maioria das várias plataformas e formatos suportados pelo Keyman tenham algum tipo de limitações inerentes ou técnicas (que mencionei anteriormente, como teclas modificadoras exclusivas), ou seu desenvolvimento ainda esteja em andamento, o que pode restringir o funcionamento/ser de certos recursos (totalmente ) implementado. Keyman permite que a personalização e otimização de funções exclusivas de cada plataforma sejam incluídas/codificadas para ajudar a mitigar esses problemas/diferenças.
Como mencionei, todos os produtos Keyman foram recentemente migrados de comercial para código aberto como resultado deSILadquirindo o projeto Keyman de seu proprietário original: Tavultesoft. A SIL tem acesso aos recursos para apoiar seu desenvolvimento contínuo pelo desenvolvedor original com a adição de alguma equipe de suporte e um fórum de usuários.
Dependendo da complexidade do idioma/sistema de escrita para o qual o teclado está sendo projetado para suportar, pode ser possível concluir o projeto usando apenas os recursos suportados pela interface gráfica do Keyman. No entanto, os recursos mais complexos, como teclas mortas, reordenação contextual e substituição, exigem o uso da linguagem de descrição de teclado de Keyman (uma linguagem de codificação/script), que possui uma curva de aprendizado bastante acentuada para o usuário final típico.
Esta linguagem de descrição é muito flexível e extensível, permitindo manipulação e processamento de texto complexo, incluindo normalização Unicode, reordenação e substituição de glifos baseada em contexto. Ele também oferece recursos mais parecidos com um "método de entrada" adequado (o que significa que inclui alguns elementos/janelas gráficos básicos sobrepostos), como listas pop-up automáticas ou de pressionar e segurar de possíveis saídas. Ele também oferece um recurso exclusivo e conveniente de usar pressionamentos/toques repetidos em uma tecla para percorrer uma lista contínua de saídas. Gosto especialmente desse recurso! Embora você possa armazenar uma longa lista de caracteres em uma chave, acho mais prático e útil ter de 2 a 5 no máximo. Eu o uso nas teclas de colchetes para fornecer acesso a alguns colchetes incomuns usados por uma linguagem de script que uso, bem como em outras teclas de símbolos para acessar símbolos não usados com frequência. É ótimo porque não preciso me lembrar de uma combinação de modificadores específica, apenas toco na tecla até que o caractere que desejo seja impresso, se eu acidentalmente passar por ele, continuo tocando até que ele volte. Também pode ser configurado para fazer substituições automáticas semelhantes ao funcionamento da "Chave de composição"; substituindo +- por ± e -+ por ∓ e sequências semelhantes para caracteres como ≤ ≰ ⪇ ≦ ≨ ≮ ≲ ≠ e assim por diante.
Como mencionei acima, a linguagem usada para criar os recursos avançados parece nada ideal e intuitiva para mim. Também encontrei algunsdocumentaçãopara que a sintaxe e o 'vocabulário' desta linguagem de descrição de teclado sejam um tanto vagos, ambíguos ou confusos e precisem de aumento, expansão ou melhoria. No entanto, isso parece estar melhorando e ainda sendo desenvolvido. O fórum de usuários não parece ser muito ativo (não há muito lá!), embora as respostas às perguntas pareçam ser postadas rapidamente.
Ainda mais importante, na IMO, a linguagem em si parece complicada, excessivamente/desnecessariamente complexa e um pouco contra-intuitiva para mim no que diz respeito a como certos usos/recursos devem ser notados/descritos no código—masNão sou um desenvolvedor/codificador, então minha avaliação deve ser considerada nesse contexto e'tomado com um grão de sal'. Descobri que os desenvolvedores parecem bastante abertos para considerar e avaliar solicitações de recursos, sugestões e comentários sobre o software, a linguagem de script, bem como a documentação.
Felizmente, Keyman já suporta mais de 1.000 idiomas, e os arquivos/códigos fonte deles podem ser observados, estudados, modificados e até copiados para serem inseridos e reciclados em seus próprios projetos.
Vários tipos diferentes de arquivos e pacotes podem ser gerados, desde vários tipos de arquivos de origem até pacotes de instalação totalmente automatizados contendo o mecanismo Keyman, ícones e até fontes e, claro, o layout do teclado e arquivos de manipulação de texto. Você pode até criar configurações personalizadas que podem ser alternadas pelo usuário, que ativam diferentes comportamentos em seu teclado.
É uma pena que Keyman não tenha a capacidade de pelo menos importar os formatos de layout de teclado nativos do sistema operacional. Isso seria realmente excepcionalmente útil e incrivelmente fantástico! Porém, é de código aberto, então alguém com habilidades, motivação e tempo pode começar a trabalhar nele. Também pode ser possível, com solicitações e comentários suficientes em seu fórum, convencer seus desenvolvedores de que eles deveriam trabalhar nisso.
Esse projeto também pode ser um bom candidato para ser contratado por um programador freelance barato em busca de trabalho no exterior. Infelizmente, muitos dos recursos do Keyman simplesmente não são suportados pelas APIs de layout/entrada de teclado do Windows e MacOS, portanto, simplesmente não é possível tentar fazer com que o Keyman gere os arquivos de layout de teclado nativos.
~~~~~~ Alterar a saída/função de quaisquer teclas que não produzem texto (ou seja: teclas modificadoras/de comando, teclas de função, teclas de mídia, teclas de edição (para cima, para baixo, backspace, etc.) e assim por diante) é não é considerado parte de um layout de teclado pela maioria dos sistemas operacionais e não é suportado nativamente pelo Windows. O MacOS fornece uma maneira de reatribuir teclas modificadoras no painel de controle do teclado, e existem várias ferramentas para os diferentes tipos de *nix que permitem personalizações semelhantes, muitas vezes mais extensas.
Existe uma ferramenta de terceiros para Windows chamadaKbdque na verdade gera arquivos klc padrão e pacotes de instalação DLL para Windows. KbdEdit é muito parecido com o que imagino como o MSKLC deveria ser... Bastante poderoso e flexível o suficiente para ser capaz de fazer praticamente qualquer coisa - incluindo a criação de layouts de teclado muito complexos com teclas mortas encadeadas... Ele também tem a capacidade de reatribuir qualquer tecla a vários v_keys obscuros, que incluem as teclas modificadoras em teclados japoneses/asiáticos. Um uso criativo e reaproveitado dessas chaves modificadoras obscuras poderia potencialmente preencher a lacuna entre as discrepâncias entre os sistemas operacionais que mencionei anteriormente; mas não existe uma maneira direta ou óbvia de implementar isso. Acredito que um teclado do Windows pode tecnicamente ter até 15 estados/níveis/camadas separados de teclas shift/modificadoras! Uma delas (tecla Kana) pode ser travada/alternável, como caps lock. Os teclados funcionam sem nenhum software adicional ou de terceiros. Mas não existe nenhuma ferramenta para portá-los para Mac ou Linux, é claro.
Mosquetãoé o análogo mais próximo do MacOS, embora tenha uma premissa completamente diferente e não tenha nada a ver diretamente com layouts de teclado em si; embora tenha uma linguagem nativa baseada em xml que torna possível criar teclas modificadoras personalizadas e comportamento de teclas (como fazer com que uma tecla modificadora produza um caractere se tocada sozinha e não usada como modificador, e assim por diante). Embora para que um modificador personalizado seja útil, todas as saídas desejadas possíveis devem ser programadas manualmente usando uma linguagem não projetada especificamente para tal propósito. Mas é extremamente versátil e poderoso e pode realizar alguns truques e funções muito interessantes de baixo nível. Também é grátis!
Ukeleleé uma ferramenta gratuita para MacOS que gera arquivos e pacotes de layout de teclado nativos. Possui uma interface muito mais poderosa e intuitiva que o MSKLC e um fórum muito útil, frequentemente visitado pelo desenvolvedor. Também é propriedade da SIL, embora não seja de código aberto. Seria bom ver alguma integração da GUI do Ukelele no pacote Keyman Developer; para criar chaves mortas, por exemplo. E claro, não pode importar ou exportar layouts de outras plataformas.
Responder2
Sim, e é bastante simples.
Mac OS No Mac OS tudo está integrado, instruções simples e passo a passo podem ser encontradasaqui
janelas A Microsoft oferece uma lista de instruções própria aqui: http://msdn.microsoft.com/en-us/goglobal/bb964665.aspx
Linux Criando um layout de teclado Linux personalizado com a ajuda dexkb.
Uma pergunta semelhante foi feita uma vez no StackOverflow: https://stackoverflow.com/questions/826986/how-to-make-a-custom-keyboard-layout