# kbluelock zweckentfremden

## Erdie

Hi,

weiß zufällig jemand, ob man kbluelock so umkonfigurieren kann, dass nicht der Bildschirm gelockt, sondern ein Event z.b. Script ausgeführt wird? Ich hatte die Idee, damit den afk status bei einem MMORPG Spiel zu steuern, so das man afk ist, wenn man wirklich afk ist. Könnte kbluelock das leisten?

-Erdie

----------

## py-ro

Ich habe mir mal sowas gebastelt:

http://py-ro.de/archives/13-SIP-Telefon-meldet-meine-Identitaet-automatisch-ab.html

Py

----------

## slick

Ein Script was losläuft wenn der Bildschirmschoner angeht ... wäre das evt. ein Ansatz?

https://forums.gentoo.org/viewtopic-p-2824584.html#2824584

----------

## Necoro

 *slick wrote:*   

> Ein Script was losläuft wenn der Bildschirmschoner angeht ... wäre das evt. ein Ansatz?
> 
> https://forums.gentoo.org/viewtopic-p-2824584.html#2824584

 

Gibts denn DCOP noch?

Man kann sich auch die oft verschmähten IPC-Dienste zu Nutze machen und DBus benutzen  :Smile:  ... zB wie in folgendem Skript (Quelle: http://thomasa88.blogspot.com/2008/11/suspending-usb-mouse-on-screensaver.html). Denn es wird auf DBus eine Notification versandt, wenn sich der Status des Bildschirmschoners ändert -- darauf muss man ja nur reagieren. Spart einem auch im Skript die ganze Zeit zu pollen...

```
#!/usr/bin/env python  

      

import dbus, gobject  

from dbus.mainloop.glib import DBusGMainLoop  

import os  

      

def on_activechanged(active):  

    if(active):  

        os.system('/usr/bin/suspend_mouse 1')  

    else:  

        os.system('/usr/bin/suspend_mouse 0')  

dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)  

bus = dbus.SessionBus()  

screensaver = bus.get_object("org.kde.screensaver", "/ScreenSaver")  

bus.add_signal_receiver(on_activechanged,  

                        dbus_interface="org.freedesktop.ScreenSaver",  

                        signal_name="ActiveChanged")  

loop = gobject.MainLoop()  

loop.run()
```

Das os.system(...) ist natürlich durch das zu ersetzen, was man braucht

----------

## Erdie

Ok, vielen Dank. Ich werde es probieren !

----------

## Erdie

Ich habe mir mal die Sourcen von kbluetooth angeschaut. Das läßt sich leicht modifizieren, so dass es tut, was ich mir vorstelle. Falls es jemanden interessiert, werde ich dann hier berichten.

----------

## slick

Uns interessiert ALLES  :Wink: 

----------

## Erdie

Mein Plan ist folgender: 

In den Sourcen von kbluetooth, also in kbluelock.cpp, wird über DCOP der Bildschirm gesperrt. Da braucht man dann im Prinzip nur den Befehl austauschen und stattdessen ein Script auf Betriebsystemebene ausführen. Das Skript bedient sich xdotool um Tastatureingaben zu simulieren und führt den entsprechenden Befehl für den afk Modus aus. Im Fall von Eternal Lands, was ich spiele wäre das dann der Befehl "#afk". Das müßte funktionieren.

----------

## Finswimmer

Evtl. wäre es sinnvoller, das Ganze generischer anzulegen:

Ein Bugreport, damit diverse Skripte ausgeführt werden können, oder eben Bildschirm sperren.

----------

## Erdie

Du meinst ein Gentoo - Bugreport?

----------

## Finswimmer

Nee. Ich meinte bei den Entwicklern von KBluetooth.

Aber auch nur als Wish-Report.

----------

## Erdie

Das könnte schwierig werden. Soweit ich weiß, wird kbluetooth nicht mehr weiterentwickelt und wurde von bluedevil abgelöst   :Wink: 

----------

## Finswimmer

 *Erdie wrote:*   

> Das könnte schwierig werden. Soweit ich weiß, wird kbluetooth nicht mehr weiterentwickelt und wurde von bluedevil abgelöst  

 

Oh. Mein Fehler...

----------

