在 Plasma 5.18 中分配快捷方式来发送键盘输入 - 不起作用,

在 Plasma 5.18 中分配快捷方式来发送键盘输入 - 不起作用,

我想发送一个键盘/字符(到活动窗口)。

这并没有达到我的预期。没有输入发送到任何应用程序(qt/gtk/console)。

**步骤(按照文档)**

  • 打开“自定义快捷方式”
  • 新建>全局快捷键>键盘输入
  • 指定快捷键
  • 写入要发送的字符
  • 申請/确定。

背景:

使用 xdotool 的半成功解决方法:

  • 安装 xdtool
  • 创建一个发送预期击键的脚本(xdotool type text
  • 在 Plasma 中,创建自定义命令(而不是键盘输入)
  • 这有时会有效,但通常无效,原因是未知的因素。
  • xdotool 可以自行工作,即从控制台或脚本运行,例如“sleep 10; xdotool type stuff”然后切换窗口。
  • 最好的情况是,按下组合键会做一些“尴尬”的事情,比如移动窗口,或者将 Tab 键发送到活动窗口。

我很茫然。

我正在寻找解决方案、解决方法或解释。

顺便问一下:每次更改自定义键后是否必须重新启动?

答案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 默认将其发送到当前活动窗口。

  • 这显然是一种丑陋且脆弱的黑客攻击,而不是坚如磐石的功能。

  • 此功能存在许多 KDE 错误,其中之一就是重复使用旧快捷方式。如果它不能立即起作用,我建议注销/重新启动。

相关内容