Il semble que ce soit libinput qui reçoive un SW_TABLET_MODE
de l'un des dispositifs d'entrée de l'ordinateur portable. Je ne sais pas pourquoi ils désactivent le clavier et le pavé tactile lors de la réception de cet événement, mais je suppose que c'est pour éviter d'appuyer sur des boutons sur les ordinateurs portables, vous pouvez retourner l'écran de façon à ce que le clavier/pavé tactile soit sous l'écran tactile.
Cependant, certains modèles d'ordinateurs portables émettent cet événement même lorsque le clavier n'est pas retourné. Le Dell Precision 5760 possède un périphérique d'entrée "Intel HID switches" qui déclenche cet événement lorsque l'ordinateur portable est déplacé. Ainsi, chaque fois que j'ai déclenché l'accéléromètre, le clavier interne et le pavé tactile ont cessé de fonctionner pendant un certain temps. Avant de revenir en mode ordinateur portable. Ce bogue semble avoir été [corrigé il y a quelques semaines][1], donc espérons qu'il sera bientôt déployé dans une version stable.
D'autres ont suggéré de mettre sur liste noire intel_vbtn
mais cela n'a pas fonctionné pour moi. Probablement à cause d'un pilote différent utilisé. Mais j'ai trouvé une autre solution de contournement, qui est une solution dans libinput pour ce problème exact ; enregistrer une bizarrerie pour le périphérique d'entrée déclenchant le mode tablette : ModelTabletModeSwitchUnreliable
.
Tout d'abord, vous devez déterminer quel périphérique d'entrée déclenche l'alarme. SW_TABLET_MODE
événement. Installez libinput-tools pour vous aider à déboguer le problème :
$ sudo atp install libinput-tools
Maintenant, nous devons enregistrer tous les événements d'entrée avec sudo libinput debug-events
. Démarrez-le, et essayez de déclencher le SW_TABLET_MODE
événement. Cela devrait ressembler à quelque chose comme ceci :
-event27 SW_TABLET_MODE .....
Cela signifie que c'est /dev/input/event27
qui déclenche le mode tablette. Il s'agit probablement d'un numéro différent pour les autres. Dressons la liste des périphériques d'entrée pour en connaître le nom :
$ sudo libinput list-devices
Recherchez le numéro de l'événement que vous avez obtenu plus tôt et notez le numéro de l'événement. nom du dispositif :
Device: Intel HID switches
Kernel: /dev/input/event27
Maintenant, nous avons besoin de quelques identifiants pour les modalias de vos ordinateurs :
$ cat /sys/class/dmi/id/modalias
dmi:bvnDellInc.:bvr1.4.1:bd09/08/2021:br1.4:svnDellInc.:pnPrecision5760:pvr:sku0A5E:rvnDellInc.:rn0FW9DW:rvrA00:cvnDellInc.:ct10:cvr:
La partie que vous choisissez n'a pas vraiment d'importance, mais j'ai choisi svnDellInc.:pnPrecision5760:
puisqu'il comprend le fabricant et le modèle de mon ordinateur.
En tant que root, créez un fichier /etc/libinput/local-overrides.quirks
[QUIRKS DESCRIPTION]
MatchName=*DEVICE NAME*
MatchDMIModalias=dmi:*PART OF MODALIAS*
ModelTabletModeSwitchUnreliable=1
Pour mon Dell Precision 5760, cela ressemble à ceci :
[Precision 5760 Disable Tablet Mode]
MatchName=*Intel HID switches*
MatchDMIModalias=dmi:*svnDellInc.:pnPrecision5760:*
ModelTabletModeSwitchUnreliable=1
Sauvegarder le fichier. Pour vérifier que la bizarrerie correspond à l'appareil, essayez :
$ libinput quirks list /dev/input/event27
Il devrait afficher le ModelTabletModeSwitchUnreliable
bizarrerie.
Redémarrez votre ordinateur, et le SW_TABLET_MODE
doivent être ignorés.