Ydotool:用代码操控你的 Linux 桌面,从此效率倍增,嵌入式Linux应用测试神器

文摘   2024-11-13 00:02   湖南  

在 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



DIY太阳系
专注分享嵌入式系统、电子产品diy,iot、机器人等相关知识!
 最新文章