i3lock, dasselbe Bild in einer Dual-Monitor-Konfiguration anzeigen?

i3lock, dasselbe Bild in einer Dual-Monitor-Konfiguration anzeigen?

Ist es möglich, dasselbe Bild auf zwei verschiedenen Monitoren anzuzeigen? Ich verwende Ubuntu 18.04 mit i3wm. Ich habe ein Skript für benutzerdefinierte i3lock, mit einem Bild von Morty (Rick & Morty). Aber auf dem Dualmonitor bleibt das Bild in der Mitte der Monitore. Irgendwelche Vorschläge?

Antwort1

Um einen einzelnen Monitor statt dem zentralen von beiden zu verwenden, müssen Sie einrichten SDL_VIDEO_FULLSCREEN_HEAD. Je nachdem, wie Sie laden i3, können Sie dies tun, indem Sie in ~/.xinitrc\ angeben .xsessionrc, oder i3lockwenn es von ausgeführt wird i3:

export SDL_VIDEO_FULLSCREEN_HEAD=0  # First monitor

0ist die Nummer des Monitors, beginnend bei Null. Bei einer Konfiguration mit zwei Monitoren können Sie zwischen 0und wählen 1. Normalerweise 0ist dies der Monitor, auf dem Sie den BIOS POST und die anfängliche Linux-Konsole sehen.

i3locknur

Der einfachste Weg, dies zu erreichen, besteht darin, diese Variable für festzulegen i3lock, also indem Sie Folgendes bearbeiten ~/.config/i3/config:

...
exec --no-startup-id i3lock ... 
...
exec --no-startup-id SDL_VIDEO_FULLSCREEN_HEAD=0 i3lock ... 

Alle Programme ini3

Um dies für alle Anwendungen Ihres Benutzers innerhalb zu tun i3, fügen Sie diese Zeile zu ~/.xinitrc\ .xsessionrcselbst hinzu.

Sobald diese Variable beim Start Ihres Fenstermanagers definiert ist, werden alle Vollbildanwendungen auf diesem einen Bildschirm angezeigt und nicht auf beide aufgeteilt. Sie können dies möglicherweise in einem einzelnen Terminal testen, indem Sie die Variable exportieren und starten i3lock, aber Sie müssen die Änderung wie zuvor beschrieben vornehmen und neu starten, i3damit alles richtig funktioniert.

Ein Problem, das Sie möglicherweise feststellen, ist, dass ~/.xinitrc\ .xsessionrcnicht von eingebracht werden i3.Empfehlungbesteht darin, stattdessen diese Konfigurationen hinzuzufügen zu ~/.profile:

if [ "$0" = "/usr/sbin/lightdm-session" -a "$DESKTOP_SESSION" = "i3" ]; then
    # Do stuff
fi

Persönlich habe ich sowohl GDMals auch aufgegeben LightDMund melde mich stattdessen bei der Konsole/dem TTY an und verwende startx, ähnlich dem obigen Vorschlag, Xsessionkonfiguriert mit i3als Standard, was eine ordnungsgemäße Initialisierung von bewirkt ~/.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

Desktop-Hintergrund/Wallpaper

Zum Einrichten eines Hintergrundbilds, das sich wahrscheinlich von unterscheidet i3lock, können Sie verwenden feh. fehrichtet beide Monitore gleich ein (standardmäßig):

feh --bg-center /path/to/desktop.png --image-bg '#f1fa8c'

Oder in Ihrem ~/.config/i3/config:

exec_always --no-startup-id sleep 5 ; feh --bg-center /path/to/desktop.png --image-bg '#f1fa8c'

Alternativ können Sie einrichten xscreensaver, das hervorragend mit Dual-Screen-Monitoren zurechtkommt, indem es den Bildschirmschoner auf beiden anzeigt und die Anmeldeaufforderung in die Mitte eines einzelnen Monitors platziert.

verwandte Informationen