Forse ho risolto, o quantomeno ho arginato il problema:
aggiungendo un'immagine di background all'xinitrc, anzi al ~/.xsession usando XDM o allo script richiamato da SDDM /usr/bin/jstart-joe-session (che poi è sempre uguale all'xinitrc) ad ogni modo ho aggiunto #
Codice: Seleziona tutto
aggiunge immagine di sfondo
feh --bg-scale .config/wallpaper.png &
Di seguito la mia ipotesi:
- in init3 non ci sono problemi, dwm è pensato per lavorare da lì e soprattutto non ci sono display manager che vogliono mettere le mani sulla sessione grafica. Questo fa sì che se non si imposta un background particolare, la schermata nera di default non viene influenzata da nulla e resta tale. Io sarò probabilmente troppo minimalista perché l'avevo sempre lasciata così senza farci neanche troppo caso, probabilmente perché da xinirc faccio partire già un terminale e mi trovo davanti quello, le schermate nere le vedo quindi di sfuggita quando ad esempio apro firefox, mi sposto sul tag 2 e lancio tasto win + "w".
- in init4 invece la sessione grafica è gestita dal display manager.
Questi gestori probabilmente sono pensati per stare sotto ad un ambiente grafico che gestisce il background in modo autonomo e completo, è il caso credo di SDDM, che quando si trova un WM scarno come dwm che di suo non prevede alcuna gestione di sfondo, lascia trasparire a video i pasticci più bizzarri.
Diverso è il comportamento di XDM ad esempio, ho provato e aggiunge automaticamente uno sfondo di default, bello azzurro... sembra quasi winxp. Se poi noi abbiamo uno sfondo nostro bene, altrimenti vediamo la schermata azzurra.
In conclusione aggiungendo "feh" come gestore di immagine di sfondo sembra tutto risolto.
Non so se sia veramente risolto o solo nascosto un problema.
Non so se mi sono spiegato: se quelle schermate permanenti erano normali perché SDDM si aspetta un background allora non c'è problema. Se invece il background semplicemente le copre, ma in realtà non ci dovrebbero essere, allora il problema c'è e non ne ho ancora capito il motivo.
Ho chiesto anche su LQ ed è lì che mi hanno suggerito la soluzione del wallpaper.
https://www.linuxquestions.org/question ... 175712930/
Se volete fare un test anche voi in tal senso potreste provare.
Fare il backup delle proprie eventuali personalizzazioni dell'avvio di sessione grafica.
Per lo scopo basta usare il xinitrc di default di dwm che si trova su SBo:
https://slackbuilds.org/slackbuilds/15. ... trc.dwm.ck
Come si vede è uno script che può essere impostato copiato in
~/.xinitrc
se si parte in init3
~/.xsession
per impostare poi "xdm" in /etc/rc.d/rc.4.local
Codice: Seleziona tutto
$ cat /etc/rc.d/rc.4.local
#!/bin/bash
#
# /etc/rc.d/rc.4.local
# this script is executed by /etc/rc.d/rc.4 and was created
# by joe to test various lightweight display managers. Seems
# init4 is needed by TeamViewer GUI to poup up, otherwise it
# doesn't start.
# if [ -x /usr/bin/xdm ]; then
# exec /usr/bin/xdm -nodaemon
# elif [ -x /usr/X11R6/bin/xdm ]; then
# exec /usr/X11R6/bin/xdm -nodaemon
# fi
# Look for SDDM as well:
if [ -x /usr/bin/sddm ]; then
exec /usr/bin/sddm
fi
/usr/bin/start-dwm
per usare "sddm" come display manager, in quel caso serve anche un ulteriore file in /usr/share/xsessions del tipo:
Codice: Seleziona tutto
$ cat /usr/share/xsessions/joe.desktop
[Desktop Entry]
Name=dwm Session
Comment=Use Xsession to start the desktop configured by xwmconfig
Exec=/usr/bin/start-dwm
lo script deve essere eseguibile e nel caso di quello messo in /usr/bin credo sia meglio che il proprietario sia root (chown root:root; chmod 755).
Infine se siete in init4 e volete passare in init3, da root lanciare "telinit 4" e viceversa.
O altrimenti modificare /etc/inittab, così si avvia in init3:
Codice: Seleziona tutto
# Default runlevel. (Do not set to 0 or 6)
id:3:initdefault:
Così in init4:
Codice: Seleziona tutto
# Default runlevel. (Do not set to 0 or 6)
id:4:initdefault: