TL;DR
Sob Wayland, posso de alguma forma me vincular AltGr + C
a Ctrl + C
?
Detalhes
Eu basicamente quero fazer esta pergunta , mas para o GNOME em Wayland . Isso significa que as respostas envolvendo AutoKey e xbindkeys não funcionarão, pois nenhuma delas funciona em Wayland.
Fundo
Gostaria de remapear algumas chaves para, em última análise, fazer melhor uso do CapsLock
.
Meu plano é mapear CapsLock
para AltGr
e, em seguida, seguir isso para obter combinações de teclas semelhantes ao vim. No Wayland, esse remapeamento pode ser feito através de arquivos XKB (veja o link).
No entanto, eu também gostaria de usar CapsLock
para copiar/colar. Atualmente, eu tenho mapeado para Ctrl
(usando arquivos XKB). Isso faz CapsLock + C
funcionar sem problemas em todo o sistema, e eu gostaria de preservar isso.
Então: Com CapsLock
mapeado para AltGr
, gostaria Capslock (= AltGr) + C
de atuar como Ctrl + C
.
Minha pergunta
Sob Wayland, posso de alguma forma me vincular AltGr + C
a Ctrl + C
?
(Sem apenas religar AltGr
para Ctrl
, pois isso anularia o propósito)
Um exemplo alternativo com Q
No arquivo XKB para latin /usr/share/X11/xkb/symbols/latin
, o seguinte comportamento é definido para minha Q
chave:
key <AD01> { [ q, Q, at, Greek_OMEGA ] };
Isso indica que a chave tem quatro saídas possíveis:
- Pressionado sozinho, ele produz
q
. - Pressionado com
Shift
, produzQ
. - Pressionado com
AltGr
, produz@
. - Pressionado com
AltGr + Shift
, produzΩ
.
Essencialmente, o que eu gostaria de conseguir é que quando Q
pressionado AltGr
, não produz, @
mas Ctrl + Q
.
Existem várias ferramentas que podem fazer isso, como KMonad , Interception Tools e keyd .
Eu tive sucesso total com
keyd
Wayland, então descrevo o que fiz com isso. Sugiro a leitura do curta o README para inspiração. O demônio pode fazer muito mais do que é usado aqui.A presente solução faz o que eu quero, mas contorna usando o
AltGr
desvio. Ele trataCapsLock
como em todos osControl
lugares, exceto emh ,j ,k , l
, que muda para teclas de seta.1. INSTALAÇÃO
Eu construo
keyd
a partir da fonte, pois isso foi fácil. As próximas linhas primeiro instalam as dependências (incluindo o compilador C), baixam a fonte, compilam e instalam e habilitam como serviço, iniciam e executam na inicialização.Quando terminar, ele informará onde instalou o que para que você possa excluí-lo para desinstalação. Você pode excluir o código-fonte após a instalação.
2. ENCONTRE O NOME DO TECLADO QUE DESEJA REMAP
Você deve encontrar o nome do seu teclado, para que possamos fazer um remapeamento apenas para isso. Corre
e pressione algumas teclas. Ele mostrará o nome do teclado e as teclas pressionadas. Anote o nome. O meu foi
AT Translated Set 2 keyboard
.3. CRIE UM ARQUIVO DE CONFIGURAÇÃO
Onde quer que, faça um arquivo de configuração chamado qualquer. Vamos movê-lo mais tarde. Digamos que você use
~/my_keyboard.conf
.Nele, coloque o seguinte. Os #'ed são comentários que explicam o comportamento definido (está atualizado para v2.1.1. Espero não ter cometido nenhum erro):
4. COPIAR E RENOMEAR O ARQUIVO DE CONFIGURAÇÃO E REINICIAR CHAVE
Em seguida, copiamos a configuração para o local correto e a nomeamos corretamente, ou seja, de acordo com o teclado que queremos remapear.
Em seguida, reiniciamos
keyd
para carregar a nova configuração:Agora você está pronto e funcionando :)
5. UMA DICA: CRIE UM ALIAS PARA COPIAR CONFIG E REINICIAR KEYD
Acabei brincando muito com os arquivos de configuração. Eu os editei em um subdiretório da minha pasta pessoal, depois os copiei e reiniciei.
Para tornar isso menos complicado, em
~/.bash_aliases
, adicionei