Saya punya skrip yang dijalankan untuk menunda / melanjutkan bekerja di laptop saya. Kemudian saya memiliki seri lain xinput
, xkbset
dan xmodmap
perintah yang dieksekusi ketika saya memulai sesi untuk memiliki dua jari bergulir dan pintasan keyboard diatur. Saat saya melanjutkan dari penangguhan, pengguliran dua jari dan pintasan keyboard saya tidak akan berfungsi. Saya perlu menjalankan perintah dalam file kedua secara manual lagi. Bagaimana saya bisa menambahkannya ke skrip ditangguhkan / melanjutkan untuk melakukan ini secara otomatis? Lihat di bawah:
menangguhkan / melanjutkan skrip
/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
skrip bergulir dua jari dan skrip pintas keyboard
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
sumber
sumber
Jawaban:
Anda dapat menempatkan skrip Anda di
/etc/pm/sleep.d
direktori untuk menjalankannya setelah ditangguhkan. Anda perlu menambahkan persyaratan untuk membuat skrip Anda berjalan hanya selama resume dan tidak selama proses penangguhan juga. Misalnya, skrip touchpad Anda akan terlihat seperti:Pastikan skrip Anda ditandai dapat dieksekusi secara global dan ubah $ USER ke nama pengguna yang sesuai.
Anda dapat menemukan informasi lebih rinci di halaman pm-suspend (
man pm-suspend
) atau dengan melihat dokumentasi di/usr/share/doc/pm-utils
(khususnya/usr/share/doc/pm-utils/HOWTO.hooks.gz
).sumber
/lib/systemd/system-sleep/
'/lib/systemd/system-sleep/
bukannya/etc/pm/sleep
.pre
sebelum memasuki penangguhan danpost
setelah melanjutkan alih-alihsuspend
danresume
Di Ubuntu 16.04 saya harus membuat layanan dengan cara ini:
buat file
letakkan di dalam
aktifkan layanan
(opsional) jika tidak berfungsi setelah melanjutkan dari penangguhan> periksa kesalahan dengan
sumber
Buka file ini:
Isi:
Perintah Anda akan dijalankan dengan hak istimewa admin .
sumber