summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorQue Quotion2016-10-20 06:00:59 +0900
committerQue Quotion2016-10-20 06:00:59 +0900
commitcfced81b39a4edd270ece7c7886bf4dfc186f08a (patch)
tree26a10784fc11f0b3abeb130dedce971f388e65fb
parent1f218a1ffb8546e2b78d234b28f6155a1f1b7855 (diff)
downloadaur-cfced81b39a4edd270ece7c7886bf4dfc186f08a.tar.gz
Two scripts, two startups: one xscreensaver screenlock.
-rw-r--r--.SRCINFO20
-rw-r--r--PKGBUILD36
-rw-r--r--xscreensaver-dbus-screenlock-freedesktop.desktop7
-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.py28
6 files changed, 72 insertions, 29 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 8828ab16f81c..a90d61f2defa 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 012838dc18a3..182179a5bdc7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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()