Настройка поворота экрана в Debian и Gnome

Настройка поворота экрана в Debian и Gnome

Я только что установил Debian 10 на свой gpd pocket 2, и он работает отлично, за исключением того, что я не могу заставить экран постоянно поворачиваться при входе в систему.

В настоящее время я могу повернуть экран, выбрав «GNOME на xorg» в меню шестеренки при входе в систему, а затем запустить его, xrandr --screen 0 -o rightоднако это быстро надоест.

Я попробовал пару решений xorg, но не добился успеха. Я создал следующий скрипт на основеhttps://github.com/joshskidmore/gpd-pocket-2-arch-guide#install-xorg-packagesиhttps://unix.stackexchange.com/questions/103460/how-to-change-screen-rotation-gnome-default:

Section "Monitor"
  Identifier    "eDP1"
  Option        "Rotate"                 "right"
EndSection

Я установил его в следующих местах:

  • /etc/X11/xorg.conf (путем редактирования текущего раздела «monitor»)
  • /etc/X11/xorg.conf.d/ (мне пришлось создать этот каталог, а затем создать «30-display.conf» с указанными выше настройками)
  • /usr/share/X11/xorg.conf.d (только что добавлен файл "30-display.conf")

И все это приводит к мерцанию при входе в систему. Я вижу черную вспышку (похожую на ту, которая появляется, когда я запускаю систему xrandrпосле входа в систему), затем квадрат, заполненный статическим серым цветом примерно на 1 секунду дважды подряд, затем он загружает экран в «нормальной» / боковой ориентации.

Даже когда я вставляю xrandr --screen 0 -o right~/.profile, наблюдается тот же эффект. Это работает, когда я вставляю его в ~/.bashrc, но это после входа в систему, и опять же, я хотел бы автоматизировать эту конфигурацию.

У меня такое чувство, что Debian пытается реализовать конфигурацию, но что-то конфликтует. Как мне продолжить это начинание?

РЕДАКТИРОВАТЬ:Некоторая новая информация

Определил свой менеджер экрана поhttps://unix.stackexchange.com/a/20376/293647и это:

/usr/sbin/gdm3

Прочитав следующую ссылку, я узнал следующее о GDM:

https://wiki.archlinux.org/index.php/GDM#Rotate_login_screen

Changes will take effect on logout. This is necessary because GDM does not respect xorg.conf.

Вероятно, поэтому я не могу выполнить ротацию с помощью xorg. Итак, что дальше?

ПРАВКА 2:

https://www.reddit.com/r/GPDPocket/comments/ao95t9/tracking_touch_screen_calibration_issue_on_pocket/eg0odbe?utm_source=share&utm_medium=web2x

gnome все еще не ориентирован, но этот код из приведенной выше ссылки ориентирует grub!

sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="fbcon=rotate:1 quiet"
sudo update-grub # a lot of guides are missing this step

решение1

Я нашел хакерское решение, но оно требует свежей установки Debian. Позвольте мне объяснить.


Чтобы исправить проблему с экраном, я обновил видеодрайвер Intel.

https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel

Чего я не ожидал, так это того, что этот драйвер заблокирует gnome, позволяя мне вносить изменения с помощью settings-> display->, orientationи именно поэтому я искал решение на основе кода. Как я уже упоминал в редактировании выше, система GPD Pocket 2 с Debian 10 и GNOME использует GDMкак менеджер экрана по умолчанию, поэтому любое решение на основе xorg потерпит неудачу.

Итак, первым шагом в решении этой проблемы была переустановка Debian. Это было возможно для меня, поскольку я как раз занимался настройкой своего Pocket 2, но я также признаю, что это не приемлемо для всех подобных ситуаций. Поэтому я не собираюсь принимать свой ответ и буду ждать более подробного объяснения и решения для постоянного исправления экрана. Но до тех пор, возможно, рассмотрите следующую хакерскую процедуру.


1) Предположим, что у вас новая установка, давайте сначала исправим grub. В терминале:

sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="fbcon=rotate:1 quiet"
sudo update-grub                    # a lot of guides are missing this step

Это сориентирует системный вывод при загрузке и консоли grub (например, через сочетание клавиш function+ alt+ 2), но не исправит экран входа в систему. Это остается частью этой головоломки, для которой у меня нет решения, но идем дальше.

2) Далее, давайте соберем нашу хакерскую автоматическую ориентацию экрана.

Сначала перейдите settings-> display-> orientationи выберите ориентацию portrait leftи разрешение 1200x1920.

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

3) Если вы хотите автоматически загрузить улучшенную ориентацию, вот что я сделал.

Далее перейдите Tweaks-> Startup Applicationsи выберите Терминал.

Наконец, в файле ~/.bashrc введите следующий код в любое место:

res=$(xrandr | grep \* | cut -d' ' -f4)
if [ "$res" != "600x960_60.00" ]; then
    xrandr --newmode "600x960_60.00" 47.25 600 640 696 792 960 963 973 996 -hsync +vsync
    # the above line informed from: https://superuser.com/a/716837/1078490
    # you may have to configure the line according to your cvt output
    xrandr --addmode eDP-1 "600x960_60.00"
    xrandr --output eDP-1 --mode "600x960_60.00"
fi

Теперь, когда вы входите в систему, запустится терминал, а затем .bashrc автоматически обработает конфигурацию разрешения. Не идеально, так как открытие/закрытие крышки не встретит этот скрипт, и вам придется снова открыть терминал. Но он будет поддерживать разрешение в циклах приостановки/пробуждения, если вы будете удерживать кнопку питания в течение ~3 секунд перед закрытием крышки.

Связанный контент