URL: https://linuxfr.org/users/fleny68/journaux/ma-simple-session-avec-compiz-et-cairo-dock Title: Ma simple session avec Compiz et Cairo-dock Authors: fleny68 Date: 2011年07月17日T17:44:27+02:00 License: CC By-SA Tags: bidouille, personnalisation, desktop, policykit, sudo, cairodock et compiz Score: 18 Je continue mon exploration de [ma nouvelle machine](https://linuxfr.org/users/fleny68/journaux/nouvelle-machine-ubuntu-live-debian), et j'ai (dès le départ) profité de Compiz pour agrémenter l'expérience utilisateur. Ce que j'aime dans Compiz c'est le placement des fenêtres sur la moitié droite et la moitié gauche en un raccourci clavier, le cube avec les engrenages, et les fenêtres qui se déforment. C'est gadget, sauf le placement. Mais mon précédent ordinateur avec une nvidia non supporté, il marchait sans 3D. Je n'ai pas eu de mal avec compiz, il y a juste une commande absconse à taper pour dire à gnome de l'utiliser: ```text gconftool-2 --type string --set /desktop/gnome/session/required_components/windowmanager compiz ``` Et puis j'ai aussi découvert [cairo-dock](http://glx-dock.org/). Et là je dois avouer que j'ai été assez épaté. Je me suis donc dit: adieu gnome, au revoir xfce4, je me mets un bureau compiz et cairo-dock, le plus simple possible. Une session compiz & cairo-dock ============================= On pourrait se dire c'est trop facile, on installe le packet cairo-dock-compiz-session, et basta! Mais je n'ai pas trouvé un tel packet. Ce que j'ai trouvé, c'est un tas de solutions pour faire tourner compiz et cairo-dock sous xfce4 ou sous gnome (par exemple: tuer xfwm4 et lancer compiz dans une action automatique au démarrage, lancer cairo-dock de même). Mais non, je ne veux pas vraiment une session xfce4 ou gnome (ou kde) sans panels mais avec cairo-dock à la place. Je veux un truc simple: une session compiz avec cairo-dock. Paramétrer les gestionnaires de session de gnome ou xfce4 pour obtenir ça ne semble pas très simple. Avec lxsession -------------- J'ai fini par trouver une solution: [lxsession](http://wiki.lxde.org/fr/LXSession). C'est un gestionnaire de session tout simple (celui de LXDE). La configuration tient en deux fichiers, à placer dans un répertoire _Compiz_ sous /etc/xdg/lxsession: Le premier fichier contient la liste des programmes à lancer au démarrage. on place un '@' devant s'il doit être relancé en cas de crah (si j'ai bien compris): ```text $ cat /etc/xdg/lxsession/Compiz/autostart @xscreensaver -no-splash @cairo-dock -o -e xfce @/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 ``` Le fichier pour LXDE m'a servi de modèle. Je ne sais pas à quoi peut bien servir le _/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1_ et je sens que je vais essayer sans (plus c'est simple mieux ça marche). Le second fichier contient la configuration du WM, on peut y ajouter le thème de GTK par exemple: ```text $ cat /etc/xdg/lxsession/Compiz/desktop.conf [Session] window_manager=compiz [GTK] sNet/ThemeName=Clearlooks sNet/IconThemeName=nuoveXT2 sGtk/FontName=Sans 10 iGtk/ToolbarStyle=3 iGtk/ButtonImages=1 iGtk/MenuImages=1 iGtk/CursorThemeSize=18 iXft/Antialias=1 ``` Une fois qu'on a fait ça on peut lancer la session par ```text lxsession -s Compiz ``` Plus qu'à demander à à GDM3 de proposer ça comme choix. Deux fichiers sont nécessaires. Le premier semble devoir se placer dans /usr/share/xsessions/ (je ne suis pas arrivé à le faire marcher en le plaçant sous /usr/local/share/xsessions/, ce qui aurait été l'endroit normal pour moi) ```text $ cat /usr/share/xsessions/compiz.desktop [Desktop Entry] Version=1.0 Name=Compiz Session Name[fr]=Session Compiz Comment=Use this session to run Xfce as your desktop environment Comment[fr]=Utilisez cette session pour exécuter Compiz comme environnement de bureau Exec=startCompiz Icon= Type=Application ``` Le second est le script de lancement indiqué, lui fonctionne sous /usr/local ```sh $ cat /usr/local/bin/startCompiz #!/bin/bash cd $HOME eval `dbus-launch --sh-syntax --exit-with-session` /usr/bin/X :0.0 -br -audit 0 -nolisten tcp vt7 & export DISPLAY=:0.0 sleep 1 #compiz-manager decoration move resize> /tmp/compiz.log 2>&1 & # add more apps here if necessary or start another panel, tray like pypanel, bmpanel, stalonetray ck-launch-session lxsession -s Compiz ``` (J'ai piqué ça [chez Arch](https://wiki.archlinux.org/index.php/Compiz#As_a_Standalone_Window_Manager)), je ne sais pas si le dbus-launch est nécessaire. Faire marcher cairo-dock ======================== Il ne vous aura pas échappé que cairo-dock est lancé par lxsession avec une option de compatibilité avec XFCE: ```text cairo-dock -o -e xfce ``` En effet sans une telle option (en gros xfce/gnome/kde) l'applet qui affiche les raccourcis reste vide. J'ai choisis xfce parce que je présume que c'est la solution la moins lourde entre les trois. En attendant lxde, qui aurait l'avantage d'être léger et compatible avec lxsession. En effet il y a un problème: il est impossible de se déloguer avec l'applet idoine: elle appelle _xfce4-session-logout_ qui ne marche pas avec lxsession. On peut bien sûr remplir à la main la configuration de l'applet et forcer _lxsession-logout_, mais chaque utilisateur devra faire de même; j'ai choisi plus simplement de détourner _xfce4-session-logout_. Détournement de _xfce4-session-logout_ -------------------------------------- Sous debian le détournement de fichier se fait ainsi: ```text dpkg-divert --divert /usr/bin/xfce4-session-logout.real --rename /usr/bin/xfce4-session-logout ``` Ça revient à un _mv /usr/bin/xfce4-session-logout /usr/bin/xfce4-session-logout.real_ en plus costaud. Plus qu'à installer à la place du fichier détourné un script qui appelle le bon programme de sortie: ```sh $ cat /usr/bin/xfce4-session-logout #!/bin/sh if pidof lxsession 2>&1> /dev/null ; then lxsession-logout ; else xfce4-session-logout.real $@ ; fi ``` Avant les droits sous unix, c'était simple ========================================== Voilà, en théorie ça devrait marcher. Et ça marche! J'obtiens bien le menu de lxsession-logout avec ses nombreux boutons, mais suspendre et hiberner ne marchent pas. Et le problème semble connu, j'ai toutefois eu du mal à le contourner. Je vous donne le truc. Le problème provient de [UPower](http://upower.freedesktop.org/). Ce bidule utilise pour gérer les droits un truc parfaitement abscon: [PoliciKit](http://hal.freedesktop.org/docs/PolicyKit/). lxsession-logout ne semble pas s'y identifier comme une session active, et seules les sessions actives peuvent utiliser UPower. J'ai du autoriser les sessions inactives dans _/usr/share/polkit-1/actions/org.freedesktop.upower.policy_ (un autre fichier de configuration qui n'est pas dans /etc ?) ```xml $ cat /usr/share/polkit-1/actions/org.freedesktop.upower.policy The UPower Project http://upower.freedesktop.org/ system-suspend Suspend the system Mettre le système en veille Sospende il sistema Wstrzymanie systemu Försätt systemet i vänteläge Authentication is required to suspend the system Vous devez vous identifier pour mettre le système en veille È richiesto autenticarsi per sospendere il sistema Wymagane jest uwierzytelnienie, aby wstrzymać system Autentisering krävs för att försätta systemet i vänteläge yes yes Hibernate the system Mettre le système en hibernation Iberna il sistema Hibernacja systemu Försätt systemet i viloläge Authentication is required to hibernate the system Vous devez vous identifier pour mettre le système en hibernation È richiesto autenticarsi per ibernare il sistema Wymagane jest uwierzytelnienie, aby zahibernować system Autentisering krävs för att försätta systemet i viloläge yes yes ``` Avant les droits sous unix c'était simple. Il suffisait d'ajouter un utilisateur idoine dans le groupe adéquat et c'était réglé. Je sens que ce genre de machin va beaucoup m'énerver. Voilà un bureau simple (si on peut qualifier Compiz et Cairo-dock de simples...) comme je les aime. Un seul petit inconvénient avec cairo-dock, le changement de thème semble faire sauter la configuration, les applets ajoutées, etc... **PS_qui_n_a_rien_a_voir**: félicitations aux petites mains qui œuvrent quasiment en silence derrière ce site, la nouvelle version a des possibilités d'édition assez époustouflantes. Je viens de découvrir le menu automatique et la coloration syntaxique automatisée.

AltStyle によって変換されたページ (->オリジナル) /