4 votes

setkeycodes ne modifie pas le code clé

J'ai une nouvelle installation de 16.04 sur un nouveau Levono Ideapad 500S. J'ai été essayer de faire fonctionner les touches de luminosité et j'ai finalement réussi à brancher la touche de luminosité pour qu'elle fonctionne comme prévu.

Cependant, je dois modifier le code de ma touche de luminosité vers le bas pour que cela fonctionne, mais setkeycodes ne semble rien faire.

La course à pied showkey et en appuyant trois fois sur le bouton de diminution de la luminosité, j'obtiens :

$ sudo showkey -s
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]

press any key (program terminates 10s after last keypress)...
0x9c 
0xe0 0x6f 0xe0 0xef 
0xe0 0x6f 0xe0 0xef 
0xe0 0x6f 0xe0 0xef 

ce qui m'a amené à penser que le scancode de celui-ci est e06f . Toutefois, l'exécution sudo setkeycodes e06f 224 puis en exécutant showkey -k affiche toujours l'ancien code de clé (qui était le 112).

Les setkeycodes ne peuvent-ils pas remplacer un keycode déjà défini à partir d'une autre source ? Si c'est le cas, comment puis-je modifier le code de la touche "brightness down" ?

0voto

Rony Cherian Points 1

setkeycodes modifiera les combinaisons de touches au niveau du noyau lui-même. Ici, il y a un problème de compréhension des valeurs du code de balayage. Pour une pression de touche, c'est : 0x6f et pour la libération, c'est : 0xef . La commande à exécuter est donc :

sudo setkeycodes 6fef 224 

Cette opération permet de modifier la cartographie en fonction de la situation souhaitée.

0voto

Kimbo Points 103

Il m'a fallu un peu de temps pour comprendre le piège que représentait le fait d'essayer de faire des mappings sur un clavier PS/2 avec showkey y setkeycodes .

Comme l'indique la page la page de manuel pour setkeycodes Il y a un problème qui affecte les outils qui rapportent des codes de balayage tels que showkey -s en ce sens qu'ils ne montrent pas les codes de balayage réels qui sont des données appropriées pour le setkeycodes :

Dans les noyaux 2.6, le mode brut, ou mode scancode, n'est pas très brut du tout.

Après s'être appuyé sur les résultats de showkey -s pendant un certain temps et en remarquant que mes mappages de touches existantes ne fonctionnaient pas et que d'autres touches que je n'avais pas pensé modifier étaient modifiées, j'ai fini par réaliser que les codes de balayage provenant de showkey -s étaient le facteur commun aux cas problématiques.

Au lieu de cela, si vous devez utiliser showkey , utiliser des showkey (sans -s ) pour trouver le code clé mappé actuel pour la clé, et remonter dans le tableau à partir de getkeycodes pour connaître le code de balayage de la clé. S'il existe plusieurs codes de balayage associés au même code clé, il peut être nécessaire de faire preuve d'un peu d'ingéniosité ou de procéder par essais et erreurs pour trouver le bon code de balayage pour la clé.

Vous pouvez également vous fier à d'autres sources d'information sur les codes de balayage, telles que atkbd les messages du journal dans dmesg sortie (utiliser dmesg -w à suivre dmesg ), ou les codes de balayage rapportés par evtest si votre système utilise le cadre des périphériques d'événements.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X