GNOME 3:超级 + 鼠标滚轮的快捷方式

GNOME 3:超级 + 鼠标滚轮的快捷方式

很长一段时间以来,我一直在寻找在 Linux 上实现我的工作流程的方法。不幸的是,它的可访问性充其量是……不稳定的。有些东西可以工作,有些东西运行良好,有些东西根本不存在。说实话,这让我很惊讶。但是,它是 Linux,所以它可能的! :)

在 GNOME 3 中,他们实现了一个屏幕放大镜(设置 > 通用访问),允许您打开缩放功能,甚至包括相当令人印象深刻的鼠标跟踪和颜色反转(或他们称之为“亮度”)设置。但在键盘快捷键设置中,只有打开或关闭此功能、放大或缩小的快捷键。

添加快捷方式以调用dconf翻转布尔值org.gnome.desktop.a11y.magnifier.invert-lightness可能很简单。我只需要查找一下。

但更令人担忧的是使用键盘和鼠标滚轮进行放大和缩小。在 Windows 和 macOS(我目前的主要操作系统)上,您可以使用鼠标滚轮或触控板进行放大。在 iOS 和 Android 上也可以通过使用手势来实现这一点。但到目前为止,我还不知道如何在 GNOME 3 中为此创建快捷方式。

我在 Telegram 上联系了 Matthias Clasen(他的联系方式在 Gnome 3 Accessibility+Wayland 页面底部),他说需要一个 Gnome 扩展来实现这一点。现在,我自己还没有写过一个,而且我从来没有研究过这些,因为我已经有一段时间没有使用基于 GUI 的 Linux 了;我通常在专用服务器上使用它,我通过 SSH 来指挥。

那么可能的方法是什么呢?我很确定附近的某个条目org.gnome.desktop.a11y.magnifier.invert-lightness也是当前缩放级别的条目。因此,我想象当一个人在向前滚动鼠标滚轮时按下超级键时,你只需要增加当前缩放级别 - 向下滚动时反之亦然。我确信这是可能的......但我不知道怎么做。

希望很快解决这个问题,这样我就能很快在 GUI Linux 中做更多的事情了!

(哦,是的,附带信息:XFCE4 确实有这个功能,但它的可配置性远不及 GNOME 3...它在打开辅助功能时会神奇地打开。我还听说 MATE 可以与 Compiz 一起使用,但我不知道其他 DE 的兼容性和功能。)

答案1

经过一番尝试后,我终于能够使用鼠标滚轮来实现放大镜的缩放了。

该解决方案的关键部分是xbindkeys设置鼠标滚轮快捷方式,gsettings获取/设置放大倍数,以及bc计算新的放大倍数。

我的~/.xbindkeysrc

# Adjust magnifier zoom via Alt+mouse scroll. Increases/decreases by a factor
# of 1.2. Sets a min of 1.0.
"gsettings set org.gnome.desktop.a11y.magnifier mag-factor $(echo $(gsettings get org.gnome.desktop.a11y.magnifier mag-factor) \* 1.2 | bc -l)"
    alt+b:4
"gsettings set org.gnome.desktop.a11y.magnifier mag-factor $(echo v=$(gsettings get org.gnome.desktop.a11y.magnifier mag-factor) / 1.2\; if \(v\<1.0\) v=1.0\; v | bc -l)"
    alt+b:5

诀窍是读取当前放大倍数gsettings get org.gnome.desktop.a11y.magnifier mag-factor,然后bc乘以/除以 1.2,然后再次设置。

还有许多其他有用的设置:

$ gsettings list-keys org.gnome.desktop.a11y.magnifier
scroll-at-edges
contrast-red
cross-hairs-color
mouse-tracking
cross-hairs-clip
contrast-blue
lens-mode
contrast-green
show-cross-hairs
brightness-green
cross-hairs-opacity
invert-lightness
mag-factor
brightness-red
color-saturation
brightness-blue
cross-hairs-length
focus-tracking
caret-tracking
cross-hairs-thickness
screen-position

具体来说,我将所有跟踪设置(mouse-trackingfocus-trackingcaret-tracking)设置为push模式,因为我发现默认设置使得屏幕跳动太多(尤其是在使用终端时)。

希望这可以帮助!

答案2

我也在找这个

感谢您迄今为止所做的工作。很高兴知道,那个侏儒说,需要扩展。

如果你发现什么方法可以让它发挥作用,请告诉我 ^^

到目前为止,我自己最好的想法是通过快捷方式切换缩放。而且似乎可以使用 xbind 来使用 super(或其他修饰符)+ 鼠标滚轮来“按下”该快捷方式。

这里有一些网站,描述了如何实现鼠标滚轮和修改器来按下快捷键。

https://gist.github.com/wilmardo/bb3198c7bf429ce8d794b9f44d34b034

http://xahlee.info/linux/linux_xbindkeys_tutorial.html https://www.linux.com/news/start-programs-pro-xbindkeys/ https://medium.com/@Aenon/bind-mouse-buttons-to-keys-or-scripts-under-linux-with-xbindkeys-and-xvkbd-7e6e6fcf4cba

我自己尝试了很长一段时间,但收到一条错误消息,提示“警告:无法转换字符串”--helvetica-medium-r---12------iso8859-1”来输入 FontStruct

在研究了这个问题之后,我唯一能找到的东西是在一个 arch 论坛上,那里说解决这个问题可能会很复杂......

我正在运行 Pop_OS 并尝试让“super + 鼠标滚轮”按下“super+alt+8”

也许这对你有用^^

现在,我放弃了,因为我不知道下一步该尝试什么......

编辑:工具 xdotool 可以通过终端发送按键。但至少在我的情况下,它的激活速度真的很慢。

而 xbind 现在不接受鼠标滚轮作为触发器...现在我放弃了 - 希望有人知道如何编程来实现,我可以使用鼠标滚轮放大我的桌面

相关内容