我的目标是将耸肩表情符号 ¯\_(ツ)_/¯ 绑定到诸如“Super+Maj+S”之类的组合键,这样每当我同时按下这三个键时,该字符序列就会发送到当前正在接受键盘输入的窗口。
在 KDE 中,我通过“系统设置”>“常见外观和行为”>“快捷方式和手势”>“自定义快捷方式”执行此操作
文档说输入以冒号 (:) 分隔的字符,但它没有提到非 ASCII 字符。当我尝试这样做时,只打印了 ASCII 字符,因此我没有得到想要的结果¯\_(ツ)_/¯
,而是只得到了__()_:
关于如何修复此问题有什么想法吗?是否有提供 unicode 字符的特定方法?
答案1
那里有一个系统错误。我有两个解决方法,使用 xdotool
- 安装 xdotool (
apt install xdotool
)。 - 创建一个自定义快捷方式使用脚本作为操作(新建 > 全局快捷方式 > 命令/URL;触发器:(您的组合键)
解决方法 #1 – 睡觉
sleep
在调用xdotool之前添加一条命令:
sleep 0.6
xdotool type "¯\\_(ツ)_/¯"
解决方法 #2
在调用xdotool之前释放快捷键:
xdotool keyup Super+n
xdotool type "¯\\_(ツ)_/¯"
笔记:
在我的例子中,脚本可以通过多个快捷键调用。因此,
xdotool keyup
对于每个组合键,我都会调用多次。使用双引号。不要问我为什么。不需要单键。
转义单个反斜杠,即
"¯\\_(ツ)_/¯"
解决方法的原因是,组合键使用了 meta 键。如果按下 meta 键尽管unicode 代码被发送到当前应用程序,然后 Plasma 向当前应用程序/窗口管理发送垃圾。稍有延迟,就不会发生这种情况。
xdotool 默认将其发送到当前活动窗口。
这显然是一个巨大、丑陋且脆弱的黑客行为,而不是坚如磐石的功能。YMMV。
此功能存在许多 KDE 错误,其中之一就是重复使用旧快捷方式。如果它不能立即起作用,我建议注销/重新启动。
答案2
有时,xdotool
不起作用。例如,它不适用于 REAPER。另一个解决方案是使用pynput
Python 库。使用以下命令安装它pip
:
$ pip install pynput
然后将此命令付诸行动:
python3 -c 'from pynput.keyboard import Controller; Controller().type("¯\\_(ツ)_/¯")'
答案3
自定义全局快捷键(发送键盘输入)的更新链接: https://docs.kde.org/stable5/en/khotkeys/kcontrol/khotkeys/shortcuts.html
每个字符条目都有奇怪的规则...为了获得一个宏键来喷出我的电子邮件地址,我必须将“操作字段”设置为(精确)
:m:a:r:k:c:a:p:e:l:l:a:shift+2:t:w:c:n:y:.:r:r:.:c:o:m: