Como posso adicionar uma sequência de teclas de composição personalizada?

40

Como posso adicionar uma sequência de teclas de composição personalizada?

Por exemplo, eu gostaria Compose, |, >digitar o símbolo.

Tentei adicionar o seguinte a ~/.XCompose:

# Import default rules from the system Compose file
include "%L"

# Custom definitions
<Multi_key> <bar> <greater> : "▸" U25B8 # Black right-pointing small triangle

mas a nova sequência não pode ser usada em nenhum lugar, exceto no xterm.

Instalar o ibus-table-composite e, em seguida, ativar o método de entrada Compose no IBus não resolveu o problema; O IBus imitou muitas seqüências-chave de composição, mas não a que eu havia criado.

ændrük
fonte
Como você digita o símbolo agora? Você provavelmente pode mapear o comando usado para digitar o símbolo para teclas específicas no layout do teclado. Para encontrar o código exato de uma chave específica, você pode usar xev. Mas é claro, esse é apenas o meu palpite.
Nitin Venkatesh
3
@nitstorm eu digitei-lo pressionando AltGr +>, que é um mapeamento personalizado que eu definir adicionando o keysym U25B8para keycode 60no ~/.xmodmaprc. Não estou perguntando como digitar ▸; Estou perguntando como criar uma sequência de teclas de composição para ele.
ændrük

Respostas:

7

Crie um arquivo ~/.XCompose(ou seja, um arquivo chamado .XComposena pasta "home") que contém o seguinte:

include "%L"   # import the default Compose file for your locale
<Multi_key> <bar> <greater>     : "▸"

Veja man 5 Composepara mais informações sobre o formato deste arquivo.

JanC
fonte
2
Arrumado! Existe alguma maneira de reler esse arquivo sem reiniciar o X?
Jeremy Kerr
11
Parece promissor, mas meu ~/.XComposearquivo não parece ter efeito mesmo após a reinicialização. Você conseguiu que isso funcionasse?
ændrük
@ Jeremy: Não tenho certeza, mas talvez alterar o layout do teclado para outro layout e depois voltar possa funcionar.
janc
11
@ ændrük: Parece que me lembro que o Gtk / GNOME mexe estupidamente com as configurações de composição de teclas (você pode testar se a nova combinação de teclas de composição compõe-se, por exemplo, no xterm para confirmar que este é o caso). Parece que me lembro que a solução alternativa tinha algo a ver com a seleção de um método de entrada alternativo que ignora a medula problemática; talvez fazer uma nova pergunta sobre isso, porque não é apenas útil para isso, mas IIRC Ele também corrige locale-specific mapeia Compose, etc;)
janc
11
A partir de pelo menos 18.04 LTS, esta resposta deve funcionar agora sem a necessidade de alterar os métodos de entrada.
ændrük
22
  1. Crie um arquivo nomeado .XComposeem seu diretório pessoal ( ~/.XCompose), que contém:

    # import the default Compose file for your locale
    include "%L"
    
    <Multi_key> <bar> <greater>  : "▸"
    

    Veja man 5 Composepara mais informações sobre o formato deste arquivo.

  2. Adicione o seguinte a ~/.profile:

    export GTK_IM_MODULE="xim"
    

    No Ubuntu 18.04 (talvez outros), você pode precisar usar o seguinte:

    export GTK_IM_MODULE="gtk-im-context-simple"
    
  3. Faça logoff e logon novamente. Ou reinicie o X. Ou reinicie.

dan_waterworth
fonte
3
Percebi que, com esta solução, não posso mais usar Ctrl-Shift-u para inserir caracteres unicode por número; então entendo que isso muda algo geral das coisas do Gnome para as coisas do X que são configuradas pelo arquivo ~ / .XCompose. Existe também uma maneira de modificar as coisas do Gnome? Eu gostaria de manter esse recurso Ctrl-Shift-u.
Alfe 28/01
2
@Alfe Usando o UIM como sugerido na parte inferior dos fóruns do Ubuntu: O arquivo .XCompose não lido no 11.04 O GNOME funciona para mim com as configurações padrão no Debian jessie / sid (veja im-config(8) para personalização). Ou seja, as configurações .XCompose estão funcionando nos aplicativos GTK (GNOME) e Qt (KDE), e .XCompose e Ctrl + Shift + U estão trabalhando nos aplicativos GTK (como o Eclipse).
PointedEars
Obrigado! Então você acabou apt-getdo uimpacote ou se você tem que configurar alguma outra coisa?
Alfe
11
Tentei colocar isso em funcionamento já há algum tempo, mas sem sucesso. Seria muito útil ouvir o que exatamente você fez além de instalar o pacote uim. Pelo menos isso pode ajudar a garantir que seu caminho não funcione no Ubuntu 12.04.
Alfe
@dan_waterford Olá, acabei de fazer esta pergunta aqui e tive "possível duplicação" para esta pergunta. No entanto, tentei sua resposta e não consegui fazê-la funcionar. Alguma ideia? :)
Owen_R
9

No Ubuntu 14.04, fiz o seguinte:

1) Instalada uimusando o Gerenciador de Software, outros pacotes como uim-xim, uim-gtk2, uim-gtk3e uim-qtsão auto instalado. Veja https://launchpad.net/ubuntu/+source/uim .

2) Variáveis ​​ambientais definidas adicionando as próximas linhas a ~/.profile, dessa maneira as seqüências de teclas de composição personalizadas se aplicam apenas ao usuário atual:

# Restart the X-server after making alterations using:
# $ sudo restart lightdm
# It seems only GTK_IM_MODULE or QT_IM_MODULE needs to be defined.
export GTK_IM_MODULE="uim"
export QT_IM_MODULE="uim"

O ~/.XComposearquivo-do OP deve funcionar após reiniciar 1) Ubuntu ou 2) apenas o servidor X executando o seguinte comando em um terminal:

$ sudo restart lightdm

Nota: Reiniciar apenas parece necessário após a alteração do ~/.profilearquivo; as alterações ~/.XComposeserão efetivadas na próxima vez que um aplicativo (Terminal, Gedit, etc.) for iniciado.

Para verificar se as variáveis ​​ambientais estão definidas corretamente, digite o seguinte comando no seu terminal:

$ printenv | grep IM_MODULE

Muito obrigado a:

Sobre sequências de teclas de composição personalizadas:

Sobre o mapeamento de teclado personalizado:

.XcomposeArquivos de exemplo para imitar Window US Internationalteclados:

lmeurs
fonte