diff options
author | Que Quotion | 2016-10-20 06:00:59 +0900 |
---|---|---|
committer | Que Quotion | 2016-10-20 06:00:59 +0900 |
commit | cfced81b39a4edd270ece7c7886bf4dfc186f08a (patch) | |
tree | 26a10784fc11f0b3abeb130dedce971f388e65fb | |
parent | 1f218a1ffb8546e2b78d234b28f6155a1f1b7855 (diff) | |
download | aur-cfced81b39a4edd270ece7c7886bf4dfc186f08a.tar.gz |
Two scripts, two startups: one xscreensaver screenlock.
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | PKGBUILD | 36 | ||||
-rw-r--r-- | xscreensaver-dbus-screenlock-freedesktop.desktop | 7 | ||||
-rw-r--r-- | xscreensaver-dbus-screenlock-freedesktop.py (renamed from xscreensaver-dbus-screenlock.py) | 4 | ||||
-rw-r--r-- | xscreensaver-dbus-screenlock-gnome.desktop (renamed from xscreensaver-dbus-screenlock.desktop) | 6 | ||||
-rw-r--r-- | xscreensaver-dbus-screenlock-gnome.py | 28 |
6 files changed, 72 insertions, 29 deletions
@@ -1,7 +1,9 @@ +# Generated by mksrcinfo v8 +# Wed Oct 19 20:57:56 UTC 2016 pkgbase = xscreensaver-dbus-screenlock - pkgdesc = Emulate org.freedesktop.screensaver dbus for integrated screen-locking + pkgdesc = Shell-integrated screen-locking with xscreensaver pkgver = 1 - pkgrel = 3 + pkgrel = 4 url = http://ubuntuforums.org/showthread.php?t=1865593&s=1c7f28c50a3f258e1d3404e41f098a0b&p=11418175#post11418175 arch = i686 arch = x86_64 @@ -12,11 +14,17 @@ pkgbase = xscreensaver-dbus-screenlock depends = gnome-settings-daemon-compat optdepends = indicator-session: Activate "Lock" from indicator provides = gnome-screensaver + provides = light-locker conflicts = gnome-screensaver - source = xscreensaver-dbus-screenlock.py - source = xscreensaver-dbus-screenlock.desktop - md5sums = 4595fc34d3b3f8b620f67d0518c16d58 - md5sums = d334857a577f92413ddf5d16df79c15c + conflicts = light-locker + source = xscreensaver-dbus-screenlock-freedesktop.py + source = xscreensaver-dbus-screenlock-freedesktop.desktop + source = xscreensaver-dbus-screenlock-gnome.py + source = xscreensaver-dbus-screenlock-gnome.desktop + md5sums = c7d3d86def974e678f62f5c778e3abfb + md5sums = 65a7fb8a4d3e8183009e9caffc3e587a + md5sums = a6888ae261adddb56d5ebffbe5487dc7 + md5sums = 90ebf9aabc89691dd20f70c78506daea pkgname = xscreensaver-dbus-screenlock @@ -2,35 +2,35 @@ pkgname=xscreensaver-dbus-screenlock pkgver=1 -pkgrel=3 -pkgdesc="Emulate org.freedesktop.screensaver dbus for integrated screen-locking" +pkgrel=4 +pkgdesc="Shell-integrated screen-locking with xscreensaver" arch=('i686' 'x86_64') url="http://ubuntuforums.org/showthread.php?t=1865593&s=1c7f28c50a3f258e1d3404e41f098a0b&p=11418175#post11418175" license=('GPL') depends=('xscreensaver' 'python' 'dbus' 'gnome-settings-daemon-compat') optdepends=('indicator-session: Activate "Lock" from indicator') -provides=('gnome-screensaver') -conflicts=('gnome-screensaver') -source=('xscreensaver-dbus-screenlock.py' - 'xscreensaver-dbus-screenlock.desktop') -md5sums=('4595fc34d3b3f8b620f67d0518c16d58' - 'd334857a577f92413ddf5d16df79c15c') +provides=('gnome-screensaver' 'light-locker') +conflicts=('gnome-screensaver' 'light-locker') +source=('xscreensaver-dbus-screenlock-freedesktop.py' + 'xscreensaver-dbus-screenlock-freedesktop.desktop' + 'xscreensaver-dbus-screenlock-gnome.py' + 'xscreensaver-dbus-screenlock-gnome.desktop') +md5sums=('c7d3d86def974e678f62f5c778e3abfb' + '65a7fb8a4d3e8183009e9caffc3e587a' + 'a6888ae261adddb56d5ebffbe5487dc7' + '90ebf9aabc89691dd20f70c78506daea') package() { - # Don't install xscreensaver-dbus-screenlock.py script if user has a personalized copy - if [ ! -f "/usr/local/sbin/xscreensaver-dbus-screenlock.py" ]; then - install -Dm755 {${srcdir},${pkgdir}/usr/bin}/xscreensaver-dbus-screenlock.py - fi + install -Dm755 {${srcdir},${pkgdir}/usr/bin}/xscreensaver-dbus-screenlock-freedesktop.py + install -Dm755 {${srcdir},${pkgdir}/usr/bin}/xscreensaver-dbus-screenlock-gnome.py - # This startup script runs in user sesssions with user permissions. - # Because dbus sessions are exclusive, both gnome-session and indicator-session expect this. - # It might be more secure to run the process as root, but users would be locked out of sessions! - # Regardless, gnome-screensaver works just the same way so whatever... - install -Dm644 {${srcdir},${pkgdir}/etc/xdg/autostart}/xscreensaver-dbus-screenlock.desktop + install -Dm644 {${srcdir},${pkgdir}/etc/xdg/autostart}/xscreensaver-dbus-screenlock-freedesktop.desktop + install -Dm644 {${srcdir},${pkgdir}/etc/xdg/autostart}/xscreensaver-dbus-screenlock-gnome.desktop - # Redirect gnome-screensaver-command calls to xscreensaver-command + # Redirect stray calls to xscreensaver-command install -Ddm755 "${pkgdir}/usr/bin/" ln -s /usr/bin/xscreensaver-command "${pkgdir}/usr/bin/gnome-screensaver-command" + ln -s /usr/bin/xscreensaver-command "${pkgdir}/usr/bin/light-locker-command" } diff --git a/xscreensaver-dbus-screenlock-freedesktop.desktop b/xscreensaver-dbus-screenlock-freedesktop.desktop new file mode 100644 index 000000000000..4a5ad183e602 --- /dev/null +++ b/xscreensaver-dbus-screenlock-freedesktop.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Application +Name=Xscreensaver DBus Screenlock +Comment=Intercept light-locker DBus service call for xscreensaver +TryExec=xscreensaver-command +Exec=xscreensaver-dbus-screenlock-freedesktop.py +NotShownIn=Gnome;Unity diff --git a/xscreensaver-dbus-screenlock.py b/xscreensaver-dbus-screenlock-freedesktop.py index 108c0b4259a3..126b35151dcf 100644 --- a/xscreensaver-dbus-screenlock.py +++ b/xscreensaver-dbus-screenlock-freedesktop.py @@ -1,5 +1,5 @@ -#!/usr/bin/env python -# Replace gnome-screensaver DBus service to call xscreensaver +#!/usr/bin/env python2 +# Replace gnome-screensaver or light-locker DBus service to call xscreensaver # http://ubuntuforums.org/showthread.php?t=1865593&s=1c7f28c50a3f258e1d3404e41f098a0b&p=11418175#post11418175 import dbus diff --git a/xscreensaver-dbus-screenlock.desktop b/xscreensaver-dbus-screenlock-gnome.desktop index 86bce98636d8..303a258a0a71 100644 --- a/xscreensaver-dbus-screenlock.desktop +++ b/xscreensaver-dbus-screenlock-gnome.desktop @@ -2,6 +2,6 @@ Type=Application Name=Xscreensaver DBus Screenlock Comment=Intercept gnome-screensaver DBus service call for xscreensaver -TryExec=xscreensaver-dbus-screenlock.py -Exec=xscreensaver-dbus-screenlock.py -NotShownIn=Gnome;Unity +TryExec=xscreensaver-command +Exec=xscreensaver-dbus-screenlock-gnome.py +OnlyShowIn=Gnome;Unity diff --git a/xscreensaver-dbus-screenlock-gnome.py b/xscreensaver-dbus-screenlock-gnome.py new file mode 100644 index 000000000000..8388d87865f5 --- /dev/null +++ b/xscreensaver-dbus-screenlock-gnome.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python2 +# Replace gnome-screensaver or light-locker DBus service to call xscreensaver +# http://ubuntuforums.org/showthread.php?t=1865593&s=1c7f28c50a3f258e1d3404e41f098a0b&p=11418175#post11418175 + +import dbus +import dbus.service +import dbus.glib +import gobject +import subprocess + +class ScreenDbusObj(dbus.service.Object): + def __init__(self): + session_bus = dbus.SessionBus() + #bus_name=dbus.service.BusName("org.freedesktop.ScreenSaver",bus=session_bus) + bus_name=dbus.service.BusName("org.gnome.ScreenSaver",bus=session_bus) + #dbus.service.Object.__init__(self,bus_name, '/org/freedesktop/ScreenSaver') + dbus.service.Object.__init__(self,bus_name, '/org/gnome/ScreenSaver') + + + #@dbus.service.method("org.freedesktop.ScreenSaver") + @dbus.service.method("org.gnome.ScreenSaver") + def Lock(self): + subprocess.Popen(['xscreensaver-command', '-lock']) + + +if __name__ == '__main__': + object=ScreenDbusObj() + gobject.MainLoop().run() |