调整所有用户的文本缩放系数

我在我的系统上使用gnome tweak工具,这是Ubuntu 12.04,只有一些用户设置。 我想更改所有用户帐户的文本缩放系数。

如果我使用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 

    喜欢:

        0.7 Text scaling factor Factor used to enlarge or reduce text display, without changing font size.  
  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 

参考文献:

  • dconf-editor和gsettings不应该访问同一个数据库吗?

我找到了一个适用于一个用户的工作解决方案。 看起来好像如果使用:

 su user_name bash -c 'gsetting set org.gnome.desktop.interface text-scaling-factor 0.7' 

它失败的原因是:

x11连接因身份validation错误而被拒绝

这是因为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" 

但这也行不通。 如果有更简单的方法,我会非常感激。