【发布时间】:2021-12-31 17:15:13
【问题描述】:
这就是我所做的,因为我不知道如何使用 dbus 库 该脚本会轮询我的鼠标的 DPI 何时被鼠标上的按钮更改并将其设置为可用的值,然后将当前 DPI 打印到 KDE widget 但我正在使用子进程库,因为我不知道如何使用dbus 库
#!/usr/bin/env python3
from openrazer.client import DeviceManager
from time import sleep
from subprocess import run as call
from sys import argv
if len(argv) == 1:
print("No DIY bar ID given!")
quit()
ID='/id_'+argv[1]
dev=DeviceManager().devices[0]
l_out=0
while True:
if not dev:
sleep(3)
if DeviceManager().devices[0]:
dev=DeviceManager().devices[0]
continue;
dpi=dev.dpi
if dpi[0] == dpi[1]:
if dpi[0] == 1800:
dev.dpi=(900,900)
elif dpi[0] == 4500:
dev.dpi=(1000,1000)
elif dpi[0] == 9000:
dev.dpi=(1100,1100)
elif dpi[0] == 16000:
dev.dpi=(1200,1200)
out=str(dev.dpi[0])
else:
out=str(dpi[0])+','+str(dpi[1])
if not l_out == out:
call(['qdbus','org.kde.plasma.doityourselfbar',ID,'org.kde.plasma.doityourselfbar.pass','|A|<img src="/usr/local/share/icons/diybar/mouse.svg" height="22"/>'+out+' DPI|'+dev.name+'||'])
l_out=out
sleep(0.7)
shell 命令示例
qdbus org.kde.plasma.doityourselfbar /id_10 org.kde.plasma.doityourselfbar.pass '|A|<img src="/usr/local/share/icons/diybar/mouse.svg" height="22"/>900 DPI|Razer DeathAdder Elite||'
我已经看过documentation for dbus,但我已经放弃尝试弄清楚了
【问题讨论】: