你好,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
我让它工作了,但这个解决方案确实需要一些技术经验才能设置。也许我应该为它写一篇合适的博客文章。但(遗憾的是)简而言之:
我最终使用了xbindkeys
、lua
和dconf
,并结合以下脚本,使我能够像在 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_autostart
到Startup 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)))