Como fazer com que as aspas duplas se comportem como uma chave morta, exceto quando usada em combinação consigo mesma

14

Quando uso um teclado, espero os seguintes comportamentos (e confio nesses comportamentos):

  • Pressione ", solte" : deve lembrar a tecla como uma chave morta
  • Pressione ", solte ", pressione <space>, solte<space> : deve imprimir"
  • Pressione ", solte ", pressione ", solte" : deve imprimir""

Entendo que esse comportamento é definido por um layout de teclado, então fiz algumas pesquisas.

No layout do teclado "Inglês - EUA com teclas mortas", recebo os 2 principais comportamentos que prefiro, mas o último comportamento não é cumprido e o caractere estranho ¨quando tento isso.

No layout do teclado "Inglês - EUA com teclas desativadas do AltGr", recebo apenas o último comportamento, mas a tecla não se comporta mais.

Como posso modificar o layout do teclado para cumprir os 3 comportamentos que espero quando uso um teclado?

Ferrybig
fonte
Esta pergunta seria muito melhor com alguma motivação.
Joshua
Acredito que sua motivação é evitar aspas duplas incompatíveis em literais de string. Parece um pouco exagerado conseguir isso, modificando o comportamento geral do teclado - isso deve ser tratado pelo IDE usado para qualquer finalidade.
Teukkam # 24/18
2
@ Joshua No meu país, as pessoas cresceram com aulas de informática no Windows, e esses comportamentos de chave morta são o padrão no Windows no meu país. É realmente difícil mudar um hábito que você aprendeu há 20 anos quando você usa o Ubuntu e o Windows ao mesmo tempo. No Windows, o layout do teclado com esse comportamento é chamado "Inglês - Internacional - com teclas mortas"
Ferrybig

Respostas:

12

Depois de tentar maneiras diferentes para esse problema, eu finalmente encontrei uma solução com ajuda no chat para esse problema

A causa raiz do problema é realmente causada pelo fato de o Linux não possuir um dead_apostrophee um dead_quotedblpor padrão; portanto, o "layout de teclado morto" padrão é o mapeamento de uma chave dead_acuteou não morta mapeada ".

Isso significava que esse problema não está sendo corrigido criando seu próprio layout de teclado personalizado, conforme sugerido no bate-papo.

Após mais pesquisas e o momento justo de aprender novas palavras-chave para pesquisar, encontrei esta solução no Unix e Linux StackExchange , o que me ajudou a resolver o problema.

Segui as seguintes etapas listadas nessa resposta:

  1. sudo apt install uim
  2. echo 'export GTK_IM_MODULE="uim"' >> ~/.profile
  3. echo 'export QT_IM_MODULE="uim"' >> ~/.profile
  4. curl 'https://gist.githubusercontent.com/guiambros/b773ee85746e06454596/raw/0ea6d7f7cf9a6ff38b4cafde24dd43852e46d5e3/.XCompose' > ~/.XCompose
  5. Configurar o layout do meu teclado para "Inglês (EUA - intl com teclas mortas)"
  6. Reinicie o Ubuntu (de acordo com os comentários, sair e entrar é suficiente)

Após essas etapas, consegui atender às seguintes expectativas que tinha sobre o teclado:

  • Pressione ", solte" : deve lembrar a tecla como uma chave morta
  • Pressione ", solte ", pressione <space>, solte<space> : deve imprimir"
  • Pressione ", solte ", pressione ", solte" : deve imprimir""
Ferrybig
fonte
4
Sair da sessão e efetuar login novamente deve ser suficiente para permitir que as alterações na configuração do usuário entrem em vigor. Não há necessidade de reiniciar.
David Foerster