【问题标题】:Changing default focused screen on awesome wm在真棒 wm 上更改默认聚焦屏幕
【发布时间】:2021-03-23 01:47:06
【问题描述】:

我的笔记本电脑上有一些 hacky 设置,我使用 optimus-manager 在 X 启动时根据是否连接外接显示器来配置我的屏幕布局。如果是这样,我只想使用外接显示器而不是笔记本电脑显示器,但由于 NVIDIA 驱动程序的限制,我需要让笔记本电脑显示器保持开启状态,并降低背光亮度。请参阅我的 /etc/optimus-manager/xsetup-hybrid.sh 了解其工作原理(eDP-1 是我的笔记本电脑屏幕,HDMI-1-0 是我的外接显示器):

#!/bin/sh

# Everything you write here will be executed by the display manager when setting up the login screen in "hybrid" mode.

xrandr --output eDP-1 --mode 1920x1080 --pos 3000x0 --output HDMI-1-0 --primary --mode 2560x1080 --pos 0x0
if [ "$?" -ne "0" ]; then
    echo "Not connected to display, don't dim internal monitor"
    exit 0
fi

echo 0 | tee /sys/class/backlight/intel_backlight/brightness

注意eDP-1(笔记本电脑显示器)位于3000x0。我这样做是为了让屏幕保持足够远的距离,这样我的鼠标就不会意外地从外接显示器的屏幕偏离到笔记本电脑显示器的屏幕上。

这很好用,但是由于某种原因,每次我登录到 awesome(或者任何时候我用 xrandr 更改屏幕布局时),即使 xrandr 是将外接显示器屏幕指定为--primary

如何更改此行为,以便在连接显示器时默认聚焦我的外部显示器屏幕,如果未连接,则返回到我的笔记本电脑屏幕?

【问题讨论】:

  • “令人敬畏的笔记本电脑显示器”究竟是什么意思?当真棒启动时,是否有 X11 程序已经在运行,并且它在错误的屏幕上将输入焦点提供给其中一个程序?或者没有客户端并且鼠标光标被扭曲到“另一个”屏幕?
  • 我的意思是,如果我要打开一个客户端(带有键绑定)、运行提示等,它们会在笔记本电脑显示器上打开(错误的是 不是主要的xrandr屏幕)

标签: lua awesome-wm


【解决方案1】:

您可以将鼠标光标扭曲到配置中的主屏幕:

mouse.screen = screen.primary

以上内容也可以通过awesome-client:awesome-client 'mouse.screen = screen.primary'在已经运行的超赞会话中进行测试。

如果要更精确地确定指针坐标(以上使用屏幕左上角),有mouse.coords({ x = 42, y = 21 })

【讨论】:

    【解决方案2】:

    应用程序可能正在鼠标当前所在的位置显示。您可以使用 xdotool 来确保鼠标位于所需的显示器上。

    #!/bin/sh
    
    ##  executed by display manager during login
    
    if [ "$?" -eq "0" ] ; then
        xrandr --output eDP-1 --mode 1920x1080 --pos 3000x0 --output HDMI-1-0 --primary --mode 2560x1080 --pos 0x0
        echo 0 | tee /sys/class/backlight/intel_backlight/brightness
    
        ##  sudo apt install xdotool
        ##  x, y  coordinates:  half of 2560x1080, so middle of main screen
        xdotool mousemove 1280 540
    else
        ##  external display not plugged in
        xrandr --output eDP-1 --mode 1920x1080 --primary --pos 0x0
    fi
    

    【讨论】:

    • 感谢您对xdotool 的关注。该脚本不能很好地工作,因为它在显示登录屏幕之前运行,但鼠标移动的问题发生在我登录后。我可以将它添加到某种登录脚本中。
    • 如果我将脚本中的echo 0 更改为echo 10,我可以看到另一个屏幕,并且可以看到那里没有应用程序。此外,每当我使用 [a|x]randr 进行更改时,都会出现这个问题 - 一旦我执行更改,awesome 就会聚焦在另一个屏幕上,并且鼠标会移动到它。
    • 您可以使用别名 xrandr 将 --output HDMI-1-0 --primary 附加到该命令的任何进一步使用中,以确保不会撤消 ( .bashrc | .bash_aliases )。否则,请使用尊重您最初选择的 GUI,相信 ARandR 会这样做。
    • 如果我运行xrandr -q,我可以看到HDMI-1-0 仍然是主要输出,所以我认为它不会被覆盖。无论如何,@Uli 的答案更符合我的要求;我相信很棒的 AP​​I 比登录脚本更耐错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多