Se faire son propre environnement léger avec Archlinux et Openbox.

C’est après avoir testé l’excellent Viperr que j’ai voulu faire cet article. L’environnement obtenu à la fin n’est nullement fignolé au point de ce qu’on peut avoir avec Viperr. C’est juste une volonté d’amuser avec Openbox et les outils. Car c’est le coté bricolage personnalisé qui m’a branché ici, et surtout la volonté d’expérimenter un peu.

Je tiens à remercier Alexandre Singh alias DarthWound pour ses conseils durant cette expérience. Et surtout, encore un énorme merci pour la version remixée de la Fedora 16.

Je suis donc partie d’une machine virtuelle ArchLinux 64 bits à jour, et j’ai installé les logiciels suivants, liste non exhaustive bien entendu :

  • Internet : Mozilla Firefox
  • Bureautique : LibreOffice, cups (et ghoscript avec foomatic-db)
  • Graphisme : Gimp, XSane, scrot pour les captures d’écran
  • Multimédia : VLC, QuodLibet et xfburn
  • Gestionnaire de fichiers : Thunar et son extension thunar-volman
  • Emulateur de terminal : terminator
  • Accessoires : xarchiver, galculator, xscreensaver, gmrun (pour avoir un menu de lancement comme ce qu’on a le raccourci Alt-F2 dans la plupart des environnements classique.

Etant donné que durant la préparation de l’article, j’ai pas mal galéré, ce qui suit est la version propre de mes manipulations. Pour l’installation des logiciels comme Openbox, le wiki d’Archlinux est comme d’habitude est une source inépuisable.

Le fichier .xinitrc est la base du lancement d’Openbox. En effet, pour des raisons pratiques, j’ai du laisser tomber lxdm, le gestionnaire de session de lxde. Slim utilisant le fichier .xinitrc, il me permet alors de lancer proprement openbox.

Trève de bavardage. On commence par copier la version standard du fichier .xinitrc dans son espace utilisateur :


cp /etc/skel/.xinitrc ~/

Et pour qu’Openbox se lance, on rajoute à la fin du fichier :


exec ck-launch-session dbus-launch-session openbox

Il faut bien entendu avoir installé consolekit auparavant.

La partie la plus ennuyeuse, c’est de configurer le menu. Car pour avoir un menu qui ressemble un peu plus à la réalité des logiciels installés.

L’outil archlinux-xdg-menu est idéal pour cela. Une page du wiki d’archlinux explique son utilisation.

J’ai utilisé la commande update-menus.

J’ai copié-collé le contenu du nouveau menu.xml au début du fichier. J’ai ensuite simplement modifié les id dans le fichier menu.xml, ce qui m’a permis d’avoir le menu à jour.

Le fond étant un peu vide, j’ai utilisé un fond d’écran du paquet archlinux-wallpaper. J’aurais pu aussi utiliser le paquet gnome-wallpaper. Pour choisir le fond d’écran, rien de plus simple. Il suffit de lancer l’outil nitrogen.

L’étape suivante : on rajoute tint2, une petite barre de tache. J’ai utilisé l’outil tintwizard pour configurer l’ensemble. A force d’essai, on finit par trouver ce qu’on veut vraiment.

Voici la configuration de tint2 :

# Tint2 config file
# Generated by tintwizard (http://code.google.com/p/tintwizard/)
# For information on manually configuring tint2 see http://code.google.com/p/tint2/wiki/Configure

# To use this as default tint2 config: save as $HOME/.config/tint2/tint2rc

# Background definitions
# ID 1
rounded = 2
border_width = 2
background_color = #000000 38
border_color = #FFFFFF 67

# ID 2
rounded = 2
border_width = 2
background_color = #000000 100
border_color = #FFFFFF 32

# Panel
panel_monitor = all
panel_position = bottom left horizontal
panel_size = 0 28
panel_margin = 0 0
panel_padding = 0 0 0
panel_dock = 0
wm_menu = 0
panel_layer = bottom
panel_background_id = 1

# Panel Autohide
autohide = 0
autohide_show_timeout = 0.0
autohide_hide_timeout = 0.0
autohide_height = 0
strut_policy = none

# Taskbar
taskbar_mode = multi_desktop
taskbar_padding = 0 0 0
taskbar_background_id = 0
#taskbar_active_background_id = 2

# Tasks
urgent_nb_of_blink = 7
task_icon = 1
task_text = 1
task_centered = 1
task_maximum_size = 200 32
task_padding = 0 0
task_background_id = 0
task_active_background_id = 0
task_urgent_background_id = 0
task_iconified_background_id = 0

# Task Icons
task_icon_asb = 100 0 0
task_active_icon_asb = 100 0 0
task_urgent_icon_asb = 100 0 0
task_iconified_icon_asb = 100 0 0

# Fonts
task_font = Sans 12
task_font_color = #FFFFFF 100
task_active_font_color = #FFFFFF 100
task_urgent_font_color = #FFFFFF 100
task_iconified_font_color = #FFFFFF 100
font_shadow = 0

# System Tray
systray = 1
systray_padding = 0 0 0
systray_sort = ascending
systray_background_id = 0
systray_icon_size = 0
systray_icon_asb = 100 0 0

# Clock
time1_format = %H:%M
time1_font = Sans 10
time2_format = %a %d %b
time2_font = Sans 10
clock_font_color = #FFFFFF 100
clock_tooltip =
clock_padding = 0 0
clock_background_id = 0

# Tooltips
tooltip = 0
tooltip_padding = 0 0
tooltip_show_timeout = 0
tooltip_hide_timeout = 0
tooltip_background_id = 0
tooltip_font = Sans 12
tooltip_font_color = #FFFFFF 100

# Mouse
mouse_middle = none
mouse_right = none
mouse_scroll_up = none
mouse_scroll_down = none

# Battery
battery = 0
battery_low_status = 20
battery_low_cmd = notify-send « battery low »
battery_hide = 90
bat1_font = Sans 12
bat2_font = Sans 12
battery_font_color = #FFFFFF 100
battery_padding = 0 0
battery_background_id = 0

# End of config

Pour gérer le réseau et le son, j’ai utilisé respectivement wicd et volumeicon.

Malgré tout cela, il manque un peu de remplissage. J’ai alors rajouter l’outil Conky, et je l’ai modifié pour avoir la version qui m’intéressait.

Et pour quelques effets 3D – car il en faut bien, non – mon choix s’est porté sur cairo-composite-manager. Un outil qui est assez simple d’emploi.

Pour que tout se lance au démarrage de la session, j’ai rajouté les lignes suivantes au fichier .openbox/config/autostart


nitrogen --replace &
volumeicon &
wicd-gtk &
tint2 &
conky &
cairocomp-mgr &

Voici la configuration de conky :

# Conky, a system monitor, based on torsmo
#
# Any original torsmo code is licensed under the BSD license
#
# All code written since the fork of torsmo is licensed under the GPL
#
# Please see COPYING for details
#
# Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
# Copyright (c) 2005-2010 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS)
# All rights reserved.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#

alignment top_right
background no
border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
draw_borders yes
draw_graph_borders yes
draw_outline no
draw_shades no
use_xft yes
xftfont DejaVu Sans Mono:size=10
gap_x 5
gap_y 60
minimum_size 5 5
net_avg_samples 2
no_buffers yes
out_to_console no
out_to_stderr no
extra_newline no
own_window yes
own_window_class Conky
own_window_type desktop
own_window_transparent yes
own_window_type normal yes
own_window_class conky-semi
own_window_hints undecorated,below,stick,skip_taskbar,skip_pager
stippled_borders 0
update_interval 1.0
uppercase no
use_spacer none
show_graph_scale no
show_graph_range no

TEXT
$nodename – $sysname $kernel
$hr
${color grey}Uptime:$color $uptime
${color grey}Frequency (in MHz):$color $freq
${color grey}Frequency (in GHz):$color $freq_g
${color grey}RAM Usage:$color $mem/$memmax – $memperc% ${membar 4}
${color grey}Swap Usage:$color $swap/$swapmax – $swapperc% ${swapbar 4}
${color grey}CPU Usage:$color $cpu% ${cpubar 4}
${color grey}Processes:$color $processes ${color grey}Running:$color $running_processes
$hr
${color grey}File systems:
/ $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
/home $color${fs_used /}/${fs_size /} ${fs_bar 6 /home}
${color grey}Networking:
Up:$color ${upspeed eth0} ${color grey} – Down:$color ${downspeed eth0}
$hr
${color grey}Name PID CPU% MEM%
${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}

Le dernier morceau a été l’ajout du gestionnaire de session. D’abord ayant choisi lxdm, un bug bien ennuyeux m’a fait l’abandonner. Conky n’était pas « tué » quand on fermait la session. Slim n’a pas ce problème.

Après avoir installé slim, j’ai modifié le fond d’écran proposé, utilisant le fond archlinux-soft-gray.

J’ai aussi modifié le fichier de configuration pour qu’il prenne en compte la session Openbox.

Bon, une petite vidéo pour voir l’ensemble en action.

Désolé pour le coté « dégueulasse » de l’affichage par moment, le circuit vidéo d’une machine virtuelle qemu-kvm n’est pas super puissant. J’aurais bien annoté la vidéo, mais youtube m’envoyait paître… Cependant, j’ai voulu montrer un peu la puissance d’Openbox, la facilité de jongler entre les bureaux, et quelques petites autres choses ;)

A vous d’essayer maintenant ;)

Vous aimez ceci ? Partagez-le !

Google+ Comments

9 réflexions au sujet de « Se faire son propre environnement léger avec Archlinux et Openbox. »

  1. DarthWound

    Et bien merci à toi ^^ et je suis content de voir que ça prend forme !

    Je m’attends à de bien bonnes choses prochainement avec ton Openbox ;)

    Bon j’en profite quand même pour dire que pour ma part sans le dev de CrunchBang (corenominal) je n’aurais probablement pas fait ma Viperr et d’autres choses.

    1. Frederic Bezies Auteur de l’article

      J’ai essayé. L’image me fait planter kvm au démarrage !

      [fred@fredo-arch ISO à tester]$ KVM internal error. Suberror: 1
      emulation failure
      EAX=00000010 EBX=00040000 ECX=00063fa0 EDX=00063fa0
      ESI=00000038 EDI=0002c232 EBP=00001ff0 ESP=00001fd6
      EIP=00001824 EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
      ES =0008 00000000 ffffffff 00809300 DPL=0 DS16 [-WA]
      CS =2db3 0002db30 0000ffff 00009b00 DPL=0 CS16 [-RA]
      SS =0000 00000000 0000ffff 00009300 DPL=0 DS16 [-WA]
      DS =2db3 0002db30 0000ffff 00009300 DPL=0 DS16 [-WA]
      FS =0000 00000000 0000ffff 00009300 DPL=0 DS16 [-WA]
      GS =0000 00000000 0000ffff 00009300 DPL=0 DS16 [-WA]
      LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
      TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
      GDT= 0002e110 0000000f
      IDT= 00000000 000003ff
      CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
      DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000
      DR6=ffff0ff0 DR7=00000400
      EFER=0000000000000000
      Code=06 6a 08 0f a1 eb 0b f6 06 f2 05 08 74 04 6a 08 0f a9 24 fe <0f> 22 c0 a0 f2 05 08 06 f1 05 66 58 c3 c6 06 f1 05 00 fb c3 66 50 e8 f7 03 5e 0f a1 b0 00

  2. PerfMonk

    J’ai remarqué que tu avais 2 process cairo-compmgr qui prenaient respectivement 80% et 20% du processeur pendant la démo. Est-ce un problème avec quemu ou juste que tu avais démarré 2 fois ta session sans que cairo-compmgr ne soit arrêté ???

    Aussi, j’utilise cairo-dock qui se marie très bien avec cairo-compmgr pour une barre de tâches à la OSX intéressante. Il y a aussi wbar qui peut faire quelques effets spéciaux à la cairo.

    Continue, ton projet est très intéressant!

    1. Frederic Bezies Auteur de l’article

      Peut-être une fausse manipulation.

      Et si je veux de l’interface OS-X, j’achète un Mac, c’est plus simple ;)

      Quant au projet, je le continuerais un peu plus tard, le temps de trouver de l’inspiration ;)

Les commentaires sont fermés.