Рейтинг:0

Разрыв экрана и проблемы с несколькими мониторами в Lubuntu

флаг cn

Итак, у меня некоторое время были проблемы с разрывом экрана в моей системе.

Наконец понял, что работает

комптон --backend glx --vsync opengl

в терминале позволяет мне избавиться от разрывов экрана.

Поэтому я решил, что было бы неплохо добавить эту команду в автозагрузку, чтобы она просто запускалась каждый раз, когда я загружаюсь. Однако, хотя теперь я загружаю экран без разрывов, мой второй монитор (который на самом деле является экраном моего ноутбука, мой основной экран является внешним монитором, подключенным через VGA) просто серый (хотя мой указатель мыши виден сверху при переходе на этот экран а приложения нет). Убийство Комптона избавляет от проблемы, и запуск той же команды из командной строки по-прежнему работает, но я просто не могу понять, как заставить ее работать с самого начала, поэтому любой ваш вклад, ребята, будет очень ценен!

bw3u avatar
флаг cn
Какой у вас графический процессор? Ваш вопрос не ясен, хотите ли вы запускать комптон (теперь это пиком, пожалуйста, обновите его) при запуске?
tlleclerc avatar
флаг cn
Да, конечно! Мой плохой, я не очень хорош в этом. Мой графический процессор — Nvidia GT 630M (старый). Я хочу запустить команду, упомянутую выше, при запуске, чтобы избавиться от разрыва экрана, но когда я делаю это в качестве предпочтения запуска, мой другой монитор становится серым, а если я запускаю его вручную из терминала, он делает это.
bw3u avatar
флаг cn
Вы в полном порядке, я добавил ответ, надеюсь, он решит вашу проблему. Также какую среду рабочего стола вы используете LXQt?
guiverc avatar
флаг cn
Вы не предоставили подробностей о выпуске, но смотрели ли вы руководство? https://manual.lubuntu.me/stable/3/3.2/3.2.13/session_settings.html?highlight=autostart (поскольку я не знаю ваш выпуск, я предоставил *стабильный* выпуск (т.е. 21.04 ), поэтому настройте URL-адрес в соответствии с вашей системой, если вы не используете 21.04)
tlleclerc avatar
флаг cn
Извините, ребята, сейчас я использую Lubuntu 20.04 с LXQt.
Рейтинг:0
флаг cn

There's plenty way of doing this but I mostly add apps or scripts that I want to start before Window Manager, I add them to .xprofile.

So create a magical file named .xprofile in your home directory. /home/username/.xprofile.

Add the following contents:

compton --backend glx --vsync opengl &

When you login it should start the apps or scripts you've provided. Alternatively if .xprofile does not work. You can create the .xinitrc and use it with the same content.

Extras:

  • I highly suggest you to, update compton to picom if you haven't done it yet.
  • Create a configuration file in .config/picom/picom.conf
  • Fill the config with sample config.
  • After saving your config edit your .xprofile with:
picom &
  • For your screen tearing issue this might solve it as well; after installing proprietary NVIDIA drivers (370 or higher version). Edit: Seems your GPU supports NVIDIA 390, you can install it with this command: sudo apt install nvidia-driver-390

    • You can try adding nvidia-drm.modeset=1 kernel parameter in /etc/grub/default to GRUB_CMDLINE_LINUX_DEFAULT, dont forget to update your grub as well with; sudo update-grub (Source)
  • If you need anything else feel free to reply :)


Edit 2: First try making .xprofile and/or .xinitrc executable with:

$ chmod +x .xprofile
$ chmod +x .xinitrc

If .xprofile and .xinitrc doesn't works let's create a configuration and directly start compton with LXQt Autostart.

  • Create a configuration in /home/username/.config/compton.conf
  • Add the following contents;
backend = "glx";
glx-no-stencil = true;

# Try to detect WM windows and mark them as active.
mark-wmwin-focused = true;

# Mark all non-WM but override-redirect windows active (e.g. menus).
mark-ovredir-focused = true;

# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events.
# Usually more reliable but depends on a EWMH-compliant WM.
use-ewmh-active-win = true;

# Painting on X Composite overlay window. Recommended.
paint-on-overlay = true;

# GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
# Recommended if it works.
glx-no-rebind-pixmap = true;

# Set VSync method. VSync methods currently available:
# none: No VSync
# drm: VSync with DRM_IOCTL_WAIT_VBLANK. May only work on some drivers.
# opengl: Try to VSync with SGI_video_sync OpenGL extension. Only work on some drivers.
# opengl-oml: Try to VSync with OML_sync_control OpenGL extension. Only work on some drivers.
# opengl-swc: Try to VSync with SGI_swap_control OpenGL extension. Only work on some drivers. Works only with GLX backend. Known to be most effective on many drivers. Does not actually control paint timing, only buffer swap is affected, so it doesn’t have the effect of --sw-opti unlike other methods. Experimental.
# opengl-mswc: Try to VSync with MESA_swap_control OpenGL extension. Basically the same as opengl-swc above, except the extension we use.
# (Note some VSync methods may not be enabled at compile time.)
vsync = "opengl";

# If not specified or 0, compton will try detecting this with X RandR extension.
refresh-rate = 0;
  • With this you won't have to pass parameters to compton. You can Google it for detailed compton configurations.

  • I assume you are familiar with LXQt you can just add compton to Autostart. Preferences -> Default applications for LXSession -> Autostart -> Manual autostarted applications -> Add

  • If it doesn't work either you can do something like this;

    • Add this to line ~/.config/lxsession/Lubuntu/autostart (if it doesn't exist create it and make it executable with chmod +x)
@compton

or

@compton -b
  • -b parameter deamonizes the compton.
  • Hopefully compton will start with session.
tlleclerc avatar
флаг cn
Эй, еще раз спасибо за вашу помощь. Я добавил строку выше /home/[myusername]/.xprofile, но, к сожалению, это не остановило разрыв экрана, как это происходит при ручном запуске команды из командной строки. Я действительно удивляюсь, почему это не работает так же... :( Я действительно готов попробовать что-нибудь на данный момент.
tlleclerc avatar
флаг cn
К сожалению, установка Nvidia 390 просто заставила меня загрузиться прямо в черный экран (даже не на страницу журнала), поэтому мне пришлось установить nomodeset при загрузке и нажать ALT + CTRL + F1, чтобы удалить и очистить драйвер Nvidia и переустановить драйвер Nouveau.
bw3u avatar
флаг cn
Это облом, у меня были такие проблемы, когда я использовал 390 несколько лет назад. [Arch Wiki](https://wiki.archlinux.org/title/NVIDIA_Optimus) была действительно полезной, вы можете проверить ее, если у вас есть свободное время. Кроме того, на самом деле нет никакой разницы между запуском с вашего терминала или при запуске, тем временем вы можете передать параметр `-b` комптону, он будет работать в фоновом режиме, поэтому вам не придется поддерживать работу вашего терминала на переднем плане. Можете ли вы подтвердить, что `.xprofile` также запускает комптон при запуске сеанса? Вы можете добавить ту же строку в свой `.xinitrc`, если комптон не будет начинаться с `.xprofile`
tlleclerc avatar
флаг cn
Плохие новости! Я пробовал с `.xprofile`, а также с `.xprofile` и `.xinitrc`, но в любом случае комптон не запускался при запуске сеанса.
bw3u avatar
флаг cn
@tlleclerc Я добавил больше решений, сегодня я узнал, что с LXQt немного больно работать :)
tlleclerc avatar
флаг cn
Еще раз большое спасибо! Я попробую это сегодня вечером и дам вам знать, как это работает!

Ответить или комментировать

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