推荐开源神器:xbanish - 智能隐藏鼠标,专注你的键盘工作流

xbanish Hide the mouse cursor when typing and show it again when the mouse moves 项目地址: https://gitcode.com/gh_mirrors/xb/xbanish

1、项目介绍

xbanish 是一个轻量级的X11工具,它的主要功能是在用户开始输入时自动隐藏鼠标指针,并在检测到鼠标移动或按键后立即显示回来。这个项目借鉴了xtermpointerMode 设置,但不同的是,xbanish 可以全局地在你的整个X11会话中运行,让你的工作环境更加整洁,提升工作效率。

如果你曾被类似 unclutter 工具的缺陷困扰,那么 xbanish 将是你理想的解决方案。由于 unclutter 在某些场景下的不稳定表现,开发者选择了重新编写代码,从而诞生了 xbanish。其名称灵感来源于 ratpoison 中将鼠标移至屏幕一角的 "banish" 命令。

2、项目技术分析

xbanish 使用了 X11 扩展 XInput 来监听所有连接的键盘和鼠标输入。如果支持 XInput 2.2,则可以获取原始鼠标运动和按钮按下事件,这对于在某些应用(如Chromium)中检测鼠标动作特别有帮助。

如果XInput不可用,项目会遍历窗口列表从根窗口开始,对每个窗口调用 XSelectInput(),接收鼠标移动、按钮点击和键盘输入的通知。当检测到键盘输入时隐藏鼠标,而鼠标活动则会显示鼠标。

最初的实现是通过 XGrabPointer() 和空白光标图像来隐藏鼠标,但这与某些X应用程序存在兼容性问题。为了解决这些问题并简化实现,现在的 xbanish 利用了 Xfixes 扩展,通过 XFixesHideCursor()XFixesShowCursor() 完美地隐藏和显示鼠标,避免了之前的问题。

3、项目及技术应用场景

  • 对于程序员和开发者,当他们全神贯注于终端、文本编辑器或者IDE时,xbanish可以帮助消除视觉干扰,保持专注。
  • 设计师在进行界面设计和布局调整时,可以避免因意外触碰鼠标导致的误操作。
  • 演示文稿展示过程中,隐藏鼠标可以避免观众的注意力被分散。
  • 在远程桌面环境中,xbanish有助于提供更流畅的交互体验。

4、项目特点

  • 全局有效:xbanish 不局限于特定的应用程序,它可以跨程序全局隐藏鼠标。
  • 智能响应:只在检测到键盘输入时隐藏鼠标,鼠标活动即刻恢复显示。
  • 兼容性强:使用现代X11扩展来确保与各种应用程序的良好兼容性。
  • 简洁高效:不依赖复杂的抓取机制,而是利用Xfixes轻松管理鼠标显示状态。

总之,xbanish 是一款简单却极其实用的工具,它将帮你打造更为沉浸式的工作环境。如果你正寻找一种方法来优化你的键盘输入流程,减少鼠标带来的打扰,那么不妨尝试一下这个出色的开源项目吧!

xbanish Hide the mouse cursor when typing and show it again when the mouse moves 项目地址: https://gitcode.com/gh_mirrors/xb/xbanish

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐