diff options
author | Que Quotion | 2015-10-24 02:24:52 +0900 |
---|---|---|
committer | Que Quotion | 2015-10-24 02:24:52 +0900 |
commit | f80fd0e76a710d4d20b1954d7770c776aec86b1f (patch) | |
tree | 43af2841236d72081a5e6d688cecf2888193555d | |
download | aur-f80fd0e76a710d4d20b1954d7770c776aec86b1f.tar.gz |
Seriously just take the package.
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | .gitignore | 55 | ||||
-rw-r--r-- | PKGBUILD | 36 | ||||
-rw-r--r-- | xscreensaver-dbus-screenlock.desktop | 7 | ||||
-rw-r--r-- | xscreensaver-dbus-screenlock.py | 24 |
5 files changed, 144 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..78aeace7eea7 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,22 @@ +pkgbase = xscreensaver-dbus-screenlock + pkgdesc = Emulate gnome-screensaver's dbus for integrated screen-locking in gnome-derivatives + pkgver = 1 + pkgrel = 2 + url = http://ubuntuforums.org/showthread.php?t=1865593&s=1c7f28c50a3f258e1d3404e41f098a0b&p=11418175#post11418175 + arch = i686 + arch = x86_64 + license = GPL + depends = xscreensaver + depends = python + depends = dbus + depends = gnome-settings-daemon-compat + optdepends = indicator-session: Activate "Lock" from indicator + provides = gnome-screensaver + conflicts = gnome-screensaver + source = xscreensaver-dbus-screenlock.py + source = xscreensaver-dbus-screenlock.desktop + md5sums = 0a1f60e3834481b1b3043d484d4ffcf7 + md5sums = d334857a577f92413ddf5d16df79c15c + +pkgname = xscreensaver-dbus-screenlock + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..e2220da9a49d --- /dev/null +++ b/.gitignore @@ -0,0 +1,55 @@ +# Compiled source # +################### +*.com +*.class +*.dll +*.exe +*.o +*.so + +# Packages # +############ +# it's better to unpack these files and commit the raw source +# git has its own built in compression methods +*.7z +*.dmg +*.gz +*.iso +*.jar +*.rar +*.tar +*.zip +*.xz + +# Archlinux Packaging # +####################### +*.tar +*.tar.* +*.zip +*.tgz +*.log +*.log.* +*.sig +pkg/ +src/ + +# Logs and databases # +###################### +*.log +*.sql +*.sqlite + +# OS generated files # +###################### +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db +*~ + +# Particulars # +############### + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..5b316279d534 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,36 @@ +# Maintainer: Que Quotion <quequotion@bugmenot.com> + +pkgname=xscreensaver-dbus-screenlock +pkgver=1 +pkgrel=2 +pkgdesc="Emulate gnome-screensaver's dbus for integrated screen-locking in gnome-derivatives" +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=('0a1f60e3834481b1b3043d484d4ffcf7' + 'd334857a577f92413ddf5d16df79c15c') + +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 + + # 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 + + # Redirect gnome-screensaver-command calls to xscreensaver-command + install -Ddm755 "${pkgdir}/usr/bin/" + ln -s /usr/bin/xscreensaver-command "${pkgdir}/usr/bin/gnome-screensaver-command" + +} diff --git a/xscreensaver-dbus-screenlock.desktop b/xscreensaver-dbus-screenlock.desktop new file mode 100644 index 000000000000..86bce98636d8 --- /dev/null +++ b/xscreensaver-dbus-screenlock.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +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 diff --git a/xscreensaver-dbus-screenlock.py b/xscreensaver-dbus-screenlock.py new file mode 100644 index 000000000000..7bf1daf97363 --- /dev/null +++ b/xscreensaver-dbus-screenlock.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +# Replace gnome-screensaver 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.gnome.ScreenSaver",bus=session_bus) + dbus.service.Object.__init__(self,bus_name, '/org/gnome/ScreenSaver') + + @dbus.service.method("org.gnome.ScreenSaver") + def Lock(self): + subprocess.Popen(['xscreensaver-command', '-lock']) + + +if __name__ == '__main__': + object=ScreenDbusObj() + gobject.MainLoop().run() |