dwm启动时如何设置光标位置?

dwm启动时如何设置光标位置?

我试图找出 dwm 在启动后如何决定鼠标光标的初始位置。我查看了 dwm.c 一段时间,但我对 C 和 X11 的了解并不足以解决这个问题。

我想做的是将光标放在我的主显示器上。现在它是在另一台上创建的,导致它最初被选中。当我第一次启动终端或其他东西(使用键盘)时,它在错误的监视器中打开。这是一个小烦恼,但也是学习一些东西的借口:)

我不确定 dwm 是否应该对此负责,或者 xorg 是否应该负责? dwm 是否知道使用 xrandr 设置的主要输出?

更新

我尝试在调用 run() 之前在 dwm.c 中的 main() 中使用 XWarpPointer() 。这样我成功地将指针移到了屏幕中央,但是错了:)

更新2

正如评论中所建议的,我的 xrandr 设置可能有问题。这里是:

xrandr —output DP-0 —rotate left
xrandr —output DP-0 —left-of DP-4
xrandr —output DP-4 —pos 1080x160
xrandr —output DP-4 —primary

编辑:dwm 首先初始化 DP-0(状态栏首先出现)。但是,如果我断开鼠标并重新启动,dwm 会正常运行,并且焦点位于 DP-4 上(尽管 DP-0 首先被初始化)。

更新3

作为测试,我启动了 i3wm 而不是 dwm。指针按预期初始化在屏幕中心 (DP-4),一切正常。

答案1

我在 Ubuntu 20.04 中使用 dwm-6.2 时遇到了完全相同的问题,并通过使用 X11 自动化工具(默认情况下随许多发行版安装)强制鼠标光标移动到所需的显示器来修复该问题。只需将以下行添加到dwm调用之前启动的脚本中:

xdotool mousemove 2000 200

将这些值替换为适当的 xy 坐标,其中 0 0 位于最左侧屏幕(虚拟屏幕)的左上角。

一个提示man dwm

  Mod1-, Focus previous screen, if any.
  Mod1-. Focus next screen, if any.
  Mod1-Shift-,
         Send focused window to previous screen, if any.
  Mod1-Shift-.
         Send focused window to next screen, if any.

因此,要在监视器之间轻松移动,请使用:

[Alt}+[.]
[Alt]+[,]

相关内容