Lubuntu 中的屏幕撕裂和多显示器问题

Lubuntu 中的屏幕撕裂和多显示器问题

所以我的系统上有一段时间出现屏幕撕裂问题。

终于明白了

compton --backend glx --vsync opengl

在终端中可以让我摆脱屏幕撕裂的问题。

因此,我决定将此命令添加到启动项中,这样每次启动时它都会运行,这是一个好主意。但是,尽管我现在启动时屏幕没有撕裂,但我的第二台显示器(实际上是我的笔记本电脑屏幕,我的主屏幕是通过 VGA 连接的外部显示器)只是灰色的(虽然移动到该屏幕时我的鼠标指针在顶部可见,但应用程序不可见)。关闭 compton 可以解决问题,从命令行运行相同的命令仍然有效,但我就是搞不清楚如何让它从启动时工作,所以非常感谢你们的任何意见!

答案1

有很多方法可以做到这一点,但我主要添加我想在窗口管理器之前启动的应用程序或脚本,我将它们添加到.xprofile

.xprofile因此,在您的主目录中创建一个名为的神奇文件/home/username/.xprofile

添加以下内容:

compton --backend glx --vsync opengl &

当您登录时,它应该启动您提供的应用程序或脚本。或者,如果.xprofile不起作用。您可以创建.xinitrc并使用相同的内容。

额外内容:

  • 如果您还没有这样做,我强烈建议您,将 compton 更新为 picom。
  • 在中创建配置文件.config/picom/picom.conf
  • 使用示例填充配置配置
  • 保存配置后,.xprofile使用以下命令编辑:
picom &
  • 对于您的屏幕撕裂问题,安装专有 NVIDIA 驱动程序(370 或更高版本)后,这也许可以解决它。编辑:看来你的 GPU 支持 NVIDIA 390,你可以使用以下命令安装它:sudo apt install nvidia-driver-390

    • 您可以尝试在中添加内核nvidia-drm.modeset=1参数,不要忘记使用以下命令更新您的 grub;(/etc/grub/defaultGRUB_CMDLINE_LINUX_DEFAULTsudo update-grub来源
  • 如果您还有其他需要,请随时回复:)


编辑2:首先尝试使用以下命令制作.xprofile和/或.xinitrc可执行文件:

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

如果.xprofile不起作用,.xinitrc让我们创建一个配置并直接compton使用 LXQt Autostart 启动。

  • 在中创建配置/home/username/.config/compton.conf
  • 添加以下内容;
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;
  • 这样你就不必向 compton 传递参数了。你可以谷歌搜索 compton 的详细配置。

  • 我假设您熟悉 LXQt,您可以将其添加compton到自动启动中。- Preferences> Default applications for LXSession-> Autostart-> Manual autostarted applications->Add

  • 如果这也不起作用,您可以做这样的事情;

    • 将其添加到行~/.config/lxsession/Lubuntu/autostart(如果不存在,则创建它并使其可执行chmod +x
@compton

或者

@compton -b
  • -b参数使康普顿变为非恶魔化。
  • 希望康普顿能以会议开始。

相关内容