您可以创建和设置一个不可见的光标主题。 这个技巧被maemo使用 ,因为在触摸屏设备上有一个游标是没有意义的。

不幸的是,在运行时改变全局光标主题的能力在X11应用程序和工具包中是不统一的。 您可以更改服务器资源Xcursor.theme ,没有人会注意到(通常只在启动时查询); 你可以告诉xsettings哪些似乎只影响Gtk +程序; KDE使用根窗口上的属性进行某种通信; 等等

至少为您自己的应用程序更改游标就像XDefineCursor一样简单,如果您在根窗口上执行此操作,则可能会有 一些应用程序随之而来。

下面是一个描述 unclutter工具如何做的。

Unclutter是一个在X11会话的后台运行的程序。 它每隔几秒钟检查一次X11指针(光标)的位置,当它发现它没有移动(没有按钮被按在鼠标上,光标不在根窗口中)时,它创建一个小的子窗口光标所在窗口的一个子窗口。新窗口安装一个大小为1×1的光标,但是所有的光标都是0,即一个不可见的光标。 例如,这允许您查看xterm或xedit中的所有文本。 人为因素的人群会认同它应该减少分心。

一旦创建,程序等待指针离开窗口,然后销毁它,恢复原来的情况。 按钮事件透明地传递到父窗口。 它们通常会导致光标重新出现,因为当按钮关闭时,程序将会执行一个活动的抓取,所以即使xy位置不改变,指针也会离开窗口。

我宁愿使用更简单的方法:

unclutter -idle 0

你几乎看不到光标,仍然可用。 禁用鼠标:

rmmod psmouse

或者在/ etc /中的某处永久禁用鼠标模块。 见你的发行手册。

一个替代unclutter

Unclutter对我来说不起作用,因为它在硬件加速表面(例如在解码视频时由intels的VA-API产生的表面)不能很好地工作。 所以我找到了一个程序,把鼠标指针放在一个不太迂回的方式, hhp ,并用最小的依赖关系在C中重写它,结果是hhpc 。 我这样做是为了避免需要haskell编译它,因为hhp有时会停止隐藏鼠标指针。

hhpc ,只依赖于glibc和xlib ,因此很容易构建,只是做make release 。 您可以从我的存储库中获取代码和说明。 这是非常有效的内存和CPU(因为它几乎没有)。

我结束了使用像ephemient提到的XDefineCursor。 控制应用程序更改了默认的根窗口光标,其他应用程序(在我的控制下)继承了它。

代码细节如下所示:

// Hide the cursor if (NULL==(display=XOpenDisplay(NULL))) { printf("Unable to open NULL display\n"); exit(1); } window = DefaultRootWindow(display); Cursor invisibleCursor; Pixmap bitmapNoData; XColor black; static char noData[] = { 0,0,0,0,0,0,0,0 }; black.red = black.green = black.blue = 0; bitmapNoData = XCreateBitmapFromData(display, window, noData, 8, 8); invisibleCursor = XCreatePixmapCursor(display, bitmapNoData, bitmapNoData, &black, &black, 0, 0); XDefineCursor(display,window, invisibleCursor); XFreeCursor(display, invisibleCursor); XFreePixmap(display, bitmapNoData);

为了隐藏光标,然后我完成

// Restore the X left facing cursor Cursor cursor; cursor=XCreateFontCursor(display,XC_left_ptr); XDefineCursor(display, window, cursor); XFreeCursor(display, cursor);

恢复X的左手游标(因为它是根窗口,我不希望它保持隐形,我不确定,但我也可以使用

XUndefineCursor(display, window);

xinit -- -nocursor或startx -- -nocursor可以工作。

使用xbanish! 它“输入时消除鼠标光标”! 从开始

xbanish&

享受!

好吧!

我想这个帖子可能会有点老,但如果我发现可以帮助我们中的一些人,我肯定要在这里发布;)

我发现自己是一个干净,简单的解决方案,工作正常,没有使用“xcb”(我试图达到,这是一个litte over-engineering(..)

所以:

所有你需要的是“xsetroot”命令,并带有适当的参数/参数:

– >隐藏鼠标光标,你需要一个额外的小文件(我称之为“blnk_ptr.xbm”)

这个文件的内容:

#define blnk_ptr_width 1 #define blnk_ptr_height 1 #define blnk_ptr_x_hot 0 #define blnk_ptr_y_hot 0 static unsigned char blnk_ptr_bits[] = { 0x00 };

然后,我们可以使用以下两个命令:

– >隐藏鼠标指针光标:

xsetroot -cursor blnk_ptr.xbm blnk_ptr.xbm

– >再次显示鼠标指针光标:

xsetroot -cursor_name left_ptr

(你可以使用除“left_ptr”以外的鼠标指针光标,但是这个似乎在* nix系统(..)

Btw->我还不知道如何获取系统当前使用的指针的名称使用xsetroot – >我想我会像往常一样digg,但我会很高兴有人谁知道如何给我答案(这将是很好的;))

请享用 ? ,p

这是我的解决方案。 它将光标放在你看不见的地方(在我的情况下,在左下角),然后禁用鼠标,所以你不能移动它。

注意你可以从xrandr解析数据,或者把这些数据放到环境中登录,然后使用它; 这样,你不必硬编码。 但是,至于我,我从来没有改变我的屏幕分辨率,所以768是好的:)

setmouse () { DISPLAY=":0" xinput $1 `DISPLAY=":0" xinput | grep Mouse | tr -d " " | tr "\t" " " | cut -d" " -f2 | cut -d"=" -f2` } offmouse () { DISPLAY=":0" xdotool mousemove 0 768 # use xrandr to find out setmouse disable } onmouse () { setmouse enable }

Linux系统隐藏鼠标指针,如何在Linux / X11下隐藏鼠标指针?相关推荐

  1. linux系统怎么结束程序,如何在 Linux 系统中结束进程或是中止程序

    如何在 Linux 系统中结束结束进程或是中止程序 进程出错的时候,您可能会想要中止或是中断这个进程.本文,我们将在命令行和图形界面中探索进程或是应用程序的中断,这里我们使用 gedit 作为样例程序 ...

  2. 我的linux系统怎么输入pv,如何在Linux系统中使用pv命令

    本文介绍了如何在Linux系统中使用pv命令.内容很详细.有兴趣的朋友可以参考一下,希望对大家有帮助. PV 命令 PV由Andrew Wood开发,是Pipe Viewer的简称,意思是通过管道显示 ...

  3. linux系统僵尸进程杀死,如何在Linux上杀死僵尸进程

    是什么导致Linux上的僵尸进程? 写得不好的父进程可能不会调用该wait()创建子进程时, 函数. 这意味着没有任何东西在监视子进程中的状态变化,并且该SIGCHLD信号将被忽略. 或者,可能是由于 ...

  4. linux系统更改计算机名称,如何在Linux中设置或更改主机名

    默认情况下,系统主机名是在安装过程中设置的,或者如果您正在创建虚拟机,则会在启动时将其动态分配给实例,但是在某些情况下需要更改它. 本教程将引导您完成在Linux中更改主机名的过程,而无需重新启动系统 ...

  5. linux系统硬盘坏道,如何在 Linux 系统下检测硬盘上的坏道和坏块

    在 Linux 上使用坏块工具检查坏道 坏块工具可以让用户扫描设备检查坏道或坏块.设备可以是一个磁盘或外置磁盘,由一个如 /dev/sdc 这样的文件代表. 首先,通过超级用户权限执行 fdisk 命 ...

  6. linux 新用户 界面登录,如何在Linux系统登录界面加入个性化提示信息

    如何在Linux系统登录界面加入个性化提示信息 Linux字符界面看久了容易乏味,如果在登录时加点个性化显示看着也比较舒服,下面小编就给大家介绍下如何在Linux系统登录界面加入个性化提示信息,一起来 ...

  7. linux系统发送信号的系统调用是,linux系统编程之信号:信号发送函数sigqueue和信号安装函数sigaction...

    信号发送函数sigqueue和信号安装函数sigaction sigaction函数用于改变进程接收到特定信号后的行为. sigqueue()是比较新的发送信号系统调用,主要是针对实时信号提出的(当然 ...

  8. Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库

    Linux系统中的软件管理详解(下) 5.软件仓库管理命令 a)dnf 命令: 管理软件仓库中的安装包 dnf repolist ##列出仓库信息clean all ##清除系统中已经加载的仓库缓存信 ...

  9. 查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 查看Linux系统架构的命令,查看linux系统是哪种架构:AMD.ARM.x86.x86_64.pcc 文章目录: 1 ...

  10. linux系统组成之小型RedHat little linux制作二

    本篇是在上篇"linux系统组成之小型RedHat little linux制作一"的基础上对微型小系统进一步完善,使其实现关机.重启等功能 ⑴.通过脚本使其微型系统实现关机.重启 ...

最新文章

  1. 时代变了,大人:RTX 3090时代,哪款显卡配得上我的炼丹炉?
  2. python websocket例程_python 实现websocket
  3. vue 报错unknown custom element解决方法
  4. 实验四、主存空间的分配和回收模拟
  5. 【Node.js】serve 实现目录浏览服务
  6. aspnetpager的使用(完美篇)
  7. 在卷积层的运用_Conv 卷积层
  8. python __init__(self)_python中的_init_和self是什么的关系?
  9. (筆記) 如何為ModelSim加入永久性的library mapping? (SOC) (ModelSim)
  10. scrapy_redis 相关: 将 jobdir 保存的爬虫进度转移到 Redis
  11. Mob云验证,让身份验证更简单
  12. 歌声美化歌声转换方法与方案
  13. 数据分析(经典泰坦尼克号竞赛入门题)
  14. treegrid 与java交互_EXTJS实现的TREEGRID(后台java,框架SpringMVC)
  15. 怎么仿制html文件,简单仿制HTML网页
  16. Wireshark基本使用方法
  17. 神经网络原理与实例精解,神经网络计算机的组成
  18. CSP 202109-2 非零段划分
  19. 【TDengine】解决 failed to connect to server, reason: Mnode not found
  20. 猿人学第五题-乱码增强(油猴hook禁用频繁日志、扣代码易错点)

热门文章

  1. 结合百度地图城市编码的数据表
  2. 电磁学matlab仿真实验报告,利用MATLAB语言处理电磁学实验.doc
  3. 大力发展职业技术教育,高等教育也要跟动车高铁一样降降速了
  4. 美国CSTA K-12计算机科学标准「中文版」转
  5. 时间轮定时器的实现(C++)
  6. ubuntu安装linux deepin,如何在ubuntu上安装如何在Ubuntu上安装Deepin桌面环境
  7. 电脑主板线路连接图解_教你如何连接主板路线图文教程
  8. 计算机故障基本维修方法,11种打印机常见故障维修方法
  9. 基于Rasa_NLU的微信chatbot
  10. html5游戏开发教程实战:五子棋、四子棋、围棋、翻转棋四种对弈游戏,仅仅100行代码...