【问题标题】:How to set Pidgin status from command line?如何从命令行设置 Pidgin 状态?
【发布时间】:2023-03-20 07:55:02
【问题描述】:

如何通过命令行在 Pidgin 即时通讯工具中设置/更改我的状态(如可用/忙碌/离开)?我需要这个来确保我的状态在我锁定屏幕时变为“离开”。我安装了“awayonlock”插件,但它似乎不适用于 MATE 桌面环境。

【问题讨论】:

  • 类似:$pidgin-client --state "dont_disturb" --text-state "Meeting from 11:00 to 12:00 at B55 room"
  • @Goran.it :我的 Debian 8 机器中没有任何名为“pidgin-client”的程序。我拥有的是“pidgin”和“pidgin.orig”。我用这两个都试过你的命令,但它似乎不起作用。
  • 也许你可以试试purple-remote "setstatus?status=away&message=AFK" .. 我不确定在 ubuntu 上安装了哪些程序 pidgin .. 从我读到的紫色远程应该可以解决问题,你可以阅读更多关于这里:commandlinefu.com/commands/view/4554/change-pidgin-status

标签: pidgin


【解决方案1】:

我能够创建一个简单的 Python 脚本来执行此操作:

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)

现在要将状态设置为“忙碌”,运行:% python set_im_status.py b

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-17
    • 2013-05-15
    • 2020-04-13
    • 2015-05-25
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2011-10-22
    相关资源
    最近更新 更多