在 Linux 世界中,命令行界面一直是效率和灵活性的代名词。但对于一些需要鼠标和键盘交互的操作,命令行却显得捉襟见肘。这时,一个名为 Ydotool 的工具便应运而生,它为我们提供了一种全新的命令行自动化方式,帮助用户摆脱鼠标的束缚,轻松完成各种操作。
Ydotool 的优势
Ydotool 是一款通用的 Linux 命令行自动化工具,它不依赖于图形界面,能够在各种环境下运行,包括 Wayland、X11、文本控制台、fbdev 应用程序等。它通过模拟输入设备,将命令行指令转换为鼠标点击、键盘输入等操作,实现对桌面环境的自动化控制。
Ydotool 的主要功能
• 点击鼠标:
click
命令可以模拟鼠标点击操作,包括左键、右键、滚轮等。• 移动鼠标:
mousemove
命令可以移动鼠标指针到指定位置,支持绝对坐标和相对坐标。• 输入文本:
type
命令可以输入字符串。• 按下键盘:
key
命令可以模拟按下键盘按键,支持各种键盘布局。• 调试模式:
debug
命令可以输出调试信息,方便排查问题。• stdin 输入:
stdin
命令可以将标准输入中的键盘按键发送到虚拟设备,例如通过 SSH 连接远程控制。
使用示例
• 切换到 tty1 并输入文本:
ydotool key 29:1 56:1 59:1 59:0 56:0 29:0; sleep 2; ydotool type 'echo Hey guys. This is Austin.'
• 关闭窗口:
ydotool key 56:1 62:1 62:0 56:0
• 相对移动鼠标:
ydotool mousemove -x -100 -y 100
• 绝对移动鼠标:
ydotool mousemove --absolute -x 100 -y 100
• 鼠标右键点击:
ydotool click 0xC1
• 重复点击鼠标左键:
ydotool click --repeat 5 --next-delay 25 0xC0
Ydotool 的工作原理
Ydotool 不同于 Xdotool,它不直接发送 X 事件到 X 服务器,而是通过 Linux 内核的 uinput 框架来模拟输入设备。它创建虚拟设备,将命令行指令转换为鼠标点击、键盘输入等操作,然后发送到系统。
Ydotool 的工作机制
由于 Ydotool 使用虚拟设备,需要一定的时间才能被图形环境识别和启用。为了解决这个问题,Ydotool 提供了一个名为 ydotoold 的后台服务,它负责创建并维护一个持久的虚拟设备,并接收来自 Ydotool 的输入指令。
Ydotool 的安装和配置
Ydotool 可以从 GitHub 上获取源代码并编译安装,需要 CMake 3.22 或以上版本。安装过程中可以选择是否编译文档、是否使用 systemd 用户服务、是否使用 systemd 系统服务等选项。
Ydotool 的使用注意事项
• Ydotool 运行需要 root 权限。
• Ydotool 目前不支持自定义键盘布局。
• 为了更好地使用 Ydotool,建议使用支持硬件配置的键盘。
总结
Ydotool 为 Linux 用户提供了一种全新的命令行自动化方式,它可以帮助用户摆脱鼠标的束缚,轻松完成各种操作。它简单易用、功能强大,是 Linux 命令行自动化爱好者的必备工具。
项目地址:https://github.com/ReimuNotMoe/ydotool