为所有用户调整文本缩放因子

为所有用户调整文本缩放因子

我在 Ubuntu 12.04 系统上使用 gnome tweak 工具,其中设置了一些用户。我想更改所有用户帐户的文本缩放比例。

如果我使用,gsettings set org.gnome.desktop.interface text-scaling-factor 0.7则工作会顺利完成,但仅适用于发出命令的用户。其余用户保留他们的设置,这是我不想要的。

我想从 CLI 执行此操作,因为我稍后会尝试将其合并到 puppet 中。

答案1

通过编辑原始架构来更改默认值

  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>
    
  2. 编译架构

     sudo glib-compile-schemas /usr/share/glib-2.0/schemas
    

通过创建覆盖文件来更改默认值

否则,因为您想要一种简单的方法puppet

  1. 您可以创建一个 dconf 覆盖文件:

     sudo nano /usr/share/glib-2.0/schemas/30_my-text-factor.gschema.override
    
  2. 将覆盖键和值附加到它,例如:

     [org.gnome.desktop.interface]
     text-scaling-factor=0.7
    
  3. 编译架构

     sudo glib-compile-schemas /usr/share/glib-2.0/schemas
    

新用户和使用默认值的用户(他们从未改变过值或者他们已经重置了它)将使新值生效。

使用锁定文件强制所有用户使用默认值

如果您想强制用户使用默认值(他们的自定义值无效),请添加 dconf 锁:

  1. 添加新的锁定文件或更改现有的锁定文件:

     /etc/dconf/db/gdm.d/locks/
    
  2. 将此行附加到它:

     /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"

但这也不起作用。如果有更简单的方法,我将不胜感激。

相关内容