替代(可能更简单)的解决方案

替代(可能更简单)的解决方案

你好,Ubuntu 社区,

我正在寻求有关 Ubuntu 中的放大功能的帮助,特别是在使用键盘快捷键时(Super+放大,Super-缩小)。我的目标是调整放大的步长,使其每次按下键时增加或减少 0.15 倍,而不是默认行为(放大或缩小 1 倍)。

我尝试过的:

  • GNOME 调整和 dconf 编辑器:我查看了 GNOME Tweaks 和 dconf 编辑器中与放大步长相关的任何设置,但发现没有直接影响键盘快捷键行为的设置。
  • gsettings 命令:我还尝试过使用gsettings来调整放大倍数。虽然我可以更改默认放大倍数 ( org.gnome.desktop.a11y.magnifier mag-factor),但这只会设置默认缩放级别,不会影响使用键盘快捷键进行的增量更改。
  • 寻找解决方法:我已经搜索了潜在的解决方法,包括自定义脚本或第三方工具,但我还没有找到专门解决通过键盘快捷键调整放大步长的解决方案。

我对社区的问题是:
是否有人使用 Ubuntu 中的键盘快捷键成功修改了放大的步长?如果是这样,您能分享一下您是如何做到的吗?或者,如果有脚本或第三方工具可以促进这种调整,我很乐意了解它。

调整放大步长对于我的工作流程至关重要,我相信更好地控制此功能可以使依赖 Ubuntu 辅助功能的其他人受益。

提前感谢您提供的任何指导或建议!

答案1

我还希望能够使用更精细的缩放系数进行放大/缩小。在以下文章的帮助下,我能够使用gsettings和 的组合来设置自己的缩放增量变化系数xbindkeys

https://superuser.com/questions/1532190/gnome-3-shortcut-for-super-mouse-wheel

基本上,我使用此命令放大 1%: gsettings set org.gnome.desktop.a11y.magnifier mag-factor $(echo $(gsettings get org.gnome.desktop.a11y.magnifier mag-factor) \* 1.01 | bc -l)

并使用以下命令将缩小率减少 1%: gsettings set org.gnome.desktop.a11y.magnifier mag-factor $(echo v=$(gsettings get org.gnome.desktop.a11y.magnifier mag-factor) / 1.01\; if \(v\<1.0\) v=1.0\; v | bc -l)

然后使用xbindkeys将您想要的放大/缩小快捷键绑定到上述命令。我将更精细的放大/缩小绑定到一组新的快捷键。这样,我可以使用原始键快速放大/缩小,然后使用我的键进行微调。

如果您尚未xbindkeys安装,请参阅以下内容了解详细信息。 https://wiki.archlinux.org/title/Xbindkeys

希望这有帮助,安迪

答案2

我让它工作了,但这个解决方案确实需要一些技术经验才能设置。也许我应该为它写一篇合适的博客文章。但(遗憾的是)简而言之:

我最终使用了xbindkeysluadconf,并结合以下脚本,使我能够像在 compiz/macos 中一样放大/缩小。您可以按Super+ Alt+ 鼠标滚轮进行放大和缩小。

首先,请确保您已启用屏幕放大镜。您可以使用Ctrl+ Alt+执行此8操作。您也可以使用 更改设置dconf,它在 中/org/gnome/desktop/a11y/magnifier

这是我输入的文件~/.xbindkeys.scm

(xbindkey-function '(mod4 alt b:4)
           (lambda ()
             (run-command "zin")))

(xbindkey-function '(mod4 alt b:5)
           (lambda ()
             (run-command "zout")))

接下来我制作文件zin并将zout其放入 bin,我用 lua 编写它们:

~/bin/zin

#!/usr/bin/env lua

local f = io.popen('dconf read /org/gnome/desktop/a11y/magnifier/mag-factor')
local z = f:read("*n")
f:close()
local z = math.min(z*1.05, 20)
os.execute(string.format("dconf write /org/gnome/desktop/a11y/magnifier/mag-factor %f", z))

~/bin/zout

#!/usr/bin/env lua

local f = io.popen('dconf read /org/gnome/desktop/a11y/magnifier/mag-factor')
local z = f:read("*n")
f:close()
local z = math.max(z/1.05, 1)
os.execute(string.format("dconf write /org/gnome/desktop/a11y/magnifier/mag-factor %f", z))

最后,添加xbindkeys_autostartStartup Applications菜单并重新启动(或者xbindkeys如果您想测试它,只需从终端启动。)

替代(可能更简单)的解决方案

您可以使用 在一个文件中完成所有这些操作.xbindkeys.scm,但我发现它会导致 xbindkeys 出现段错误,因此您可能最终还是需要做更多工作。但如果有人可以让它工作,下面是基本文件:

(define mag 1)
(define MIN-MAG 1)
(define MAX-MAG 20)
(define STEP 0.05)

(define (set-mag val)
  (run-command (string-append "dconf write /org/gnome/desktop/a11y/magnifier/mag-factor "
                  (number->string val))))

(xbindkey-function '(mod4 alt b:4)
           (lambda ()
             (set! mag (min (+ mag (* mag STEP)) MAX-MAG))
             (set-mag mag)))

(xbindkey-function '(mod4 alt b:5)
           (lambda ()
             (set! mag (max (- mag (* mag STEP)) MIN-MAG))
             (set-mag mag)))

相关内容