Изменение масштабирования пользовательского интерфейса из командной строки

Я использую Ubuntu 18.10.

Я пытаюсь создать два псевдонима в моем .bashrc для команд «resdown» и «resup» (т.е. уменьшать и увеличивать разрешение экрана соответственно).

Команда resdown выглядит следующим образом и отлично работает:

xrandr --output DP-2 --mode 3840x2160

У меня проблема с resup . Когда я запускаю следующее:

xrandr --output DP-2 --mode 3840x2160

Масштабирование пользовательского интерфейса возвращается к 100%. Мне нужно изменить масштаб до 200%, или все на моем дисплее 4K невероятно маленькое.

Я экспериментировал с параметром «--scale» для xrandr, но он полностью портит мой дисплей . Таким образом, я не уверен, что он делает то, что я думаю:

xrandr --output DP-2 --mode 3840x2160 --scale 2x2

Если бы я использовал свой второй монитор, чтобы вернуться в gnome -control-center, я могу установить разрешение экрана и масштабирование нормально, и все вернется в норму. Однако я хочу сделать это из командной строки.

В основном - я хочу знать, как установить параметр «Масштаб», который вы видите в gnome-control-center (см. Ниже), из командной строки. Как я могу это сделать?:

enter image description here

0
задан 25 October 2018 в 09:05

1 ответ

Tl;Dr:
sed -i -e '/<масштаб>/ s/1/2/' ~/.config/monitors.xml && sudo systemctl перезапустить gdm

Mutter слушает некоторые настройки в Gsettings, и, взглянув на код, в gsettings есть поддержка устаревших настроек, таких как gsettings ui-scaling-factor. Для других вещей он поддерживает использование XML для конфигурации.Вам, вероятно, потребуется Alt+F2, r, чтобы перезапустить gnome-shell для применения настроек... или выяснить детали dbus из кода.

Вот мой конфиг для старого монитора... обратите внимание на строку... легко sed

~/.config/monitors.xml
<monitors version="2">
  <configuration>
    <logicalmonitor>
      <x>0</x>
      <y>0</y>
      <scale>1</scale>
      <primary>yes</primary>
      <transform>
        <rotation>upside_down</rotation>
        <flipped>no</flipped>
      </transform>
      <monitor>
        <monitorspec>
          <connector>HDMI-1</connector>
          <vendor>ACR</vendor>
          <product>V226HQL</product>
          <serial>T0WAA0072442</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>60</rate>
        </mode>
      </monitor>
    </logicalmonitor>
  </configuration>

Я собрал приведенные выше коды, чтобы сделать 200x. Это работает на Wayland и X, но вы выйдете из системы. Если вы можете сделать ALt + F2, r , это, очевидно, будет лучше ... Я пытался сделать это с помощью команды терминала и просто продолжал сбой gnome. Можно использовать Robot.js или xdotool для отправки команды перезапуска... например,

xdotool keydown alt && sleep 1 && xdotool key F2 keyup alt && sleep 1 && xdotool key r && sleep 1 && xdotool key KP_Enter

My полная версия для X11 swap-res.sh... это работает и с сочетаниями клавиш Ubuntu

#!/bin/bash
File=~/.config/monitors.xml
if grep -q "<scale>1" "$File"; then
  sed -i -e '/<scale>1/ s/1/3/' "$File"
else
  sed -i -e '/<scale>3/ s/3/1/' "$File"
fi

# Unix Utils
xdotool keydown alt && sleep 1 && xdotool key F2 keyup alt \
  && sleep 1 && xdotool key r key KP_Enter

Источник: https://gitlab.gnome.org/GNOME/mutter/ (буквально, оставить звездочку!)

SEO / Похожие вопросы:
Масштабирование экрана входа в Gnome на дисплее HiDPI
Как использовать Mutter с GNOME Shell?
Изменение масштабирования пользовательского интерфейса из командной строки

2
ответ дан 13 May 2020 в 23:01

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

Похожие вопросы: