Настройте коэффициент масштабирования текста для всех пользователей

Я использую инструменты настройки GNOME в моей системе, которая является Ubuntu 12.04 с несколькими установленными пользователями. Я хочу изменить коэффициент масштабирования текста для всех учетных записей пользователей.

Если я использую gsettings set org.gnome.desktop.interface text-scaling-factor 0.7 делает работу хорошо, но только для пользователя, который вводит команду. Остальные пользователи сохраняют свои настройки, которые я не хочу.

Я хочу сделать это из CLI, так как я пытаюсь включить это позже в марионетку.

2 ответа

Решение
  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
    

Рекомендации:

Я нашел рабочее решение для одного пользователя за раз. Похоже, если использовать:

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, как и хотелось.

Я также попытался поиграться с sudo, добавив внутрь файла sudoers:

Defaults env_keep +="DISPLAY XAUTHORIZATION XAUTHORITY"

Но это тоже не сработало. Если есть какой-то более простой способ, я был бы очень признателен.

Другие вопросы по тегам