한 가지 솔루션은 데스크탑에 로그인 할 때 실행되고 dbus 메시지를 포착하는 스크립트입니다. 일시 중단에서 다시 시작한 후 화면이 잠기고 암호를 입력하면 dbus에 잠금 해제 이벤트가 있습니다.
(올바른 트랙을 찾아 주신 Kim SJ에게 감사합니다. ScreenSaver 신호는 없지만 사용할 다른 인터페이스를 찾았습니다)
에서 ~/.config/autostart/
, 나는 bash는 스크립트를 시작하는의 .desktop 파일이 있습니다 :
$ cat ~/.config/autostart/mymonitor.desktop
[Desktop Entry]
Categories=System;Monitor;
Comment=Monitor dbus for unlock signals
Exec=/usr/local/bin/unlock_monitor
Name=unlock_monitor
Type=Application
unlock_monitor
모니터 스크립트에서 DBUS 메시지를 읽어 com.canonical.Unity.Session
와에 물건을 수행 Unlocked
신호 :
#!/bin/bash
dbus-monitor --session "type=signal,interface=com.canonical.Unity.Session" --profile \
| while read dbusmsg; do
if [[ "$dbusmsg" =~ Unlocked$ || "$dbusmsg" =~ NameAcquired$ ]] ; then
sleep 5
notify-send "$(basename $0)" "Unlocked or freshly logged in..."
# ...
fi
done
로그인 할 때 "잠금 해제"신호는 없지만 dbus-monitor
시작 시 "NameAcquired"신호 가 있습니다.
users
다른 사용자가 로그인하지 않았다고 가정하여을 사용할 수 있습니다 . 또는 중요하지 않습니다.