Wie kann ich meinen Status automatisch auf Besetzt setzen, wenn Empathie beginnt?


Antworten:


10

Nach einigem Suchen fand ich eine App , die über dbus mit Empathy kommuniziert. Ich habe einen Code daraus gezogen und ein Skript erstellt, das Ihren Status festlegt.


Das Einrichten ist ziemlich einfach:

Laden Sie das Skript hier herunter ( Github-Seite ).

Es erfordert einige Python-Bibliotheken, die sich in den Repos befinden (und möglicherweise standardmäßig installiert sind):

sudo apt-get install python-dbus python-notify

Führen Sie dann Startanwendungen aus, klicken Sie auf Hinzufügen und füllen Sie die folgenden Felder aus, um die Anmeldung zu starten.

  • Name: Benutzerdefiniert - Empathy Busy starten
  • Befehl: / usr / bin / python /path/to/empathy_set_status.py dnd
  • Kommentar: Starten Sie Empathie und setzen Sie den Status auf Besetzt (nicht stören).

Das Befehlsfeld enthält den einzustellenden Status. Wenn Sie nicht beschäftigt sein möchten (dnd), können Sie einen der folgenden Werte verwenden: verfügbar, dnd, weg, xa, versteckt, offline.

Wenn Sie sich jetzt anmelden, sollte das Skript Empathie ausführen, etwas warten und dann Ihren Status festlegen. Sie sollten eine Benachrichtigung sehen, wenn versucht wird, Ihren Status festzulegen.

Ich überprüfe nicht, ob der Status richtig eingestellt ist, daher habe ich nur eine Wartezeit, um zu hoffen, dass Empathie bereit ist, uns den Status ändern zu lassen. Passen Sie Ihre Zeit an, wenn es nicht funktioniert. Erhöhen Sie den Wert von, EMPATHY_STARTUP_SECONDSbis es beim Anmelden funktioniert. Wenn Sie ein Kennwort eingeben müssen, um Ihren Schlüsselbund für Ihre IM-Anmeldung zu entsperren, muss die Verzögerung lang genug sein, damit Empathy gestartet wird, Sie Ihr Kennwort eingeben und Empathy sich in Ihren Konten anmelden kann.


Dies scheint nicht mehr zu funktionieren (Ubuntu 13.04). Es legt den angegebenen Status fest, aber Sie können das Fenster Empathie (Kontaktliste) nicht öffnen, wenn Sie im Messaging-Menü darauf klicken.
Sadi

2

Es gibt einen Fehler bezüglich der Unfähigkeit, etwas anderes als "verfügbar" als Standardstatus in Empathy zu verwenden. Wenn Sie jedoch bereit sind, ein anderes Programm in Betracht zu ziehen, können Sie mit Pidgin einen anderen Anfangsstatus festlegen.


1

Empathie erlaubt dies nicht direkt. Sie können jedoch Folgendes versuchen.

Zusammenfassend können Sie die Mausbewegungsereignisse aufzeichnen, bei denen Sie normalerweise auf das Menü "Ich" klicken und den Status "Besetzt" auswählen. Alternativ können Sie über die Tastenkombination F10 und die Pfeiltasten zum gleichen Menüeintrag navigieren. Sie können diese Ereignisse dann bei der Anmeldung über einen Eintrag für die Startanwendung wiedergeben.

Dies kann durch eine Anwendung namens "Knie" behoben werden. Die Version in Maverick & Natty funktioniert jedoch nicht. Wenn Sie aus dem Quellcode kompilieren, funktioniert es jedoch.

Laden Sie die neueste Quellcode von hier .

cd ~/Downloads
tar -xvf xnee-cvs-20110508.tar.gz
cd xnee-cvs-20110508
sudo apt-get install build-essential
./configure --disable-gnome-applet --disable-gui
make
sudo make install

Wenn configure sich über eine fehlende Bibliothek oder Bibliotheken beschwert, installieren Sie die Bibliothek, die als fehlend gemeldet wurde:

sudo apt-get install lib<name of library>-dev

Zeichnen Sie dann die Mausereignisse auf, indem Sie Folgendes ausführen (nach dem Countdown) und Ihre Maus zum Menü "Me" bewegen und auf "Besetzt" klicken, gefolgt von der Tastaturtaste "h", um die Aufnahme zu beenden

cnee --record -o ~/changebusy.xnr --mouse --time 5 --stop-key h

Alternativ können Sie Tastaturereignisse aufzeichnen, indem Sie die Tastenkombination F10 + PFEIL LINKS + PFEIL LINKS + PFEIL NACH UNTEN (zweimal) + EINGABE + h auswählen

cnee --record -o ~/changebusy.xnr --keyboard --time 5 --stop-key h

Erstellen Sie mit dem Befehl eine Startanwendung

sh -c "sleep 10 && cnee --replay -f ~/changebusy.xnr"

Großartige Idee! Obwohl ich herausgefunden habe, dass Empathy auf dbus-Befehle aus diesem Blog reagiert !
idbrii

1

Beachten Sie, dass dies für IRC-Konten nicht funktioniert (möglicherweise für andere?). Fügen Sie am Ende des Skripts einen Try / Except-Block ein, um dies zu beheben:

        try:
            simple_presence.SetPresence(status, _STATUSES.get(status))
        except dbus.exceptions.DBusException:
            print(status + ' is not supported by ' + valid_account)

0

Verwenden Sie Pidgin. Extras> Einstellungen> Status / Leerlauf> Überprüfen Sie den Status "Beim letzten Beenden beim Start verwenden". Empathie unterstützt nicht das, was Sie versuchen, sorry.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.