两个不同的显示器上可以显示相同的图像吗?我使用的是 Ubuntu 18.04 i3wm
。我有一个自定义脚本i3lock
,其中包含 Morty(Rick & Morty)的图像。但是,在双显示器中,图像停留在显示器中间。有什么建议吗?
答案1
为了使用单个监视器而不是两个监视器的中心,您需要设置SDL_VIDEO_FULLSCREEN_HEAD
。根据您加载的方式,您可以通过在\i3
中指定或在运行时指定来执行此操作:~/.xinitrc
.xsessionrc
i3lock
i3
export SDL_VIDEO_FULLSCREEN_HEAD=0 # First monitor
0
是显示器的编号,从零开始。对于双显示器设置,您可以在0
和之间进行选择1
。通常,0
将是您在 BIOS POST 和初始 Linux 控制台中看到的显示器。
i3lock
仅有的
实现此目的的最简单方法是设置此变量i3lock
,因此通过编辑~/.config/i3/config
:
...
exec --no-startup-id i3lock ...
...
exec --no-startup-id SDL_VIDEO_FULLSCREEN_HEAD=0 i3lock ...
所有程序i3
要对 内的用户的所有应用程序执行此操作i3
,您需要将这一行添加到~/.xinitrc
\.xsessionrc
本身。
一旦在窗口管理器启动时定义了此变量,全屏应用程序将全部显示在此屏幕上,而不会分割显示在两个屏幕上。您可以通过导出变量并启动 来在单个终端中测试这一点i3lock
,但您必须按照前面所述进行更改并重新启动i3
才能使其正常工作。
你可能会发现的一个问题是~/.xinitrc
\.xsessionrc
并没有被引入i3
。推荐而是将这些配置添加到~/.profile
:
if [ "$0" = "/usr/sbin/lightdm-session" -a "$DESKTOP_SESSION" = "i3" ]; then
# Do stuff
fi
就我个人而言,我放弃了GDM
和,LightDM
而是登录到控制台/tty,并且startx
,与上述建议类似,使用Xsession
配置为i3
作为默认设置,这会导致正确初始化~/.xinitrc
:
#
# ~/.bash_profile
#
[ -e ~/.profile ] && source ~/.profile
[ -e ~/.bashrc ] && source ~/.bashrc
if [ $XDG_VTNR -le 2 ] && [ $TERM != "screen-256color" ]; then
startx /etc/X11/Xsession -- :1 -nolisten tcp
fi
桌面背景/壁纸
要设置壁纸(可能与 不同)i3lock
,您可以使用feh
。 feh
将设置两个显示器相同(默认情况下):
feh --bg-center /path/to/desktop.png --image-bg '#f1fa8c'
或者,在您的~/.config/i3/config
:
exec_always --no-startup-id sleep 5 ; feh --bg-center /path/to/desktop.png --image-bg '#f1fa8c'
或者,您可以设置xscreensaver
,它可以很好地处理双屏显示器,通过在两个显示器上都显示屏幕保护程序,并将登录提示放在单个显示器的中央。