2017-09-15 2 views
0

Wie kann ich meinen Status (wie Verfügbar/Besetzt/Abwesend) in Pidgin Instant Messenger über die Befehlszeile einstellen/ändern? Ich brauchte das, um sicherzustellen, dass mein Status sich in 'Abwesend' ändert, wenn ich meinen Bildschirm sperre. Ich habe das "awayonlock" -Plugin installiert, aber es scheint nicht mit der MATE-Desktopumgebung zu funktionieren.Wie setze ich den Pidgin-Status über die Kommandozeile?

+0

So etwas wie: '$ pidgin-client --state" dont_disturb "--text-state" Besprechung von 11:00 bis 12:00 Uhr im B55 Raum "' –

+0

@ Goran.it: Ich habe kein Programm namens 'pidgin-client' in meiner Debian 8-Maschine. Die, die ich habe, sind 'pidgin' und 'pidgin.orig'. Ich habe dein Kommando mit beiden versucht und es scheint nicht zu funktionieren. –

+0

Vielleicht könntest du 'purple-remote" setstatus ausprobieren? Status = away & message = AFK "' .. ich bin mir nicht sicher, welche Programme mit pidgin auf ubuntu installiert werden .. Von dem, was ich gelesen habe, sollte purple-remote den Trick machen, Sie können mehr darüber hier lesen: http://www.commandlinefu.com/commands/view/4554/change-pidgin-status –

Antwort

0

Ich war in der Lage, einen einfachen Python-Skript zu erstellen, dies zu tun:

set_im_status.py

#!/usr/local/bin/python 

import sys 
import dbus, gobject 
from dbus.mainloop.glib import DBusGMainLoop 

dbus_loop = DBusGMainLoop() 

bus = dbus.SessionBus(mainloop=dbus_loop) 
dbus_obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject") 
purple = dbus.Interface(dbus_obj, "im.pidgin.purple.PurpleInterface") 

status = sys.argv[1] 

# Available 
if status == "a": 
    status_id = dbus.String(u'available') 

# Busy 
elif status == "b": 
    status_id = dbus.String(u'unavailable') 

# Away 
elif status == "w":  
    status_id = dbus.String(u'away') 

# Invisible 
elif status == "i": 
    status_id = dbus.String(u'invisible') 

# Offline 
elif status == "f": 
    status_id = dbus.String(u'offline') 

else: 
    status_id = dbus.String(u'available') 

status_type = purple.PurplePrimitiveGetTypeFromId(status_id) 
saved = purple.PurpleSavedstatusNew("", status_type) 
purple.PurpleSavedstatusActivate(saved) 

Nun, um den Status auf 'Besetzt', läuft: % python set_im_status.py b

Verwandte Themen