在不干扰工作流程的情况下突出显示用于截屏的鼠标

qub*_*dup 20 mouse cursor screencasting

为了制作文档/教程视频,我需要突出显示鼠标,例如它周围有一个黄色的半透明光晕:

在此处输入图片说明

单击和移动时标记应该处于活动状态,但如果它一直处于开启状态,那也无妨。

它可以在一定程度上模糊其背后的视图,但它可能不会禁用能够单击其后面的内容或将焦点从窗口移开。

Compiz似乎已成为过去,find-cursor不与任何操作(点击/移动)绑定并阻止交互(在绘制时,您不能单击“通过”它)并且key-mon不绘制正确地,也会禁用交互,并且在涉及鼠标荧光笔时通常会出现问题,至少在平铺窗口管理器中是这样。

我正在使用 Arch Linux 和很棒的 wm。

谢谢!

Dha*_*Guy 8

编辑 2021-05-04:我相信@johannes-titz(highlight-pointer)最近添加的解决方案更胜一筹,因为它不使用光标主题。我将保留我帖子的其余部分,因为它可能对某人仍然有用。


虽然上面建议的 DMZ-Highlight 主题适用于基本箭头指针,但其他光标均未突出显示。

对此我感到沮丧,我编写了一个简短的程序,该程序将类似的突出显示应用于给定主题的所有光标。

对于那些不想编译和运行它的人,我还包括了针对 DMZ-White 游标运行程序的结果,可以说是 DMZ-Highlight 主题的更新版本,其中所有游标都突出显示

突出显示的光标


小智 7

使用遵循XDG 规范的自定义鼠标主题。

这可能是引入标记的最简单方法。我想这只是为光标或更简单的添加了一个半透明的圆形图层。更好的是,这种方法很可能同时适用于 X11 和 Wayland 光标主题,如本 ArchWiki 中所述

如何创建鼠标主题

我们是否必须创建自定义鼠标主题?是的,如果用户更喜欢自己创建一个。这可能很耗时,而且大多数用户需要进行一些阅读。

最近关于“创建图标主题”的讨论大约发生在 2015 年,可在 Linux.org 上的此线程中找到。它涵盖了一点关于游标的内容,并慷慨地提供了更多链接以供进一步阅读。

大约 2010 年的几个教程提到了这个用于创建 X11 鼠标光标 (XMC) 的GIMP 插件。另一种方法是使用Xcursorgen程序,ehow.com上的这篇文章对此进行了解释。

或者不创建主题

再说一次,我们需要创建一个吗?不,因为一些用户已经创建了这样的主题。大多数用户只需要搜索、下载和安装它。

我发现MBOSSG 的DMZ-Highlight是一个简单而优雅的解决方案。

这是 Ubuntu/Linux 的自定义鼠标主题,光标下方有半透明的黄色圆圈,这几乎正是问题所描述的。顾名思义,DMZ-Highlight(左)基于 DMZ 光标主题的 DMZ 白色变体。

DMZ-Highlight 和 DMZ white 对比

DMZ-Hightlight 有效吗?

  • 高亮标记:是
  • 半透明黄色:是
  • 活动标记:是的,单击并移动 ^1 时
  • 禁用点击:否 ^2
  • 窃取焦点:否 ^2

^1:对于大多数 UI 元素始终可见,除了文本输入将显示通常的I光标

DMZ-突出显示鼠标垫

^2: 鼠标主题既不会阻碍也不会从窗口移开焦点,只是通常的光标下有一个突出显示

DMZ-突出显示针对 UI 元素和桌面

免责声明:此答案旨在建议在光标上引入标记的最简单方法。因此,这个答案应该上“如何安装鼠标主题为”(这应该由一个独立的问题和答案覆盖)解释。

DMZ-Highlight 的作者提供了安装和卸载脚本,方便 Ubuntu 用户使用。就我而言,光标是通过sudo update-alternative命令手动安装和配置的,因为我更喜欢这种方式。

在 Xubuntu 14.04 (Xfce 4.10) 中测试了 DMZ-Highlight。

TL;DR安装自定义鼠标主题,它将突出显示光标。零脚本,始终有效。


小智 5

对我来说,没有一个解决方案令人满意。一个原因是我想使用 vlc 屏幕转换,而在 GNU/Linux 上它根本不显示鼠标指针。对我来说效果很好的是:highlight-pointer

https://github.com/swillner/highlight-pointer

好处:

  • 在需要时打开它(您不必在光标主题之间切换)
  • 可调(半径,颜色,...)


小智 0

您是否尝试过类似问题的答案中详细介绍的内容?https://unix.stackexchange.com/a/183941/141220

你有 Arch 和一个不常见的 wm,所以你可能知道你必须自己做一些黑客工作。

在这里重新发布,这来自上面的链接,如果它有效,也不要忘记感谢用户mikeserv,因为我主要是这里的信使。


以下内容可能适合您:

#!/bin/sh
unset X Y; sleep 1
eval "$(xdotool getmouselocation -shell 2>/dev/null)"
for n in X Y; do  : "$(($n-=$n>25?25:$n))"; done
xwd -root -silent |
xv -    -crop "$X" "$Y" 50 50 \
        -geometry "50x50+$X+$Y" \
        -nodecor -viewonly -rv -quit
Run Code Online (Sandbox Code Playgroud)

这取决于三个实用程序xvxwdxdotool。前两个是非常常见的 X 实用程序,第三个我确信您已经拥有了。

休眠一秒钟后,xdotool以 eval 友好的格式将鼠标的当前坐标写入其标准输出,-shell如下所示:

X=[num]
Y=[num]
windowID=[num]
Run Code Online (Sandbox Code Playgroud)

eval$X相应地设置 shell 变量,for 循环从每个和的值中减去即将显示的图像大小的一半,$Y或者,如果其中一个值小于25,则将它们设置为0

xwd将根窗口转储到管道上xv,将鼠标位置周围裁剪为图像大小50x50,并在没有任何窗口管理器装饰的小窗口中显示当前鼠标光标下的图像负片。

最终结果是这样的:

在此输入图像描述

...虽然我猜我的鼠标光标没有出现在屏幕截图中。不过请放心,当我拍照时它就在白色盒子的上方。

您可以在图中看到我如何将其编写为 shell 函数并将其设置为后台。主要是因为这个原因,那里有一个sleep- 如果你已经在底部,按 RETURN 键将滚动终端,并且xwd在终端滚动之前足够快地抓取屏幕图片 - 这会偏移我的图像有点负片,我不喜欢它。

无论如何,因为xv同时使用-viewonly-quit开关运行,所以一旦单击鼠标按钮或按下键盘键,它就会消失 - 但会一直保留,直到您执行其中任何一个操作。

ImageMagick毫无疑问,你可以用甚至单独做更复杂的事情xv- 但我只是在鼠标光标下做了一个小负框。您可以在此处找到xv 文档和xwdin 文档man xwd