Ida*_*rye 5 command-line kde settings shell-script mouse
我正在尝试左手鼠标,并且希望能够在右手模式和左手模式之间轻松切换。Windows 有一个名为SwapMouseButtons 的实用程序,它允许为该开关绑定一个键 - 既可以交换按钮,也可以更改指针的方向。
我想在 shell 脚本中为 KDE 做类似的事情。
使用 交换按钮很容易xinput,但我很难从命令行将鼠标主题更改为左手主题。我还更喜欢找到用于按钮交换的 KDE 解决方案,因为通过进行的更改xinput是会话绑定的并且 KDE 设置会被保存。我不希望在重置后有一个带有右手按钮的左手主题......
问题是,我找不到太多有关 KDE 命令行实用程序的文档。我发现这篇文章建议使用kapplymousetheme,这似乎很有希望,但我不知道如何使用它(没有手册页,没有--help标志......)
我还发现kcmshell4 cursortheme打开鼠标主题对话框,并且kcmshell4接受--args用于向模块发送参数的标志,但我找不到也无法弄清楚需要发送哪些参数才能在不打开对话框的情况下更改鼠标主题(如果支持的话)。
我还应该指出,我希望这些更改立即生效。更改配置文件并必须重新启动系统(甚至只是 X 或 KDM)是行不通的,但如果我可以重新加载该配置文件(当然使用命令行实用程序),以便更改立即生效,会没事的。
提前致谢!
晚了两年,但我刚刚在 Plasma 5 中重新解决了这个问题。也许这会对下一个提出这个答案的人有所帮助。
这是我用来交换鼠标按钮的 KDE 方法。也许同样的想法也可以应用于改变主题。
本质上,您所要做的就是在$HOME/.config/kcminputrcLeftHanded 和 RightHanded 之间更改 MouseButtonMapping,然后调用kcminit mouse. 这是一个执行此操作的脚本:
#!/bin/bash
CONFIG=$HOME/.config/kcminputrc
CURRENT=`kreadconfig --file $CONFIG --group Mouse --key MouseButtonMapping`
if [ $CURRENT = "LeftHanded" ]; then
kwriteconfig --file $CONFIG --group Mouse --key MouseButtonMapping RightHanded
elif [ $CURRENT = "RightHanded" ]; then
kwriteconfig --file $CONFIG --group Mouse --key MouseButtonMapping LeftHanded
fi
kcminit mouse
Run Code Online (Sandbox Code Playgroud)
请注意,KDE Plasma 4 中的文件是,$HOME/.kde/share/config/kcminputrcPlasma 5 中的文件也是如此$HOME/.config/kcminputrc,因此您可能需要编辑脚本以适应。
然后,我将此脚本添加到我的主 KDE 应用程序菜单中,以便我可以为其分配全局热键。
2018 年更新:
由于 KDE 配置文件发生更改,脚本现在如下所示:
#!/bin/bash
CONFIG=$HOME/.config/kcminputrc
CURRENT=`kreadconfig --file $CONFIG --group Mouse --key XLbInptLeftHanded`
if [ $CURRENT = "true" ]; then
kwriteconfig --file $CONFIG --group Mouse --key XLbInptLeftHanded false
elif [ $CURRENT = "false" ]; then
kwriteconfig --file $CONFIG --group Mouse --key XLbInptLeftHanded true
fi
kcminit mouse
Run Code Online (Sandbox Code Playgroud)
2022 年更新:
kreadconfig 和 kwriteconfig 现在是 kreadconfig5 和 kwriteconfig5。
kcminit 命令行略有变化。
#!/bin/bash
CONFIG=$HOME/.config/kcminputrc
CURRENT=`kreadconfig5 --file $CONFIG --group Mouse --key XLbInptLeftHanded`
echo $CURRENT
if [ $CURRENT = "true" ]; then
kwriteconfig5 --file $CONFIG --group Mouse --key XLbInptLeftHanded false
#/usr/bin/kdialog --title "Leftyswitch" --passivepopup "Right handed mouse" 3
elif [ $CURRENT = "false" ]; then
kwriteconfig5 --file $CONFIG --group Mouse --key XLbInptLeftHanded true
#/usr/bin/kdialog --title "Leftyswitch" --passivepopup "Left handed mouse" 3
fi
kcminit kcm_mouse
Run Code Online (Sandbox Code Playgroud)