Come farlo partire in automatico
schermata.jpg

ATTENZIONE: quanto segue è per KDE e scheda grafica NVIDIA. Per chi usa Gnome o ha un’altra scheda grafica quanto descritto in seguito può fungere da traccia, ma va modificato adattandolo a ciò che si usa.

Come già detto, uso Compiz per la possibilità che offre di avere diversi wallpapers sulle facce del cubo. Per farlo occorre disabilitare kdesktop (io uso KDE), il che comporta l’impossibilità di avere icone sul desktop e l’impossibilità di usare ‘Esegui comando’ sia da menu che da tastiera.

Per rimpiazzare le icone sul desktop ho aggiunto al pannello l’applet ‘esecuzione veloce’ e l’ho popolata di piccole icone (personalmente ne ho messe 10) che mi consentono di lanciare i corrispettivi programmi.
Altri ovviamente sono andati per volontà loro nella ‘systray’ di sistema aumentando quindi la possibilità di lanciare programmi con un semplice click.
Per sostituire il comando ‘esegui comando’, ho installato Katapult, la cui icona è andata nel systray.
Restava, almeno per me, il problema del vassoio di sistema che mi portava via troppo spazio non permettendomi così di avere lo scorrimento delle notizie sul pannello. Ho risolto togliendo l’applet dal pannello e sostituendola col pannello aggiuntivo ‘kasbar’ che ho posto in alto (ho scelto la dimensione variabile anzichè la dimensione fissa) che mi permette di vedere tutte le finestre in funzione, aperte o minimizzate).
A questo punto ho un desktop con più o meno le funzioni perse eliminando kdesktop.

Passiamo ora alla parte riguardante il lancio automatico di compiz al login con relativa disabilitazione di Kdesktop.
Il metodo usato funziona, anche se probabilmente il tutto potrebbe essere conseguito in modo più elegante e corretto.

Primo passo: creazione di una entrata per compiz-KDE nel menu di login.

Per creare una nuova voce nel menu di login basta creare un file (simile a quello già esistente per KDE) con le istruzioni per lanciare Xgl e Compiz. Ho chiamato il file in questione compiz-kde.desktop e lo salvato nella directory /usr/share/xsessions (N.B.: la directory è quella usata da Debian e Ubuntu; altre distribuzioni potrebbero usare un’altra posizione). Il contenuto del file salvato è il seguente:

[Desktop Entry]
Comment=Lancia compiz con KDE
Comment[it]=Lancia compiz con KDE
Encoding=UTF-8
Exec=/usr/bin/start_compiz-kde
GenericName=Compiz-KDE
GenericName[it]=Compiz-KDE
Icon=
MimeType=
Name=Compiz-KDE
Name[it]=Compiz-KDE
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=

Questo file fa comparire nel menu di login la voce ‘Compiz-KDE’ (ovviamente può essere cambiata). Selezionata tale voce viene richiamato lo script ‘/usr/bin/start_compiz-kde’, che adesso descrivo.

Secondo passo: creazione file per lanciare Xgl (e compiz)

#!/bin/sh
#window manager per :0
kwin&
#lancia backstep per evitare difficoltà minimizzando le finestre sullo schermo :0
backstep&
sleep 3

# Lancia Xgl, compiz
# Lancia Xgl su :1, sopra il normale server X
/usr/bin/Xgl :1 -fullscreen -ac -accel xv:fbo -accel glx:pbuffer &
#pausa per 3 secondi per essere sicuri che Xgl sia partito
sleep 3

# Istruisce i programmi X lanciati in seguito ad usare il server Xgl sul display :1
DISPLAY=:1

##Lancia compiz
##nohup compiz –replace gconf & > /home/mario/compiz.log 2>&1 &
compiz –replace dbus csm & /home/mario/compiz.log 2>&1 &
##Corregge Shift+BackSpace
xmodmap -e “keycode 22 = BackSpace BackSpace Terminate_Server”

# Lancia KDE
exec startkde

Questo file va salvato in /usr/bin col nome start_compiz-kde e reso eseguibile (click col tasto destro del mouse sul file, proprietà, eseguibile). Vediamo a cosa serve:
Con il primo comando lancio Kwin (il gestore di finestre di KDE) sul display 0. Mi servirà per quei programmi (TV, Giochi, ecc.) che vorrò lanciare sul normale server X e non su Xgl.
Il secondo comando mi lancia backstep (scaricabile da AMD64 o i386.
Serve per evitare di perdere le finestre che girano sul server X quando vengono minimizzate.
Le linee che seguono lanciano Xgl e Compiz sul display 1, che sarà quello usato abitualmente.

Terzo passo: disabilitazione di kdesktop e lancio automatico di cgwd e compiz

Resta ora la necessità di far partire il gestore di finestre CGWD e disabilitare Kdesktop in automatico al login. Per fare questo uso il file nominato x-start-compiz (può essere chiamato come si vuole che ho salvato e reso eseguibile in ~/.kde/Autostart.
Il file stesso contiene:

#!/bin/bash

sleep 6
if ps -A | grep -e “Xgl$” > /dev/null; then
# Ferma Kdesktop, dbus, csm, compiz
killall kdesktop &
killall dbus &
killall csm &
killall compiz &
sleep 3
# Lancia cgwd
cgwd –replace &
#Lancia compiz
compiz –replace dbus csm &
#Corregge Shift+BackSpace
xmodmap -e “keycode 22 = BackSpace BackSpace Terminate_Server”
fi

Come si vede innanzitutto vengono fermati kdesktop, dbus, csm e compiz. La ragione per cui fermo compiz è data dal fatto che altrimenti la faccia attuale del cubo non carica alcuna immagine e rimane bianca.
Successivamente viene lanciato il gestore di finestre cgwd e quindi compiz e csm (compiz-settings-manager).

A questo punto, quando riavvio il server X e mi loggo scegliendo la voce Compiz-KDE, mi ritrovo automaticamente nel mio ambiente KDE con il mio bravo cubetto con quattro wallpaper diversi per ogni faccia.

Tags: Linux Compiz HowTo Xgl Random

Annunci