如何在 kde 键盘快捷键中插入任意 unicode 字符(发送键盘输入)?

如何在 kde 键盘快捷键中插入任意 unicode 字符(发送键盘输入)?

我的目标是将耸肩表情符号 ¯\_(ツ)_/¯ 绑定到诸如“Super+Maj+S”之类的组合键,这样每当我同时按下这三个键时,该字符序列就会发送到当前正在接受键盘输入的窗口。

在 KDE 中,我通过“系统设置”>“常见外观和行为”>“快捷方式和手势”>“自定义快捷方式”执行此操作

在此处输入图片描述

文档说输入以冒号 (:) 分隔的字符,但它没有提到非 ASCII 字符。当我尝试这样做时,只打印了 ASCII 字符,因此我没有得到想要的结果¯\_(ツ)_/¯,而是只得到了__()_:

关于如何修复此问题有什么想法吗?是否有提供 unicode 字符的特定方法?

答案1

那里有一个系统错误。我有两个解决方法,使用 xdotool

  1. 安装 xdotool ( apt install xdotool)。
  2. 创建一个自定义快捷方式使用脚本作为操作(新建 > 全局快捷方式 > 命令/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。另一个解决方案是使用pynputPython 库。使用以下命令安装它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:

具有全局快捷键的桌面等离子图像(宏键:
具有全局快捷键(宏键)的桌面等离子图像

相关内容