我尝试使用修改我的键盘快捷键kwriteconfig5
~/.config/kglobalshortcutsrc
锁定屏幕的默认值为
Lock Session=Meta+L\tCtrl+Alt+L\tScreensaver,Meta+L\tCtrl+Alt+L\tScreensaver,Lock Session
这在系统设置 -> 快捷方式 - 会话管理中映射到此
文件的格式似乎是:
- “快捷方式名称=”
- 每个选项之间用
\t
- “,”
- 再次重复每个选项以表明已勾选
- 第二组中缺少任何选项表示未勾选
- “,”
- “快捷方式名称”
我可以将文件中的行设置为空
kwriteconfig5 --file kglobalshortcutsrc --group ksmserver --key "Lock Session" ""
所以为了删除 ++Ctrl我尝试过:AltL
kwriteconfig5 --file kglobalshortcutsrc --group ksmserver --key "Lock Session" "Meta+L\tCtrl+Alt+L\tScreensaver,Meta+L\tScreensaver,Lock Session"
但是,\t
最终选项在文件中显示为\\t
.
我使用了转义和单/双引号的几种组合,但它没有什么区别,因此它似乎不是正常的转义过程。
第二个问题是,即使更改文件后,快捷方式似乎也没有保留在系统设置中。
以下情况之一似乎会使设置发生更改:
qdbus org.kde.keyboard /modules/khotkeys reread_configuration
kquitapp5 kglobalaccel && sleep 2s && kglobalaccel5 &
然而,我并不能 100% 确定哪一个在做这件事,以及两者之间真正的区别是什么。
我找不到任何有关如何正确使用 kwriteconfig5 的文档。
有谁知道执行此操作的正确方法并且已经实际测试过并使其正常工作?
答案1
发行
kquitapp5 kglobalaccel && sleep 2s && kglobalaccel5 &
对我来说效果很好,至少对于kglobalshortcutsrc
文件来说是这样。您只需稍后重新打开设置窗口即可看到更改。
至于\\t
问题:我正在使用以下sed
命令。希望它可以帮助某人:
sed -i '/Lock Session/s/\\\\t/\\t/g' ~/.config/kglobalshortcutsrc
-i
用于就地编辑/Lock Session/
找到要编辑的正确行并s/\\\\t/\\t/g
更改该行中所有出现的\\t
into 。\t
答案2
你试过了"...\\t..."
吗 ?
因为你似乎正在尝试写出其中的人物\
和t
人物。"\t"
(带双引号)是您不希望提供的单个实际制表符kwriteconfig5
。