gpt4 book ai didi

linux - 关闭 pidgin 对话窗口中的选项卡

转载 作者:太空狗 更新时间:2023-10-29 11:46:48 24 4
gpt4 key购买 nike

如何通过脚本关闭 pidgin 对话窗口中的多个选项卡(一些 #general#nickserv 选项卡)。我尝试使用 xdotooldevilspie 但没有结果。

最佳答案

您可以使用 Pidgin 的 DBus API 关闭对话。参见 Pidgin's DbusHowto .以下 Python 代码关闭名称与 to_close 列表匹配的所有对话窗口。 (我使用 IM 用户名对此进行了测试,但没有使用 IRC 聊天室名称进行测试,因此可能需要根据您的目的进行一些额外的调整。)

to_close = ["#general", "nickserv"]
for conv in purple.PurpleGetConversations():
if purple.PurpleConversationGetName(conv) in to_close:
purple.PurpleConversationDestroy(conv)

将以下内容放在 Python 文件的顶部以初始化 purple 对象,以便通过 D-Bus 与 Pidgin/Finch 通信(来自 DbusHowTo ):

#!/usr/bin/env python
import dbus
import sys

# Based off http://developer.pidgin.im/wiki/DbusHowto
bus = dbus.SessionBus()
obj = bus.get_object("im.pidgin.purple.PurpleService",
"/im/pidgin/purple/PurpleObject")
purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")

对于那些不喜欢 Python 的人,下面是使用 purple-remotesh 中重写的相同内容(注意 for arg 遍历脚本的参数):

#!/bin/sh
# Note that the result of sed here is a string like "(1234) (5678)".
for conversation in `purple-remote PurpleGetConversations | sed 's/^.*[[]//' | sed 's/].*$//' | sed s/dbus.Int32//g | sed s/,//g`
do
conv_name=`purple-remote "PurpleConversationGetName$conversation"`
for arg
do
if [ "$arg" = "$conv_name" ]
then
purple-remote "PurpleConversationDestroy$conversation"
fi
done
done

不过,我完全不确定 sed 的管道有多脆弱。 Python 看起来更简洁。

关于linux - 关闭 pidgin 对话窗口中的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8799094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com