尝试将自动热脚本传输到 Autokey 但未定义

尝试将自动热脚本传输到 Autokey 但未定义

一开始我中风了,所以我学会了用一只手从键盘中间打字。alt + k例如,我用它来按回车键。无论如何,这个脚本是我在 Windows 上使用的自动热键

!f::Send, {Tab}// alt + f = tab
!k::Send, {Enter}// alt + k = enter
!i::Send, {Backspace}// alt + i = backspace
!y::Send, {Up}// alt + y = up arrow
!h::Send, {Down}// alt + h = down arrow
!g::Send, {Left}// alt + g = left arrow
!j::Send, {Right}// alt + j = right arrow
!,::Send, {=} // alt + , = =
!.::Send {U+0060} // alt + . = `
!/::Send, {-}// alt + / = -
^,::Send, {[}// ctrl + , = [
^.::Send, {{}// ctrl + . = {
^/::Send, {(}// ctrl + / = (
^m::Send, {:}// ctrl + m = :
^n::Send, {$}// ctrl + n = $

我正在尝试对 Ubuntu 做同样的事情自动键。根据文档,我尝试了一些不同的东西。

 keyboard.send_key(enter, repeat=1)// NameError: name 'enter' is not defined
 keyboard.send_key(return, repeat=1)// NameError: name 'return' is not defined
 keyboard.send_key("enter", repeat=1)// nothing no error but does not hit enter.

是否有我应该使用的键列表,因为我似乎找不到它。有人知道我做错了什么吗?我目前正在从 TOP 学习 javascript,所以现在不想学习 python。但我认为我可以通过一两个例子来完成它。

答案1

我找到了答案,我猜你需要带有“”标记的<>才能使其起作用keyboard.send_key("<enter>", repeat=1)

答案2

这些是 Python 的关键名称:https://pyautogui.readthedocs.io/en/latest/keyboard.html#keyboard-keys

您的第三次尝试,keyboard.send_key("enter", repeat=1),是正确的语法。它没有产生可见效果的原因是您的系统看到了它Altk按下了它。发送“enter”会导致应用程序看到Alt+ Enter。因此,首先让软件“释放” Alt可能会产生所需的效果:keyboard.release('alt')

我可能会使用xdotool而不是 autokey 来实现此功能。命令如下

xdotool  keyup alt sleep 0.1 key Return

可以通过桌面的键盘快捷键功能轻松绑定到Alt+ K,默认 Ubuntu 桌面中的“设置”-“键盘”。释放 Alt 和发送 Enter 之间的短暂停顿似乎是必要的,因此如果您坚持使用 Autokey,您可能还需要引入一点延迟。

请注意,对于任何一种方法,您都需要运行 X11。Ubuntu 的最新版本默认使用 Wayland,但您可以从登录屏幕更改为 Xorg。目前,Wayland 上可用的键盘自动化工具非常有限。

相关内容