在 Debian 和 Gnome 上设置屏幕旋转

在 Debian 和 Gnome 上设置屏幕旋转

我刚刚在我的 gpd pocket 2 上安装了 Debian 10,它运行良好,只是我无法让屏幕在登录时持续旋转。

目前,我可以通过登录时从齿轮菜单中选择“xorg 上的 GNOME”来旋转屏幕,然后运行,xrandr --screen 0 -o right但是这很快就会变得过时。

我尝试了几个 xorg 解决方案,但都没有成功。我根据以下脚本创建了以下脚本:https://github.com/joshskidmore/gpd-pocket-2-arch-guide#install-xorg-packageshttps://unix.stackexchange.com/questions/103460/how-to-change-gnome-default-screen-rotation

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

我已经安装在以下位置:

  • /etc/X11/xorg.conf(通过编辑当前的“监视”部分)
  • /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

我找到了一个 hack 解决方案,但它需要全新安装 Debian。让我解释一下。


为了修复我的屏幕,我更新了我的英特尔视频驱动程序。

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

settings我没有预料到的是,这个驱动程序会阻止 gnome 允许我使用-> display->进行更改orientation,这就是我寻找基于代码的解决方案的原因。正如我在上面的编辑中提到的,带有 Debian 10 和 GNOME 的 GPD Pocket 2 系统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++alt2绑定),但不会修复您的登录屏幕。这仍然是这个难题的一部分,我没有解决方案,但继续前进。

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 秒,它将通过挂起/唤醒循环保持分辨率。

相关内容