diff options
author | Que Quotion | 2022-02-27 03:41:35 +0900 |
---|---|---|
committer | Que Quotion | 2022-02-27 03:41:35 +0900 |
commit | 0957e1845c8dff26a3d5ea7f03c451056030072a (patch) | |
tree | 05199b776d61d822b4f3e51361b4c992fff76666 | |
download | aur-0957e1845c8dff26a3d5ea7f03c451056030072a.tar.gz |
initial commit
-rw-r--r-- | .SRCINFO | 29 | ||||
-rw-r--r-- | PKGBUILD | 37 | ||||
-rwxr-xr-x | compiz-cube-screensaver | 36 | ||||
-rw-r--r-- | compiz-screenlock-freedesktop.desktop | 7 | ||||
-rwxr-xr-x | compiz-screenlock-freedesktop.py | 24 | ||||
-rw-r--r-- | compiz-screenlock-gnome.desktop | 7 | ||||
-rwxr-xr-x | compiz-screenlock-gnome.py | 23 | ||||
-rw-r--r-- | org.freedesktop.ScreenSaver.service | 3 | ||||
-rw-r--r-- | org.gnome.ScreenSaver.service | 3 |
9 files changed, 169 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..7f5114b0b773 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,29 @@ +pkgbase = compiz-cube-screensaver + pkgdesc = Lock screen and rotate compiz cube + pkgver = 1 + pkgrel = 1 + url = http://ubuntuforums.org/showthread.php?t=1865593&s=1c7f28c50a3f258e1d3404e41f098a0b&p=11418175#post11418175 + arch = any + license = GPL + depends = compiz + depends = python + depends = dbus + depends = xdotool + depends = xorg-xinput + conflicts = xscreensaver-dbus-screenlock + source = compiz-screenlock-freedesktop.py + source = compiz-screenlock-gnome.py + source = org.freedesktop.ScreenSaver.service + source = org.gnome.ScreenSaver.service + source = compiz-screenlock-freedesktop.desktop + source = compiz-screenlock-gnome.desktop + source = compiz-cube-screensaver + md5sums = e009d5e8d91e342dfaeb939fddaf4bdd + md5sums = 40b13abfeeaf8d669f44ca34bc836f6c + md5sums = fe39d0e389e764664d8fd610c59ebb91 + md5sums = 0d1ff939325131594c8c0eb1342b3ebe + md5sums = 2460d93a56b4f5db5ec5d8876d12f0e9 + md5sums = 52ed67b09a878086f41fdc250fbfcc20 + md5sums = 4ef4564b256a445348345b14a83da601 + +pkgname = compiz-cube-screensaver diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..9f6313c61f67 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,37 @@ +# Maintainer: Que Quotion <quequotion@bugmenot.com> +pkgname=compiz-cube-screensaver +pkgver=1 +pkgrel=1 +pkgdesc="Lock screen and rotate compiz cube" +arch=('any') +url="http://ubuntuforums.org/showthread.php?t=1865593&s=1c7f28c50a3f258e1d3404e41f098a0b&p=11418175#post11418175" +license=('GPL') +depends=('compiz' 'python' 'dbus' 'xdotool' 'xorg-xinput') +source=(compiz-screenlock-{freedesktop,gnome}.py + org.{freedesktop,gnome}.ScreenSaver.service + compiz-screenlock-{freedesktop,gnome}.desktop + compiz-cube-screensaver) +md5sums=('e009d5e8d91e342dfaeb939fddaf4bdd' + '40b13abfeeaf8d669f44ca34bc836f6c' + 'fe39d0e389e764664d8fd610c59ebb91' + '0d1ff939325131594c8c0eb1342b3ebe' + '2460d93a56b4f5db5ec5d8876d12f0e9' + '52ed67b09a878086f41fdc250fbfcc20' + '4ef4564b256a445348345b14a83da601') +conflicts=('xscreensaver-dbus-screenlock') +package() { + #Python scripts + install -Dm755 {${srcdir},${pkgdir}/usr/bin}/compiz-screenlock-freedesktop.py + install -Dm755 {${srcdir},${pkgdir}/usr/bin}/compiz-screenlock-gnome.py + + #Dbus services + install -Dm644 {${srcdir},${pkgdir}/usr/share/dbus-1/services}/org.freedesktop.ScreenSaver.service + install -Dm644 {${srcdir},${pkgdir}/usr/share/dbus-1/services}/org.gnome.ScreenSaver.service + + #XDG Startups + install -Dm644 {${srcdir},${pkgdir}/etc/xdg/autostart}/compiz-screenlock-freedesktop.desktop + install -Dm644 {${srcdir},${pkgdir}/etc/xdg/autostart}/compiz-screenlock-gnome.desktop + + #Screensaver script + install -Dm755 {${srcdir},${pkgdir}/usr/bin}/compiz-cube-screensaver +} diff --git a/compiz-cube-screensaver b/compiz-cube-screensaver new file mode 100755 index 000000000000..dc6bbc4590bb --- /dev/null +++ b/compiz-cube-screensaver @@ -0,0 +1,36 @@ +#!/bin/bash + +#Xorg display to control +DISPLAY=:0.0 +#Pointer, check `xinput --list` +pointer=12 +#Compiz rotate plugin's "initiate" button +INITIATE="$(dconf read /org/compiz/profiles/Default/plugins/rotate/initiate-button)"; [[ -z "${INITIATE}" ]] && exit +#Start rotation left or right at random +direction="${RANDOM}"; let "direction >>= 14"; [[ "${direction}" -eq 1 ]] && direction=90 || direction=270 +#Pixels to move XTEST mouse (rotation speed) +step=1 + +#Disable input devices other than pointer and XTEST +for i in $(xinput list --id-only); do \ + [[ "${i}" -gt "5" ]] && [[ "${i}" -ne "${pointer}" ]] && \ + enabled="$(xinput list-props ${i} | grep "Device Enabled")" && \ + [[ "${enabled: -1}" -eq "1" ]] && \ + xinput disable "${i}" && \ + disabled+=("${i}"); \ +done + +xdotool mousedown "${INITIATE//[!0-9]/}" & + +#Rotate Cube +while [ $(xprintidle) -gt 0 ]; do \ + xdotool mousemove_relative --polar "${direction}" "${step}" & \ + sleep 0.0166; \ +done + +xdotool mouseup "${INITIATE//[!0-9]/}" & + +#Re-enable input devices +for i in "${disabled[@]}"; do \ + xinput enable "${i}" & \ +done & diff --git a/compiz-screenlock-freedesktop.desktop b/compiz-screenlock-freedesktop.desktop new file mode 100644 index 000000000000..b9e87b1082c7 --- /dev/null +++ b/compiz-screenlock-freedesktop.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Application +Name=Compiz+xdotool DBus Screenlock +Comment=Intercept light-locker DBus service call for compiz screensaver +TryExec=xdotool +Exec=compiz-screenlock.py +NotShownIn=Gnome;Unity diff --git a/compiz-screenlock-freedesktop.py b/compiz-screenlock-freedesktop.py new file mode 100755 index 000000000000..c60e4f2d9191 --- /dev/null +++ b/compiz-screenlock-freedesktop.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +# Provide DBus service to call compiz+xdotool +# http://ubuntuforums.org/showthread.php?t=1865593&s=1c7f28c50a3f258e1d3404e41f098a0b&p=11418175#post11418175 + +import dbus +import dbus.service +import dbus.glib +from gi.repository 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) + dbus.service.Object.__init__(self,bus_name, '/org/freedesktop/ScreenSaver') + + @dbus.service.method("org.freedesktop.ScreenSaver") + def Lock(self): + subprocess.Popen(['bash','/usr/bin/compiz-cube-screensaver']) + +if __name__ == '__main__': + object=ScreenDbusObj() + GObject.MainLoop().run() + diff --git a/compiz-screenlock-gnome.desktop b/compiz-screenlock-gnome.desktop new file mode 100644 index 000000000000..f990e2e5c28c --- /dev/null +++ b/compiz-screenlock-gnome.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Application +Name=Compiz+xdotool DBus Screenlock (GNOME) +Comment=Intercept light-locker DBus service call for compiz screensaver +TryExec=xdotool +Exec=compiz-screenlock-gnome.py +NotShownIn=Gnome;Unity diff --git a/compiz-screenlock-gnome.py b/compiz-screenlock-gnome.py new file mode 100755 index 000000000000..0224016eed3e --- /dev/null +++ b/compiz-screenlock-gnome.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python +# Provide DBus service to call compiz+xdotool +# http://ubuntuforums.org/showthread.php?t=1865593&s=1c7f28c50a3f258e1d3404e41f098a0b&p=11418175#post11418175 + +import dbus +import dbus.service +import dbus.glib +from gi.repository 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(['bash','/usr/bin/compiz-cube-screensaver']) + +if __name__ == '__main__': + object=ScreenDbusObj() + GObject.MainLoop().run() diff --git a/org.freedesktop.ScreenSaver.service b/org.freedesktop.ScreenSaver.service new file mode 100644 index 000000000000..779d3cb24a6d --- /dev/null +++ b/org.freedesktop.ScreenSaver.service @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=org.freedesktop.ScreenSaver +Exec=/usr/bin/compiz-screenlock-freedesktop.py diff --git a/org.gnome.ScreenSaver.service b/org.gnome.ScreenSaver.service new file mode 100644 index 000000000000..ff29f4e4c356 --- /dev/null +++ b/org.gnome.ScreenSaver.service @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=org.gnome.ScreenSaver +Exec=/usr/bin/compiz-screenlock-gnome.py |