![Opções de layout de teclado do Gnome Tweak Tools - definidas apenas para teclado Bluetooth?](https://rvso.com/image/1071706/Op%C3%A7%C3%B5es%20de%20layout%20de%20teclado%20do%20Gnome%20Tweak%20Tools%20-%20definidas%20apenas%20para%20teclado%20Bluetooth%3F.png)
Tenho esta configuração útil habilitada no Tweak Tools quando uso um irritante teclado mágico externo da Apple:
Essa configuração faz com que o teclado funcione normalmente, na minha opinião (a supertecla está à direita da tecla de controle).
No entanto, essa configuração na ferramenta de ajuste também afeta o mapa de teclado do meu laptop. De alguma forma, posso fazer essa configuração apenas para este irritante teclado mágico externo da Apple?
Responder1
Você poderia usar xkbcomp
, e o processo detalhado é descritoaqui. Você tem que encontrar os códigos para as chaves serem remapeadas. Outras respostas no mesmo OP podem ser úteis.
xkeycaps
pode ser útil.
Relacionado>
- Como faço para remapear determinadas chaves ou dispositivos?
- https://dev.to/0xbf/remap-keys-in-the-keyboard-in-ubuntu-5a36
- http://www.fascinatingcaptain.com/projects/remap-keyboard-keys-for-ubuntu/
- (Em comentário de Pablo Bianchi)https://superuser.com/questions/277990/how-do-i-swap-alt-and-windows-keys-with-xmodmap
- (Em comentário de Pablo Bianchi)https://unix.stackexchange.com/questions/86933/swap-alt-and-super
Responder2
Isso, como um todo, é uma resposta #!^, devido à sua falta de integridade, mas eu apenas atribuiria a opção de troca de teclas ao teclado específico com setxkbmap.
xinput
lhe dará o id do seu teclado
wutang@shaolin:~$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ VirtualBox mouse integration id=9 [slave pointer (2)]
⎜ ↳ VirtualBox USB Tablet id=10 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Sleep Button id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
divulgação completa, estou sendo extremamente preguiçoso e não atrapalhando meu virtual para passar no segundo teclado que testei, e ainda mais preguiçoso por não configurar para recortar e colar do host (--> VM) que realmente mostra os 2 teclados. .(s#!^ resposta)
então você só precisa imaginar que há um segundo teclado na minha saída com um ID exclusivo
Se vou alterar apenas um dos meus teclados (teclado AT Translated Set 2):
setxkbmap -device 11 -option altwin:swap_lalt_lwin
Vou presumir que isso não é permanente; provavelmente desaparece se você desconectar o teclado, sair ou desligar.
O sinalizador -option sem fornecer uma opção remove todas as opções.
Responder3
Acontece que meu colega de trabalho teve o mesmo problema. Com sua permissão, aqui está a solução que funcionou imediatamente:
Primeiro execute isso e vá até as informações sobre o teclado Executarcat /proc/bus/input/devices | less
I: Bus=0005 Vendor=004c Product=026c Version=0160
N: Name="Magic Keyboard with Numeric Keypad"
P: Phys=44:e5:17:96:76:24
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:004C:026C.0007/input/input38
U: Uniq=c4:14:11:03:c2:de
H: Handlers=sysrq kbd event20 leds
B: PROP=0
B: EV=120013
B: KEY=10000 0 0 1 1007b00001007 ff9f207ac14057ff ffbeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=1f
Agora construa um id desta forma:
evdev:input:b<bus_id>v<vendor_id>p<product_id>e<version_id>-<modalias>
Onde a versão e as modalidades não importam. Eu entendi isso:
evdev:input:b0005v004Cp026C*
Em seguida, crie este arquivo
etc/udev/hwdb.d/60-applekeyboard.hwdb
Não acho que o nome importe, mas não tenho certeza.
O arquivo deve conter o ID que acabamos de criar e o remapeamento das chaves:
# Apple magic
evdev:input:b0005v004Cp026C*
KEYBOARD_KEY_700e2=leftmeta
KEYBOARD_KEY_700e3=leftalt
Como você encontra os nomes? basta executar, sudo evtest
encontrar seu teclado e pressionar a tecla que deseja alterar. A saída é semelhante a esta:
Event: time 1644400418.762658, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e3
Event: time 1644400418.762658, type 1 (EV_KEY), code 56 (KEY_LEFTMETA), value 1
Use essa saída para construir a chave desejada e alterá-la.
Em seguida, sudo execute estes comandos para atualizar:
systemd-hwdb update
udevadm control --reload-rules
udevadm trigger
Então você terminou.