В Rocky 9 Cinnamon как изменить параметр ‘Отключить экран при бездействии’ с помощью ansible?

Вопрос или проблема

У меня есть система, собранная с помощью Ansible, которая должна оставаться в сети в течение 2 часов, прежде чем экран заблокируется. Однако, что бы я ни пробовал, мне не удается изменить настройки системы – параметры питания – выпадающий список “Выключить экран при неактивности на” без физического клика по выпадающему списку и изменения его, что совершенно противоречит цели наличия системы Ansible.

Запуская:

gsettings set org.cinnamon.desktop.session idle-delay 7200

Я успешно модифицирую встроенное средство сохранения экрана, чтобы оно включалось через 7200 секунд (2 часа). Однако задолго до этого момента достигается стандартная (15 минут) настройка для ‘Выключить экран при неактивности на’, и экран выключается. Я использовал команду:

xset dpms 40 40 40 

Чтобы экран становился черным через 40 секунд, но когда я устанавливаю большее значение, чем в выпадающем меню, приоритет имеет выпадающее меню, и экран становится черным через стандартные 15 минут. Ни одно из следующих не сработало:

gsettings set org.cinnamon.desktop.session idle-delay 7200
dconf write /org/cinnamon/settings-daemon/plugins/power/turn-off-screen-on-idle 7200

И когда я проверял, ни /etc/xdg/cinnamon-settings-daemon/power.conf, ни ~/.config/cinnamon-settings-daemon/power.conf не существуют для изменения.

Я разобрался. Чтобы узнать, какая системная переменная изменяется при переключении любых настроек в меню GUI, вам просто нужно открыть окно терминала и запустить:
dconf watch /
Затем измените настройку и посмотрите, какие строки появляются. В конечном итоге я добавил в свой скрипт Ansible как ручное изменение настройки, так и добавление его в .bashrc, чтобы каждый раз, когда пользователь входит в систему, настройка изменялась обратно на 2 часа, как я и хотел.

  • name: desktop.yml – Добавить в ~/.bashrc
    blockinfile:
    state: present
    insertafter: EOF
    dest: /home/{{item.0.name}}/.bashrc
    block: |
    dconf write /org/cinnamon/settings-daemon/plugins/power/sleep-display-ac 7200
    dconf write /org/cinnamon/desktop/session/idle-delay 7200
    marker: “# {mark}” # Добавляет маркер для идентификации этого блока
    with_nested:

    • “{{ users }}”
  • name: Установить значение dconf для выключения дисплея
    become: true
    become_user: “{{ item.name }}”
    command: dbus-launch dconf write /org/cinnamon/settings-daemon/plugins/power/sleep-display-ac 7200
    with_items:

    • “{{ users }}”
  • name: Установить значение dconf для задержки бездействия (ск screensaver)
    become: true
    become_user: “{{ item.name }}”
    command: dbus-launch dconf write /org/cinnamon/desktop/session/idle-delay 7200
    with_items:

    • “{{ users }}”

Ответ или решение

Для изменения настройки ‘Выключать экран при бездействии’ в среде рабочего стола Cinnamon с использованием Ansible, вам нужно установить соответствующие значения в dconf. Вы уже нашли нужные параметры, и сейчас я предложу вам полный пример Ansible-плейбука, который решает вашу задачу.

  1. Используйте команду dconf watch /, чтобы отследить изменения настроек в графическом интерфейсе и найти нужные параметры.
  2. После этого создайте Ansible-плейбук.

Вот пример плейбука, который выполняет необходимые изменения:

---
- name: Настройка параметров питания в Cinnamon
  hosts: ваши_хосты
  tasks:
    - name: Добавить команды dconf в .bashrc
      blockinfile:
        state: present
        insertafter: EOF
        dest: /home/{{ item.name }}/.bashrc
        block: |
          dconf write /org/cinnamon/settings-daemon/plugins/power/sleep-display-ac 7200
          dconf write /org/cinnamon/desktop/session/idle-delay 7200
        marker: "# {mark}"
      with_items:
        - "{{ users }}"

    - name: Установить dconf значение для отключения дисплея
      become: true
      become_user: "{{ item.name }}"
      command: dbus-launch dconf write /org/cinnamon/settings-daemon/plugins/power/sleep-display-ac 7200
      with_items:
        - "{{ users }}"

    - name: Установить dconf значение для задержки бездействия (экранныйSaver)
      become: true
      become_user: "{{ item.name }}"
      command: dbus-launch dconf write /org/cinnamon/desktop/session/idle-delay 7200
      with_items:
        - "{{ users }}"

Объяснение:

  • Мы используем blockinfile, чтобы добавить команды dconf в конец файла .bashrc для каждого пользователя из списка users. Это гарантирует, что настройки будут применяться каждый раз при входе в систему.
  • Команды dconf выполняются с помощью command, используя dbus-launch для выполнения их под нужным пользователем.
  • Вы устанавливаете два параметра:
    • sleep-display-ac – время, после которого экран отключится при подключенном зарядном устройстве.
    • idle-delay – время, после которого сработает экранныйSaver.

Люди:

Убедитесь, что переменная users содержит список пользователей, для которых вы хотите применить эти настройки.

Этот плейбук полностью решает вашу задачу и может быть использован для автоматизации настройки системы, избегая необходимости делать изменения вручную.

Оцените материал
Добавить комментарий

Капча загружается...