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 😉