我在 Ubuntu 12.04 系统上使用 gnome tweak 工具,其中设置了一些用户。我想更改所有用户帐户的文本缩放比例。
如果我使用,gsettings set org.gnome.desktop.interface text-scaling-factor 0.7
则工作会顺利完成,但仅适用于发出命令的用户。其余用户保留他们的设置,这是我不想要的。
我想从 CLI 执行此操作,因为我稍后会尝试将其合并到 puppet 中。
答案1
通过编辑原始架构来更改默认值
更改 Glib 模式中的默认值
sudo nano /usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.xml
喜欢:
<key type="d" name="text-scaling-factor"> <range min="0.5" max="3.0"/> <default>0.7</default> <summary>Text scaling factor</summary> <description>Factor used to enlarge or reduce text display, without changing font size.</description> </key>
编译架构
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
通过创建覆盖文件来更改默认值
否则,因为您想要一种简单的方法puppet
。
您可以创建一个 dconf 覆盖文件:
sudo nano /usr/share/glib-2.0/schemas/30_my-text-factor.gschema.override
将覆盖键和值附加到它,例如:
[org.gnome.desktop.interface] text-scaling-factor=0.7
编译架构
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
新用户和使用默认值的用户(他们从未改变过值或者他们已经重置了它)将使新值生效。
使用锁定文件强制所有用户使用默认值
如果您想强制用户使用默认值(他们的自定义值无效),请添加 dconf 锁:
添加新的锁定文件或更改现有的锁定文件:
/etc/dconf/db/gdm.d/locks/
将此行附加到它:
/org/gnome/desktop/interface/text-scaling-factor
参考:
答案2
我找到了一种每次只适用于一个用户的解决方案。它看起来像是使用:
su user_name bash -c 'gsetting set org.gnome.desktop.interface text-scaling-factor 0.7'
失败的原因是:
x11 连接因身份验证错误而被拒绝
这是因为X win cookie没有被继承。因此尝试了以下步骤:
root:~#echo $DISPLAY
root output:~#localhost:10.0
root:~#xauth list
output:~#
eglisa-bh/unix:12 MIT-MAGIC-COOKIE-1 9435aa7eb876e2edf3e4f29bbe90f42a
eglisa-bh/unix:10 MIT-MAGIC-COOKIE-1 5e987f3ce693dd4789fgc5c012067f31
root:~#su - student
student:~#DISPLAY=localhost:10.0; export DISPLAY
student:~#xauth add eglisa-bh/unix:10 MIT-MAGIC-COOKIE-1
5e987f3ce693dd4789fgc5c017f31
完成这个技巧然后再次运行:
su user_name bash -c 'gsetting set org.gnome.desktop.interface text-scaling-factor 0.7'
文本比例根据需要更改为 0.7。
我也尝试过通过在 sudoers 文件中添加以下内容来处理 sudo:
Defaults env_keep +="DISPLAY XAUTHORIZATION XAUTHORITY"
但这也不起作用。如果有更简单的方法,我将不胜感激。