Доброго времени.
пытаюсь "засистемдешить" вот такой вот скрипт(вчера обсуждали):
#!/bin/bash
#prints out, among other things;
# string "org.kde.screensaver"
#transform it to 'org.kde.screensaver'
service=$(\
dbus-send \
--session \
--dest=org.freedesktop.DBus \
--type=method_call \
--print-reply \
/org/freedesktop/DBus org.freedesktop.DBus.ListNames \
| grep -o '[^"]*.screensaver'
)
#prints out, among other things;
#method bool org.freedesktop.ScreenSaver.SetActive(bool e)
#transform it to 'org.freedesktop.ScreenSaver'
interface=$(
qdbus \
$service /ScreenSaver \
| grep -oP '[^ ]*(?=.SetActive)'
)
path='/ScreenSaver'
#monitor it with a while loop
dbus-monitor "type='signal',interface='$interface',member='ActiveChanged',path='$path'" \
| while read -r line; do
#ignore the metadata and pull the 'boolean <true/false>' line
read line
#check if it is set to true
if echo $line | grep -q 'true'; then
# echo "Locked at $(date)"
setxkbmap -layout "us"
else
setxkbmap -layout "us,ru"
# echo "Unlocked at $(date)"
fi
done
пишу во такой юнит:
[Unit]
Description=keyboard language switch on screen lock
[Service]
ExecStart=/usr/local/bin/kb-lock-switch
Restart=on-failure
Environment=DISPLAY=:0
[Install]
WantedBy=
default.targetв моем далеком от администрирования понимании все вроде как должно работать. Сервис стартует, журнал пустой, эффекта нет. (если самому реками скрипт запустить все работает прекрасно). Не могу понять что ему нужно еще?