![如何获取当前kde活动的名称?](https://linux22.com/image/14110/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8Dkde%E6%B4%BB%E5%8A%A8%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%9F.png)
如何单独打印当前kde活动的名称?活动栏显示所有活动,并突出显示当前活动。我会发现一个不显眼的小部件非常有用,可以仅打印当前活动名称。
谢谢
p。
答案1
使用小部件(为未来的读者提供详细说明):
在 Plasma Desktop 的默认面板(桌面底部的栏)中,右键单击空闲区域并选择“添加小部件”;在小部件面板中,搜索“活动”;将“活动”小部件拖到面板上。它是一个相对不显眼的小部件,显示当前活动的名称并在单击时打开活动管理器。
使用 D-Bus(注意问题是第一次修订明确提及):
CurrentActivity=$(dbus-send --session --dest=org.kde.ActivityManager \
--type=method_call --print-reply=literal /ActivityManager/Activities \
org.kde.ActivityManager.Activities.CurrentActivity | tr -d "[:blank:]")
dbus-send --session --dest=org.kde.ActivityManager --type=method_call \
--print-reply /ActivityManager/Activities \
org.kde.ActivityManager.Activities.ActivityInformation \
"string:$CurrentActivity"
您可能想使用-print-reply=literal
而不是-print-reply
减少输出量。然后可以对其进行过滤,通过类似的管道来awk 'NR==2 {print $2}'
仅获取当前活动的名称。但请注意,活动名称可以包含空格、制表符和双引号,这使得dbus-send
的输出在一般情况下很难(如果不是不可能的话)可靠地解析。