Bureau linux avec xfce

J’ai modifié légèrement mon bureau sous l’environnement graphique XFCE sur mon thinkpad x230, en y faisant tourner xplanetFX qui permet d’avoir la planète en fond d’écran avec une image en temps réel de la progression des nuages et de la limite jour/nuit et quelques conkys de visualisation de paramètres système et autres. J’utilise le dock cairo, le gestionnaire de fenêtres est xosemite-xfce, les icônes Yosemite-icons et le thème général du bureau xosemite-gtk, le tout donne un petit look MacOS, on pourra les trouver (et de nombreux autres thèmes pour XFCE) par . Voilà ce que ça donne

Pour xplanetFX attention il faut récupérer l’archive .deb et l’installer avec alien pour une architecture rpm, car l’archive rpm fournie est incomplète. L’installation est assez simple, il faut lancer xplanetFX –gui.

Dans l’onglet Affichage, on positionne la terre et on sélectionne les 4 boutons en bas à droite.


Dans l’onglet Vue, on fixe la position de la ville sur laquelle est centrée la vue (Brest pour ce qui me concerne), on peut rendre actif également l’orbite, je vous conseille de faire un essai car c’est un peu perturbant.

Onglet Paramètres, en cliquant sur le bouton à droite de Ouvrir, le popup XFCE-settings apparaît, on choisit le bureau où xplanetFX apparaîtra, pour ma part uniquement sur le bureau 4. La résolution correspond à celle de mon écran de portable.

Onglet Services, il faut activer impérativement Xplanetclouds.com pour récupérer l’image des nuages.

Et enfin l’onglet Outils, avec les logs et généralement seul le bouton Démarrage auto activée doit être sélectionné

Voilà pour xplanetFX, passons aux conkys, celui de droit permet une simple visualisation des paramètres systèmes. Voici son code rédigé dans la nouvelle et dernière syntaxe de conky :

conky.config = {
    alignment = 'top_right',
    background = true,
    border_width = 1,
    cpu_avg_samples = 2,
    default_color = 'white',
    default_outline_color = 'white',
    default_shade_color = 'white',
    draw_borders = false,
    draw_graph_borders = true,
    draw_outline = false,
    draw_shades = false,
    use_xft = true,
    font = 'DejaVu Sans Mono:size=8',
    gap_x = 10,
    gap_y = 10,
    minimum_height = 5,
    minimum_width = 5,
    net_avg_samples = 2,
    no_buffers = true,
    out_to_console = false,
    out_to_stderr = false,
    extra_newline = false,
    own_window = true,
    own_window_class = 'Conky',
    own_window_type = 'desktop',
    stippled_borders = 0,
    update_interval = 1.0,
    uppercase = false,
    use_spacer = 'none',
    show_graph_scale = false,
    show_graph_range = false,
    own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
    own_window_transparent = false,
    own_window_argb_visual = true,
    own_window_argb_value = 70
}

conky.text = [[
$nodename - $sysname Mageia
$hr
${color green}Uptime:$color $uptime
${color green}CPU Usage:$color $cpu% ${cpubar 4}
${color green}Core1 $alignr${color}${freq_g (1)}GHz  ${cpu cpu1}%  ${platform coretemp.0/hwmon/hwmon1 temp 2}° ${color}${cpubar cpu1 10,170}
${color green}Core2 $alignr${color}${freq_g (2)}GHz  ${cpu cpu2}%  ${platform coretemp.0/hwmon/hwmon1 temp 3}° ${color}${cpubar cpu2 10,170}
${color green}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color green}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4}
$hr
${color green}File systems:
 /home $color${fs_used /home}/${fs_size /home} ${fs_bar 6 /home}
${color green} /anatole $color${fs_used /anatole}/${fs_size /anatole} ${fs_bar 6 /anatole}
$hr
${color green}Networking:
Addresse IP: $color${addr wlp3s0}
${color green}Qualité connexion Wi-Fi:  $color$alignr ${wireless_link_qual_perc wlp3s0}%
${color green}Up:$color ${upspeed wlp3s0} ${color grey} ${color green}- Down:$color ${downspeed wlp3s0}
$hr
${color green}Processes:$color $processes  ${color grey}Running:$color $running_processes
${color green}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}
$hr
${color green}Charge batterie $color${battery_bar}
${color green}Secteur  $color $alignr ${acpiacadapter}
]]

Pour le conky météo, je suis parti de cette page, j’ai fait des modifications pour l’adapter à la nouvelle syntaxe et afficher des champs supplémentaires, il est nécessaire d’avoir également les packages w3m et xsltproc installés. Les codes météo peuvent se trouver sur ce site, pour ma part il est à FRXX0019. Voilà ce que ça donne pour le fichier conky-meteo

--   Conky configuration

conky.config = {
	background = true ;
        border_width = 1 ;
	use_xft = true ; 
	font = 'DejaVu Sans Mono:size=8' ;
	out_to_console = false ; 
	update_interval = 2 ;
	total_run_times = 0 ;
	own_window = true ; 
        own_window_class = 'Conky' ;
	own_window_type = 'desktop' ;
	own_window_transparent = false ;
	own_window_argb_visual = true ;
	own_window_argb_value = 70 ;
	own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager' ;
	double_buffer = true ; 
	draw_shades = false ;
	draw_outline = false ;
	draw_borders = false ; 
	draw_graph_borders = true ;
	stippled_borders = 0 ;

	no_buffers = true ; 
	uppercase = false ; 

	cpu_avg_samples = 2 ;
	net_avg_samples = 2 ;

	override_utf8_locale = true ; 
	use_spacer = 'none' ;

--   Couleurs

	default_color = 'white' ;
	default_shade_color = 'white' ;
	default_outline_color = 'white' ;

--   Positionner son conky
	
	alignment = 'top_right' ; 
	gap_x = 360 ;
	gap_y = 10 ;

}

conky.text = [[${color}${font Sans:size=30}${alignc}${time %H}${time :%M}${time :%S}
${color}${font}${execi 120 ~/conky/meteo.sh FRXX0019}Météo à ${exec ~/conky/meteo2.sh "Ville"}
${color}$hr

${color green}Aujourd'hui : ${color} ${exec ~/conky/meteo2.sh "Température aujourd'hui"}  
${font weather:size=40}${voffset -30}${offset 230}${exec ~/conky/meteo2.sh "Conditions aujourd'hui"}${font}${voffset -16}
${color green}Vent : ${color} ${exec ~/conky/meteo2.sh "Vent aujourd'hui"}
${color green}Température ressentie : ${color} ${exec ~/conky/meteo2.sh "Température ressentie"}
${color green}Pression : ${color} ${exec ~/conky/meteo2.sh "Pression"}

${color green}Demain :${color} ${exec ~/conky/meteo2.sh "Température demain"}
${color green}Vent demain :${color} ${exec  ~/conky/meteo2.sh "Vent demain"}
${font weather:size=40}${voffset -30}${offset 230}${exec  ~/conky/meteo2.sh "Conditions demain"}${font}
${color green}Lever du soleil :${color} ${exec ~/conky/meteo2.sh "Lever du soleil"}
${color green}Coucher du soleil :${color} ${exec ~/conky/meteo2.sh "Coucher du soleil"}]]

Le fichier conky/meteo.sh

#!/bin/bash

# Répertoire de ce script et du XSLT
RUNDIR=~/conky
# Emplacement du XSLT
XSLT=$RUNDIR/meteo.xslt
# Fichier de destination des informations
DESTFILE=/tmp/conky_meteo.txt
# Emplacement de xsltproc
XSLTCMD=/bin/xsltproc

# Traitement
URL="http://xml.weather.com/weather/local/$1?cc=*&unit=m&dayf=2"
w3m -dump $URL | $XSLTCMD $XSLT - > $DESTFILE

Le fichier conky/meteo2.sh

#!/bin/bash

# Fichier où sont stockées les informations
SRCFILE=/tmp/conky_meteo.txt

# Traitement
RESULTAT=$(grep "$1" $SRCFILE | awk -F " : " '{print $2}')

# Transformation de la condition en lettre qui deviendra une icône
if echo "$1" | grep -i -q 'condition'; then
	  if echo "$RESULTAT" | grep -i -q 'partly cloudy'; then
		RESULTAT='c'
	elif echo "$RESULTAT" | grep -i -q 'fair'; then
		RESULTAT='b'
	elif echo "$RESULTAT" | grep -i -q 'sunny'; then
		RESULTAT='D'
	elif echo "$RESULTAT" | grep -i -q 'cloudy'; then
		RESULTAT='d'
	elif echo "$RESULTAT" | grep -E -i -q 'storm|thunder'; then
		RESULTAT='i'
	elif echo "$RESULTAT" | grep -i -q 'snow'; then
		RESULTAT='k'
	elif echo "$RESULTAT" | grep -i -q 'rain'; then
		RESULTAT='h'
	elif echo "$RESULTAT" | grep -i -q 'shower'; then
		RESULTAT='g'
	fi

# Transformation des heures à l'américaine (5:50 AM) en heures à la française (5h50)
elif echo "$1" | grep -i -q 'soleil'; then
	RESULTAT=$(echo "$RESULTAT" | awk '{print $1}' | sed -e s/:/h/g)

	# Transformation des heures PM (9h38 PM) en heures françaises (21h38)
	if echo "$1" | grep -i -q 'coucher'; then
		HEURES=$(echo "$RESULTAT" | awk -F "h" '{print $1}')
		MINUTES=$(echo "$RESULTAT" | awk -F "h" '{print $2}')
		HEURES=$(($HEURES + 12))
		RESULTAT="${HEURES}h${MINUTES}"
	fi

# Transformation de "Ville, Pays" en "Ville"
elif echo "$1" | grep -i -q 'ville'; then
	RESULTAT=$(echo "$RESULTAT" | awk -F "," '{print $1}')

fi

# Affichage du résultat
echo $RESULTAT

Le fichier conky/meteo.xslt

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
        <xsl:output method="text" disable-output-escaping="yes"/>
        <xsl:template match="weather">
        	<xsl:text>Ville : </xsl:text><xsl:value-of select="/weather/loc/dnam"/>
                <xsl:apply-templates select="cc"/>
                <xsl:apply-templates select="dayf/day[@d='1']"/>
                <xsl:text>
Lever du soleil : </xsl:text><xsl:value-of select="/weather/loc/sunr"/>
		<xsl:text>
Coucher du soleil : </xsl:text><xsl:value-of select="/weather/loc/suns"/>
        </xsl:template>

        <xsl:template match="cc">
<xsl:text>
Température aujourd'hui : </xsl:text><xsl:value-of select="tmp"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:if test="tmp != flik">
<xsl:text> (</xsl:text>
<xsl:value-of select="flik"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text> ressenti)</xsl:text>
</xsl:if>
<xsl:text>
Conditions aujourd'hui : </xsl:text><xsl:value-of select="t"/>
<xsl:text>
Vent aujourd'hui : </xsl:text>
<xsl:choose>
<xsl:when test="wind/s = 'calm'"><xsl:text>0</xsl:text></xsl:when>
<xsl:otherwise><xsl:value-of select="wind/s"/></xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
<xsl:value-of select="/weather/head/us"/>
<xsl:text> </xsl:text>
<xsl:value-of select="wind/t"/>
<xsl:text>
Température ressentie : </xsl:text><xsl:value-of select="vis"/>°
<xsl:text>
Pression : </xsl:text><xsl:value-of select="bar/r"/> bar
</xsl:template>
<xsl:template match="dayf/day[@d='1']">
<xsl:text>
Température demain : de </xsl:text><xsl:value-of select="low"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text> à </xsl:text><xsl:value-of select="hi"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text>
Vent demain : </xsl:text><xsl:value-of select="part[@p='d']/wind/s"/>
<xsl:text> </xsl:text>
<xsl:value-of select="/weather/head/us"/>
<xsl:text> </xsl:text>
<xsl:value-of select="part[@p='d']/wind/t"/>
<xsl:text>
Conditions demain : </xsl:text><xsl:value-of select="part[@p='d']/t"/>
</xsl:template>
</xsl:stylesheet>

Une réflexion sur « Bureau linux avec xfce »

  1. Bonjour Olivier
    Juste pour te dire que j adore tes articles que tu publis sur ton blog
    Et puis je avoir d autre photo sur l ido
    Didier

Laisser un commentaire