J'ai un script qui est exécuté pour que la suspension / reprise fonctionne dans mon ordinateur portable. Puis - je une autre série de xinput
, xkbset
et des xmodmap
commandes qui sont exécutées lorsque je lance une session pour avoir défilement à deux doigts et des raccourcis clavier mis en place. Lorsque je reprends la suspension, le défilement à deux doigts et les raccourcis clavier ne fonctionnent pas. J'ai besoin d'exécuter manuellement les commandes dans le deuxième fichier à nouveau. Comment puis-je les ajouter au script de suspension / reprise pour que cela soit fait automatiquement? Voir ci-dessous:
suspendre / reprendre le script
/etc/pm/sleep.d/20_custom-ehci_hcd
#!/bin/sh
#inspired by http://art.ubuntuforums.org/showpost.php?p=9744970&postcount=19
#...and http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug
# tidied by tqzzaa :)
VERSION=1.1
DEV_LIST=/tmp/usb-dev-list
DRIVERS_DIR=/sys/bus/pci/drivers
DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd
HEX="[[:xdigit:]]"
MAX_BIND_ATTEMPTS=2
BIND_WAIT=0.1
unbindDev() {
echo -n > $DEV_LIST 2>/dev/null
for driver in $DRIVERS; do
DDIR=$DRIVERS_DIR/${driver}_hcd
for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do
echo -n "$dev" > $DDIR/unbind
echo "$driver $dev" >> $DEV_LIST
done
done
}
bindDev() {
if [ -s $DEV_LIST ]; then
while read driver dev; do
DDIR=$DRIVERS_DIR/${driver}_hcd
while [ $((MAX_BIND_ATTEMPTS)) -gt 0 ]; do
echo -n "$dev" > $DDIR/bind
if [ ! -L "$DDIR/$dev" ]; then
sleep $BIND_WAIT
else
break
fi
MAX_BIND_ATTEMPTS=$((MAX_BIND_ATTEMPTS-1))
done
done < $DEV_LIST
fi
rm $DEV_LIST 2>/dev/null
}
case "$1" in
hibernate|suspend) unbindDev;;
resume|thaw) bindDev;;
esac
Touches de défilement à deux doigts et script de raccourcis clavier
xinput set-int-prop "SynPS/2 Synaptics TouchPad" "Two-Finger Scrolling" 8 1
xinput set-int-prop "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Scrolling" 8 1 1
xinput set-int-prop "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Pressure" 32 10
xinput set-int-prop "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Width" 32 8
setxkbmap -layout gb
xkbset m
xkbset exp =m
xmodmap -e "keycode 135 = Pointer_Button2"
scripts
suspend-resume
session
719016
la source
la source
Réponses:
Vous pouvez placer vos scripts dans le
/etc/pm/sleep.d
répertoire pour les exécuter après la suspension. Vous devrez ajouter une condition pour que votre script ne s'exécute que pendant la reprise, pas plus que pendant le processus de suspension. Par exemple, votre script de pavé tactile ressemblerait à ceci:Assurez-vous que votre script est marqué comme étant globalement exécutable et remplacez $ USER par le nom d'utilisateur correspondant.
Vous trouverez des informations plus détaillées dans la page de manuel pm-suspend (
man pm-suspend
) ou en consultant la documentation/usr/share/doc/pm-utils
(en particulier/usr/share/doc/pm-utils/HOWTO.hooks.gz
).la source
/lib/systemd/system-sleep/
'/lib/systemd/system-sleep/
place de/etc/pm/sleep
.pre
avant d'entrer suspendre etpost
après reprendre au lieu desuspend
etresume
Sur Ubuntu 16.04, je devais créer un service de cette façon:
créer un fichier
mettre dedans
activer le service
(facultatif) si ne fonctionne pas après la reprise de susp> contrôlez les erreurs avec
la source
Ouvrez ce fichier:
Contenu:
Votre commande sera exécutée avec les privilèges d'administrateur .
la source