やあ!
私はgnome-screensaverをxscreensaverに置き換えました。これまでのところはうまく動作しますが、ラップトップをサスペンドするとセッションをロックできません。
それを行う方法はありますか?
Ubuntu 10.10 Dell Vostro 1310
ありがとう!
最後に、/ etc/acpi/sleep.sh(未使用のままのようです)で見つけた部分を組み合わせてこれを行う正しい方法を見つけました。Scaineは/ usr/lib/pm-utilsを指しています...
だから私のために働く最終的なスクリプトは次のとおりです:/usr/lib/pm-utils/sleep.d/00xscreensaver
#!/bin/sh
# Lock xscreensaver on resume from a suspend.
# getXuser gets the X user belonging to the display in $displaynum.
# If you want the foreground X user, use getXconsole!
getXuser() {
user=`pinky -fw | awk '{ if ($2 == ":'$displaynum'" || $(NF) == ":'$displaynum'" ) { print $1; exit; } }'`
if [ x"$user" = x"" ]; then
startx=`pgrep -n startx`
if [ x"$startx" != x"" ]; then
user=`ps -o user --no-headers $startx`
fi
fi
if [ x"$user" != x"" ]; then
userhome=`getent passwd $user | cut -d: -f6`
export XAUTHORITY=$userhome/.Xauthority
else
export XAUTHORITY=""
fi
export XUSER=$user
}
if pidof xscreensaver > /dev/null; then
for x in /tmp/.X11-unix/*; do
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
getXuser;
if [ x"$XAUTHORITY" != x"" ]; then
export DISPLAY=":$displaynum"
case "$1" in
resume|thaw)
Sudo -u $XUSER xscreensaver-command -unthrottle
;;
suspend|hibernate)
Sudo -u $XUSER xscreensaver-command -throttle
Sudo -u $XUSER xscreensaver-command -lock
;;
esac
fi
done
fi
実際のxscreensaverコマンドは、(sudoの代わりに)suを介して次のように呼び出すこともできます。
su $XUSER -c "(xscreensaver-command -lock)"
しかし、ログイン時にpam_mountを使用して暗号化されたホームをマウントし、suを使用するとpamがスクリプトでpam_mountのパスワードを要求するため、これは機能しません。
上記の回答は、systemdの導入以来古くなっていることに注意してください。ここで、xscreensaverをロックするには、systemd-sleep(8)
呼び出し規約のヘルパースクリプトを移動して変更するか、 xss-lock のようなヘルパープログラムを使用する必要があります。
私は専門家ではありませんが、/usr/lib/pm-utils/sleep.d/00powersave
を編集して最初にxscreensaver-command --lock
コマンドを追加できると思います。
ただし、これは2回実行されます。一時停止したときに1回、再開したときに再び実行されます。
編集:これはもう少し複雑です(それほどではありません)が、 このスレッド から、/ usr/lib/pm-utils/sleep.dにファイルを作成した方が良いようです実行するコマンド。そのため、端末からのコマンドは次のとおりです。
Sudo gedit /usr/lib/pm-utils/sleep.d/000LockScreensaver
次に、これをファイルに入れて保存します。
#!/bin/sh
# Lock xscreensaver on resume from a suspend.
case "$1" in resume|thaw)
xscreensaver-command --lock ;
esac
そして最後に、
Sudo chmod +x /usr/lib/pm-utils/sleep.d/000LockScreensaver
次に、一時停止を試みて、再開時に機能するかどうかを確認します。