Vecchie schermate restano impresse sulla nuova schermata

Se avete problemi con l'installazione e la configurazione di Slackware64 postate qui. Non usate questo forum per argomenti che trattano la Slackware32 o generali... per quelli usate rispettivamente il forum Slackware e Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware64 usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware64, se l'argomento è Slackware32 o generale usate rispettivamente il forum Slackware o Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Vecchie schermate restano impresse sulla nuova schermata

Messaggio da joe »

Scusate il titolo, ma non sapevo come meglio descrivere questo strano problema.

Avevo accennato in altro topic chilometrico il problemuccio che ho rilevato usando il window manager "dwm":
  • cambio schermata (chiamiamola come vogliamo: tag, workspace, ecc)
  • e mi ritrovo quello che vedevo nella schermata precedente
  • invece di ritrovarmi la nuova schermata vuota con lo sfondo sgombro e pulito
  • la "traccia" della schermata precedente è solo visiva, cliccando qua e la non accade nulla. È come se sullo schermo fosse rimasta una "macchia" digitale di quanto vi era prima.
Aggiungo un particolare: la sessione grafica nel verificarsi di questo problema è gestita dal display manager SDDM. Quindi siamo in "init4".


Soluzioni provate
  1. cambio di WM/DM: se passo ad esempio a XFce, lì il cambio di area di lavoro non presenta lo stesso problema. Pur essendo sempre sotto SDDM. Si risolve senza neanche riavviare: si esce da dwm, e salta fuori SDDM rifaccio il login selezionando Xfce e il problema si risolve.
    (però io voglio usare dwm, non xfce ovviamente)
  2. cambio di runlevel: se passo da init4 a init3, riavvio e lancio il server grafico X con startx, anche con dwm il problema sparisce.
Notare che usavo dwm anche prima... Sia dopo l'aggiornamento a slack-15 con i driver Nouveau, sia con i driver nvidia in seguito. Non ricordo sinceramente così al volo se ero passato a init4 prima o dopo essere passato ai driver proprietari.
Quindi non so dire se questa configurazione: dwm + nouveau + init4 sia inedita oppure l'avessi già utilizzata la settimana scorsa... vedi oltre...

Quando si è verificato questo comportamento:
  • avevo in uso i drivers video proprietari nvidia-legacy340 installati via pacchetto SBo con qualche patch per la parte "kernel".
  • li ho rimossi dopo aver dato nvidia-switch --remove.
  • Ho quindi tolto il file "10-nvidia" da /etc/X11/xorg.conf.d/ e al suo posto ho inserito il corrispondente per utilizzare il driver nouveau "20-nouveau". Poi va be' ho rimosso il pacchetto xf86-video-nouveau-blacklist.
  • riavviando e lasciando la stessa configurazione in init4 con sddm ho riscontrato il problema.
Nel dubbio ho anche lanciato:

Codice: Seleziona tutto

rm /var/cache/packages/*
slackpkg reinstall x/* l/*
Aggiungo ancora un dettaglio, sono su multilib ottenuto via slackpkg+ e il repo apposito di AlienBob.

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Vecchie schermate restano impresse sulla nuova schermata

Messaggio da rik70 »

Riesci a postare l'output di xrandr e il log di Xorg quando il problema si verifica?

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Vecchie schermate restano impresse sulla nuova schermata

Messaggio da rik70 »


Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Vecchie schermate restano impresse sulla nuova schermata

Messaggio da joe »

Non ci ho capito troppo nella risposta...
Il bizzarro comportamento al cambio di schermata lo rilevo anche su una nuova installazione di slackware84-15.0,, che ho messo in piedi per testare un attimo la cosa in ambiente pulito.

In pratica ho installato full, poi ho compilato dwm, ho impostato init4 in inittab, ho impostato il file .desktop per dewm in modo che si possa scegliere in SDDM.
OK, riavvio, faccio il login grafico.
Parte dwm ed ecco che siamo alle solite: se apro un terminale e poi passo ad una schermata vuota, su quest'ultima mi ritrovo ancora il disegno del terminale...
Lo fa sia con dwm-6.2 che con dwm-6.3.
Con xfce o plasma invece tutto ok.

Ho quindo provato a cambiare Display Manger.
Su slack c'è XDM.
Impostato (si deve semplicemente impostare ~/.xsession in questo caso, niente file .desktop e altre diavolerie moderne, riavviato, login e parte dwm.
Sorpresa!

Lo sfondo di dwm che solitamente di suo era "nero", avviando con XDM appare azzurro.
Boh... Da cosa dipenda non lo so, forse lo sfondo viene gestito dal display manager se non è esplicitamente gestito dal DE? Sinceramente on so bene come funziona, ho sempre avviato in init3 + startx anche se in modo automatizzato con auto-login.
Fatto sta che sta volta se apro un terminale e poi vado sulla schermata numero "2" vuota, trovo lo sfondo azzurro, e non più la vecchia schermata stampata sullo schermo.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Vecchie schermate restano impresse sulla nuova schermata

Messaggio da joe »

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:

Rispondi