J'utilise Lubuntu. Je souhaite ajouter un raccourci pour activer (activer et désactiver) le pavé tactile.
Je sais que je dois éditer le fichier XML dans ~/.config/openbox (dans mon cas, c'est lubuntu-rc.xml) comme décrit ici et ici
Je veux qu'il se déclenche lorsque Fn et F5 sont enfoncés (une icône sur le pavé tactile est présente sur mon Dell, je suppose donc que cela déclenche également la création d'un raccourci clavier x86, mais je ne sais pas si c'est le cas)
sur ma machine
synclient TouchPadOff=1
éteint le touchpad, et
synclient TouchPadOff=0
l'allume à nouveau.
La commande
synclient
sans aucune option, retourne cette liste
Parameter settings:
LeftEdge = 300
RightEdge = 1700
TopEdge = 210
BottomEdge = 1190
FingerLow = 12
FingerHigh = 15
MaxTapTime = 180
MaxTapMove = 107
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
EmulateMidButtonTime = 75
EmulateTwoFingerMinZ = 141
EmulateTwoFingerMinW = 7
VertScrollDelta = 48
HorizScrollDelta = 48
VertEdgeScroll = 1
HorizEdgeScroll = 0
CornerCoasting = 0
VertTwoFingerScroll = 1
HorizTwoFingerScroll = 0
MinSpeed = 1
MaxSpeed = 1.75
AccelFactor = 0.0819336
TouchpadOff = 0
LockedDrags = 0
LockedDragTimeout = 5000
RTCornerButton = 2
RBCornerButton = 3
LTCornerButton = 0
LBCornerButton = 0
TapButton1 = 1
TapButton2 = 3
TapButton3 = 0
ClickFinger1 = 1
ClickFinger2 = 1
ClickFinger3 = 0
CircularScrolling = 0
CircScrollDelta = 0.1
CircScrollTrigger = 0
CircularPad = 0
PalmDetect = 0
PalmMinWidth = 10
PalmMinZ = 100
CoastingSpeed = 20
CoastingFriction = 50
PressureMotionMinZ = 15
PressureMotionMaxZ = 80
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
ResolutionDetect = 1
GrabEventDevice = 1
TapAndDragGesture = 1
AreaLeftEdge = 0
AreaRightEdge = 0
AreaTopEdge = 0
AreaBottomEdge = 0
HorizHysteresis = 12
VertHysteresis = 12
ClickPad = 0
comme vous pouvez le voir, il y a la ligne "TouchpadOff = 0".
Donc, ce que je demande en gros, c’est quelqu'un qui sait comment utiliser grep et les expressions régulières pour me dire comment écrire un script Shell qui lit la sortie de snyclient et exécute "synclient TochPadOff = 0" ou "synclient TochPadOff = 1" en conséquence .
Si trouvé ceci script qui fait quelque chose de très similaire , mais je me bats sur la partie grep.
Si trouvé un script à bascule générique , mais je pense que la recherche d'informations est plus propre.
Je sais aussi déjà comment lier un script de shell à un raccourci clavier à partir de cet exemple.
aide grandement appréciée.
Cela fonctionne pour moi:
#!/bin/sh
TOGGLE=$HOME/.toggle
if [ ! -e $TOGGLE ]; then
touch $TOGGLE
synclient TouchPadOff=1 &
else
rm $TOGGLE
synclient TouchPadOff=0 &
fi
exit 0
Il ne semble pas y avoir besoin de grep
. En outre, je ne suis pas trop sûr que Openbox aime Fn dans n'importe quel rc.xml mais voir réponse de Nivatius pour savoir comment utiliser les pressions de touche impliquant Fn. J'ai seulement utilisé Super, Control, Alt, et Shift. Je peux lier ce script à Control+Shift+F5, par exemple.
<keybind key="C-S-F5"> # Toggle touchpad
<action name="Execute"><command>/home/dkb/bin/toggle-touchpad</command></action>
</keybind>
Voici ce que j'ai placé dans mon ~/.config/openbox/lubuntu-rc.xml
<keybind key='XF86TouchpadToggle'>
<action name='Execute'>
<command>bash -c "synclient TouchpadOff=$(expr \( $(synclient | grep TouchpadOff | cut -d = -f 2) + 1 \) % 2)"</command>
</action>
</keybind>
COMMENTAIREsynclient
(deuxième): liste les paramètres actuelsgrep
: sélectionne la ligne se rapportant au Touchpadcut -d = -f 2
: n'obtient que la partie après "="expr \( ... + 1 \) %2
: incrémente de 1 et récupère le rappel de division par 2 (c.-à-d. Bascule 0/1)synclient TouchpadOff=
: définit TouchpadOff sur le résultat ci-dessusbash -c "..."
: assurez-vous que tout ce qui précède est exécuté dans un shell bash.
De cette façon, je n'ai pas besoin d'un script shell séparé. Mais vous pouvez facilement tout mettre dans un script si vous préférez.
Je me suis installé pour cette solution:
scénario
# This Shell script is PUBLIC DOMAIN. You may do whatever you want with it.
TOGGLE=$HOME/.touchpadtoggle
if [ ! -e $TOGGLE ]; then
touch $TOGGLE
synclient TouchpadOff=1
else
rm $TOGGLE
synclient TouchpadOff=0
fi
fichier de configuration
<!-- toggle touchpad with fn key fn+F5 -->
<keybind key="XF86TouchpadToggle">
<action name="Execute">
<command>~/scripts/touchpadtoggle.sh</command>
</action>
</keybind>
Le chemin en commande, bien sûr, doit pointer vers votre script
J'ai utilisé xev pour trouver le code XF de fn + F5:
lancez xev, appuyez sur les touches Fn et F5, puis fermez la fenêtre contextuelle, faites défiler la liste vers le haut et recherchez le code d'activation.