Chave personalizada para alternar o layout do teclado

4

Eu quero definir a chave para alternar o idioma do meu teclado para "'", mas não tenho essa opção em "Keyboard Layout" no Unity, no Ubuntu 12.04. Eu já vi esta resposta , mas isso não me ajuda. Você pode me orientar sobre como usar o setxkbmap? (se esse é o caminho a percorrer). Obrigado!

    
por Dimitris Tzortzis 24.05.2012 / 18:26

2 respostas

4

Aqui está uma maneira fácil de fazer isso, mas você está limitado a quais atalhos você pode usar. Abra "Configurações do Sistema" - > "Teclado". Clique em "Configurações de layout", perto da parte inferior. Clique no botão + para adicionar os idiomas de que você precisa. Em seguida, clique em "Opções ..." Lá você pode definir os combos chave que você precisa, selecionando "Key (s) para alterar o layout". Se desejar, você também pode optar por usar um LED de teclado para mostrar quando estiver usando o layout alternativo (como bloqueio de rolagem) em "Usar LED do teclado para mostrar um layout alternativo".

Aqui está a maneira um pouco mais envolvida, mas lhe dará mais flexibilidade para a combinação de teclas. Primeiro, copie e cole este script que escrevi e nomeie-o como kb_toggle.sh. Certifique-se de editar LANG1 e LANG2 para serem os códigos de layout de teclado que você precisa.

#!/bin/bash

LANG1="us"
LANG2="de"
CURRENT_LANG=$(setxkbmap -query | tail -n 1 | cut -f6 -d ' ')
if [ "$CURRENT_LANG" = $LANG1 ]; then
    setxkbmap $LANG2
else
    setxkbmap $LANG1
fi

faça o arquivo clicando com o botão direito nele - > "Propriedades" - > "Permissões", em seguida, selecione "Permitir a execução do arquivo como programa.

Agora, abra "Configurações do sistema" - > "Teclado" - > "Atalhos" e selecione "Atalhos personalizados". Clique no botão + na parte inferior e nomeie o atalho "Keyboard Toggle" ou o que você quiser, realmente. Em seguida, forneça o caminho completo para o script que você criou anteriormente na caixa de comando. Clique em Aplicar. Clique onde diz "Disabled", então você pode definir o atalho para o que quiser, clicando na combinação de teclas!

Mais uma coisa. Eu não acho que ele vai deixar você configurá-lo para uma única chave, como " ", you may have to do SHIFT+ ou algo parecido.

    
por reverendj1 24.05.2012 / 19:15
1

Primeiro: Muito obrigada Reverendj1 pelo seu roteiro - você é demais! Eu tenho lutado para encontrar uma resposta a respeito de porque as seleções de "chave (s) para alterar o layout" estão sendo totalmente ignoradas. Como Dimitris disse, não é uma resposta, mas é um bom trabalho.

Importante: Eu tive que mudar uma coisa no seu script.
- Em 12.04 minha linha final da saída setxkbmap -query imprime "options: grp: ...". Então, eu usei um pipe para grep "layout" em vez do comando "tail -n1". Então, o script parece assim:

#!/bin/bash
LANG1="us"
LANG2="de"
# CURRENT_LANG=$(setxkbmap -query | tail -n 1 | cut -f6 -d ' ') # OLD LINE
CURRENT_LANG=$(setxkbmap -query | | grep "layout" | cut -f6 -d ' ')
if [ "$CURRENT_LANG" = $LANG1 ]; then
    setxkbmap $LANG2
else
    setxkbmap $LANG1
fi

NB: Se alguém alterar o número de espaços na linha "layout: us", a opção -f6 não retornará "us". Isso provavelmente terá que ser corrigido no futuro.

Mais uma vez, muito obrigado por essa correção. Eu posso trabalhar com muito mais eficiência agora. ** Desculpe, isso foi excessivamente prolixo

    
por coredump1101 08.07.2013 / 08:04