Estou usando o teclado padrão dos EUA no Linux, mas às vezes preciso de caracteres especiais alemães. Fiz minha própria versão do us
arquivo na usr/share/X11/xkb/symbols
pasta que tem os caracteres adicionados. Isso funciona, mas sempre é substituído quando há atualizações.
Eu vi que há, por exemplo, um layout "alemão, sueco e finlandês (EUA)" (de_se_fi) no us
arquivo. Então eu pensei que vou tentar esse em vez disso. No entanto, não consigo encontrar nenhuma das variantes "alemãs" do teclado americano nas configurações para selecioná-las.
Atualizar
Descobri que talvez esteja faltando em usr/share/X11/xkb/rules/base.lst
, então tentei adicioná-lo:
Estas são as linhas em usr/share/X11/xkb/symbols/us
:
// German and Swedish characters added as third level symbols to the US keyboard layout
// Author: Stephan Lachnit <[email protected]>, 2019
// the german umlauts are placed over the characters without diaeresis, the sharp-s over the s
// the swedish ao is placed over the p, since it's closed to the position on a swedish keyboard
// the euro sign is placed over the e, as it is usual for german and swedish keyboards
partial alphanumeric_keys
xkb_symbols "de_se_fi" {
include "us(basic)"
include "eurosign(e)"
name[Group1] = "German, Swedish and Finnish (US)";
key <AC01> {[ a, A, adiaeresis, Adiaeresis ]};
key <AC02> {[ s, S, ssharp, U1E9E ]};
key <AD01> {[ q, Q, at ]};
key <AD07> {[ u, U, udiaeresis, Udiaeresis ]};
key <AD09> {[ o, O, odiaeresis, Odiaeresis ]};
key <AD10> {[ p, P, aring, Aring ]};
key <AD12> {[ bracketright, braceright, asciitilde ]};
include "level3(ralt_switch)"
};
Eu adicionei esta linha a base.lst
(na ! variant
seção):
de_se_fi us: German, Swedish and Finnish (US)
Eu também tentei criar meu próprio layout usr/share/X11/xkb/symbols/cust_us_de
:
default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1]= "Custom US/DE Keyboard Layout";
include "us(basic)";
include "eurosign(e)";
key <AC01> {[ a, A, adiaeresis, Adiaeresis ]};
key <AC02> {[ s, S, ssharp, U1E9E ]};
key <AD07> {[ u, U, udiaeresis, Udiaeresis ]};
key <AD09> {[ o, O, odiaeresis, Odiaeresis ]};
};
e adicionando esta linha a base.lst
(na ! layout
seção):
cust_us_de Custom US/DE Keyboard Layout
Ambos não aparecem quando eu os procuro em Configurações → Teclado → Fontes de entrada (também não após uma reinicialização)
Existe uma maneira de testar se um arquivo de layout (por exemplo usr/share/X11/xkb/symbols/cust_us_de
, ) está funcionando ou causando um erro? Ou uma maneira de ver quais layouts/variantes base.lst
estão realmente carregados?
Preciso reiniciar ou outros enfeites para que as alterações aconteçam, depois de editar um dos arquivos mencionados acima? Ou é suficiente fechar e abrir a caixa de diálogo de configurações?
Sistema: Manjaro Gnome (wayland)
A última vez que verifiquei, infelizmente não há como fazer isso localmente de maneira fácil. Iirc você precisa adicionar seu layout
/usr/share/X11/xkb/rules/base.extras.xml
. No entanto, isso será substituído em cada atualização.Veja este commit para um exemplo: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/commit/3deb5d2214e2fe7fbf1c4bb259c1c5fd90619290
Então você precisa atualizar o cache, em distribuições baseadas em Debian você faz isso com
sudo dpkg-reconfigure xkb-data
, senão tentesudo rm /var/lib/xkb/*.xkm
.Como parece que você deseja usar apenas um subconjunto, recomendo que você o use e ignore as outras chaves.
Alguns layouts estão ocultos com a configuração padrão no Gnome. Para fazer, por exemplo, “alemão, sueco e finlandês (EUA)” aparecer nas configurações do Gnome, basta acessar:
Gnome Tweaks → Teclado e Mouse e ative “Mostrar Fontes de Entrada Estendidas”.
Após reiniciar (logout, login) do Gnome, você pode encontrá-lo nos layouts de teclado em “Inglês (Estados Unidos)” com a subentrada “Alemão, Sueco e Finlandês (EUA)”.
Crédito para jxn