Ich habe ein Skript, das ausgeführt wird, damit das Anhalten / Wiederaufnehmen in meinem Laptop funktioniert. Dann habe ich noch eine Reihe von xinput
, xkbset
und xmodmap
Befehle , die ausgeführt werden , wenn ich eine Sitzung initiieren Zwei-Finger - Scrollen und Tastenkombinationen zu haben , einzurichten. Wenn ich aus dem Standby-Modus zurückkomme, funktionieren das Scrollen mit zwei Fingern und meine Tastaturkürzel nicht. Ich muss die Befehle in der zweiten Datei erneut manuell ausführen. Wie kann ich diese dem Suspend / Resume-Skript hinzufügen, damit dies automatisch erfolgt? Siehe unten:
Skript anhalten / fortsetzen
/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
Touchpad-Scrollen mit zwei Fingern und Tastaturkürzel-Skript
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
quelle
quelle
Antworten:
Sie können Ihre Skripte in das
/etc/pm/sleep.d
Verzeichnis stellen, damit sie nach dem Anhalten ausgeführt werden. Sie müssen eine Bedingung hinzufügen, damit Ihr Skript nur während des Fortsetzens und nicht auch während des Unterbrechungsvorgangs ausgeführt wird. Zum Beispiel würde Ihr Touchpad-Skript so aussehen:Stellen Sie sicher, dass Ihr Skript als global ausführbar markiert ist, und ändern Sie $ USER in den entsprechenden Benutzernamen.
Weitere Informationen finden Sie auf der Hilfeseite pm-suspend (
man pm-suspend
) oder in der Dokumentation unter/usr/share/doc/pm-utils
(insbesondere/usr/share/doc/pm-utils/HOWTO.hooks.gz
).quelle
/lib/systemd/system-sleep/
'/lib/systemd/system-sleep/
statt in befinden/etc/pm/sleep
.pre
vor der Eingabe von suspend undpost
nach resume anstelle vonsuspend
undresume
Unter Ubuntu 16.04 musste ich den Dienst folgendermaßen erstellen:
erstelle Datei
reintun
Dienst aktivieren
(optional) Wenn nach dem Fortsetzen nach dem Suspendieren nicht funktioniert, prüfen Sie auf Fehler mit
quelle
Öffnen Sie diese Datei:
Inhalt:
Ihr Befehl wird mit Administratorrechten ausgeführt .
quelle