创建输入剪贴板内容的自定义快捷方式

创建输入剪贴板内容的自定义快捷方式

我想模拟键盘输入,以便我可以将剪贴板内容“粘贴”到不允许这样做的应用程序(例如远程 KVM)。现在,我正在尝试使用xdotoolxclip

xdotool type "$(xclip -o)"

如果我待在终端窗口中并自己输入该命令,此命令就会起作用。当我运行该命令时,它会返回我的剪贴板内容。我的目标是将此命令绑定到热键,以便它在任何应用程序中都能起作用。

Linux 发送键

如果我使用此热键,任何具有焦点的窗口都会发生意外行为。例如,我的终端窗口大小会缩小(实际上,这有点有趣)。如果我将其保存为脚本并调用该脚本,或者如果我用 封装命令,也会出现类似的结果sh -c。我如何才能实际使用这个强大的xdotool type命令?

答案1

此命令有两个问题。首先,您需要确保在尝试运行命令时未按下绑定中的元键。其次,默认情况下 xclip 选择XA_Primary缓冲区而不是XA_CLIPBOARD。因此,您应该将其clipboard作为 xclip 的选择参数传递。将您的热键命令更改为以下内容:

sh -c 'sleep 0.5; xdotool type "$(xclip -o -selection clipboard)"'

答案2

xdotool 创建按键,它不会为您释放 Ctrl 键...最简单的解决方案是添加延迟,例如 sleep 0.5等待半秒钟,并确保您足够快地释放 Ctrl。

答案3

sh -c ‘xdotool 类型 --clearmodifiers -- “$(xclip -o -selection 剪贴板)”’

“--clearmodifiers” 删除 CTRL/ALT/Shift 等,希望这意味着不需要睡眠

“--” 表示 xdotool 选项的结束,因此,如果粘贴的测试以 - 开头,xdotool 将不会尝试将其解释为选项

答案4

由于 Unbuntu 现在使用 Wayland,因此xdotool默认情况下不起作用。

我可以修改 Alex L 的解决方案以使用ydotool

sh -c 'sleep 0.5; xclip -o -selection clipboard | ydotool type --file -'

我需要将换行符输入为回车符,这在内置的 0.1.8 ydotool 中不可用,但在从以下来源安装的 1.0.4 中运行良好本指南

相关内容