Изменить масштабирование экрана на лету
2 ответа
Вы должны взглянуть на Xrandr. Я говорю, что это инструмент выбора.
Редактировать: xrandr --output "output_name" --scale 0.9x0.9
Смотрите больше примеров с: man xrandr
Этот ответ @rubo77 дает отличное решение подобного вопроса. Я разработаю это в заключительной части, чтобы достигнуть этого результата.
Вы можете узнать, где изменяется настройка, если откроете терминал:
gsettings list-recursively > /tmp/before echo 'Now unity-control-center should open. Please change the scaling in "Displays" and close.' unity-control-center gsettings list-recursively > /tmp/after diff /tmp/before /tmp/after | grep '[>|<]'
Скопируйте и вставьте вышеуказанные строки в терминал. Эти команды создадут два временных файла - до и после изменения масштабного коэффициента. Нажмите Enter после закрытия Unity Control Center, чтобы выполнить последнюю строку, которая сравнит эти два временных файла.
В моей системе, когда я изменяю масштабный коэффициент от 1 до 1,5, результат выше:
< org.gnome.desktop.interface text-scaling-factor 1.0
> org.gnome.desktop.interface text-scaling-factor 1.5
< org.gnome.desktop.interface cursor-size 24
> org.gnome.desktop.interface cursor-size 36
< com.ubuntu.user-interface scale-factor {'VGA-1': 8, 'HDMI-0': 8, 'HDMI-1': 8}
> com.ubuntu.user-interface scale-factor {'VGA-1': 8, 'HDMI-0': 8, 'HDMI-1': 12}
Итак, новые значения:
> org.gnome.desktop.interface text-scaling-factor 1.5
> org.gnome.desktop.interface cursor-size 36
> com.ubuntu.user-interface scale-factor {'VGA-1': 8, 'HDMI-0': 8, 'HDMI-1': 12}
Я записал значения, когда коэффициент масштабирования 1
, 1.25
а также 1.5
,
Эти значения могут быть изменены через командную строку командой gsettings set
, Итак, согласно первоначальному ответу, я создал скрипт, который называется setscalefactor
и помещен в /usr/local/bin/
Таким образом, он будет доступен в виде команды оболочки:
sudo touch /usr/local/bin/setscalefactor
sudo chmod +x /usr/local/bin/setscalefactor
sudo nano /usr/local/bin/setscalefactor
Содержание моего сценария:
#!/bin/bash
if [ -z "${1}" ] || [ "$1" == "1" ] || [ "$1" == "1.0" ]; then
# set scaling to 1.0
gsettings set org.gnome.desktop.interface text-scaling-factor 1.0
gsettings set org.gnome.desktop.interface cursor-size 24
gsettings set com.ubuntu.user-interface scale-factor "{'VGA-1': 8, 'HDMI-0': 8, 'HDMI-1': 8}"
echo "Set Scale factor: 1.0"; notify-send "Scale Factor" "1.0"
elif [ "$1" == "1.25" ]; then
# set scaling to 1.25
gsettings set org.gnome.desktop.interface text-scaling-factor 1.25
gsettings set org.gnome.desktop.interface cursor-size 30
gsettings set com.ubuntu.user-interface scale-factor "{'VGA-1': 8, 'HDMI-0': 8, 'HDMI-1': 10}"
echo "Set Scale factor: 1.25"; notify-send "Scale Factor" "1.25"
elif [ "$1" == "1.5" ]; then
# set scaling to 1.5
gsettings set org.gnome.desktop.interface text-scaling-factor 1.5
gsettings set org.gnome.desktop.interface cursor-size 36
gsettings set com.ubuntu.user-interface scale-factor "{'VGA-1': 8, 'HDMI-0': 8, 'HDMI-1': 12}"
echo "Set Scale factor: 1.5"; notify-send "Scale Factor" "1.5"
else
echo "ERROR: Something went wrong!"; notify-send "Scale Factor" "ERROR: Something went wrong!"
fi
exit
- Скопируйте вышеуказанный контент и используйте в
nano
: Shift + Вставка для вставки; Ctrl + O и Enter для сохранения; Ctrl + X для выхода. - Заменить содержимое после
gsettings set
со значениями из вашей системы! - Обратите внимание на кавычки:
"{'VGA-1': ...}"
,
Сейчас setscalefactor
доступно как команда оболочки и может обрабатывать 1.0
, 1.25
а также 1.5
в качестве аргументов, также, когда он выполняется без аргумента, он будет продаваться 1. Скрипт напечатает и некоторые сообщения о состоянии.
Следующим шагом является создание этого скрипта, доступного через комбинацию клавиш. Перейдите в: Центр управления Unity (Системные настройки) > Клавиатура> Сочетания клавиш> Пользовательские сочетания клавиш. Затем создайте свои собственные ярлыки, например, как изображение:
Используйте команду ниже, чтобы проверить имя интерфейса панели отображения:
xrandr
Затем масштабировать:
xrandr --output HDMI-1-1 --scale 1x1
здесь HDMI-1-1 - это интерфейс моей панели дисплея, так как я подключен ко второму дисплею через порт hdmi.