Posso alterar os códigos de teclas em um teclado?

Posso alterar os códigos de teclas em um teclado?

Eu tenho um notebook Lenovo com um layout de teclado fora do padrão no qual há uma tecla de barra/pergunta (/?) ao lado do Shift direito, que por padrão br-abnt2 foi mapeado para apóstrofo/aspas ('"). Há também um apóstrofo padrão Chave /quote próxima a 1. Ontem mudei meu br-abnt.map e meus arquivos de layout xorg para corrigir a chave /?.

Hoje testei essas duas chaves xeve elas têm o mesmo código, então não consigo consertar uma sem bagunçar a outra.

É possível alterar os códigos dessas chaves para que possam ser configuradas separadamente? Como posso consertar isso?

EDIT: aqui está a evtestsaída para pressionar primeiro '" e depois /?:

Properties: Testing ... (interrupt to exit) Event: time 1525650895.009067, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1c Event: time 1525650895.009067, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0 Event: time 1525650895.009067, -------------- SYN_REPORT ------------ Event: time 1525650897.410587, type 4 (EV_MSC), code 4 (MSC_SCAN), value 29 Event: time 1525650897.410587, type 1 (EV_KEY), code 41 (KEY_GRAVE), value 1 Event: time 1525650897.410587, -------------- SYN_REPORT ------------ 'Event: time 1525650897.466550, type 4 (EV_MSC), code 4 (MSC_SCAN), value 29 Event: time 1525650897.466550, type 1 (EV_KEY), code 41 (KEY_GRAVE), value 0 Event: time 1525650897.466550, -------------- SYN_REPORT ------------ Event: time 1525650908.301683, type 4 (EV_MSC), code 4 (MSC_SCAN), value 29 Event: time 1525650908.301683, type 1 (EV_KEY), code 41 (KEY_GRAVE), value 1 Event: time 1525650908.301683, -------------- SYN_REPORT ------------ 'Event: time 1525650908.411541, type 4 (EV_MSC), code 4 (MSC_SCAN), value 29 Event: time 1525650908.411541, type 1 (EV_KEY), code 41 (KEY_GRAVE), value 0 Event: time 1525650908.411541, -------------- SYN_REPORT ------------

(o primeiro SYN_REPORT é antes de eu digitar)

Responder1

Use evtestpara descobrir como o kernel os vê. Se eles tiverem scancodes diferentes, a camada de entrada do kernel pode mapeá-los para diferentes códigos-chave, por exemplo, usando oudev hwdb.

informação relacionada