我想发送一个键盘/字符(到活动窗口)。
这并没有达到我的预期。没有输入发送到任何应用程序(qt/gtk/console)。
**步骤(按照文档)**
- 打开“自定义快捷方式”
- 新建>全局快捷键>键盘输入
- 指定快捷键
- 写入要发送的字符
- 申請/确定。
背景:
- 为特定应用程序中的特定功能分配快捷方式 -> 工作
- 我创建此错误报告位于 bugs.kde.org
- Ubuntu 20.04
- 等离子 5.18
- EN+HE 键盘布局
使用 xdotool 的半成功解决方法:
- 安装 xdtool
- 创建一个发送预期击键的脚本(
xdotool type text
) - 在 Plasma 中,创建自定义命令(而不是键盘输入)
- 这有时会有效,但通常无效,原因是未知的因素。
- xdotool 可以自行工作,即从控制台或脚本运行,例如“sleep 10; xdotool type stuff”然后切换窗口。
- 最好的情况是,按下组合键会做一些“尴尬”的事情,比如移动窗口,或者将 Tab 键发送到活动窗口。
我很茫然。
我正在寻找解决方案、解决方法或解释。
顺便问一下:每次更改自定义键后是否必须重新启动?
答案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 默认将其发送到当前活动窗口。
这显然是一种丑陋且脆弱的黑客攻击,而不是坚如磐石的功能。
此功能存在许多 KDE 错误,其中之一就是重复使用旧快捷方式。如果它不能立即起作用,我建议注销/重新启动。