Script : conky-configurator.sh

#!/bin/bash

# Conky Configurator - Configuration interactive
# Usage: ./conky-configurator.sh

echo "=== Configurateur Conky ==="
echo ""

# 1. Position
echo "Position de Conky :"
echo "1) Haut gauche"
echo "2) Haut droit"
echo "3) Bas gauche"
echo "4) Bas droit"
read -p "Votre choix [1-4] : " pos_choice

case $pos_choice in
    1) ALIGNMENT="top_left"; GAP_X=20; GAP_Y=50 ;;
    2) ALIGNMENT="top_right"; GAP_X=20; GAP_Y=50 ;;
    3) ALIGNMENT="bottom_left"; GAP_X=20; GAP_Y=50 ;;
    4) ALIGNMENT="bottom_right"; GAP_X=20; GAP_Y=50 ;;
    *) ALIGNMENT="top_right"; GAP_X=20; GAP_Y=50 ;;
esac

# 2. Taille
echo ""
echo "Largeur de la fenêtre :"
echo "1) Compact (250px)"
echo "2) Standard (350px)"
echo "3) Large (450px)"
read -p "Votre choix [1-3] : " width_choice

case $width_choice in
    1) WIDTH=250 ;;
    2) WIDTH=350 ;;
    3) WIDTH=450 ;;
    *) WIDTH=350 ;;
esac

# 3. Thème couleur
echo ""
echo "Thème de couleur :"
echo "1) Bleu cyber (défaut)"
echo "2) Vert Matrix"
echo "3) Orange/Rouge"
echo "4) Monochrome blanc"
read -p "Votre choix [1-4] : " color_choice

case $color_choice in
    1) COLOR1="00BFFF"; COLOR2="1E90FF"; COLOR3="87CEEB" ;;
    2) COLOR1="00FF00"; COLOR2="32CD32"; COLOR3="90EE90" ;;
    3) COLOR1="FF4500"; COLOR2="FF6347"; COLOR3="FFA500" ;;
    4) COLOR1="FFFFFF"; COLOR2="CCCCCC"; COLOR3="999999" ;;
    *) COLOR1="00BFFF"; COLOR2="1E90FF"; COLOR3="87CEEB" ;;
esac

# 4. Transparence
echo ""
read -p "Niveau de transparence (0=invisible, 1=opaque) [0.8] : " transparency
ALPHA=${transparency:-0.8}

# 5. Sections à afficher
echo ""
echo "Sections à afficher (o/n) :"
read -p "Système (CPU, RAM, Disque) [o] : " show_system
read -p "Réseau [o] : " show_network
read -p "Processus top [o] : " show_processes

SHOW_SYS=${show_system:-o}
SHOW_NET=${show_network:-o}
SHOW_PROC=${show_processes:-o}

# Génération de la configuration
cat > ~/.conkyrc << EOL
conky.config = {
    alignment = '$ALIGNMENT',
    background = true,
    border_width = 1,
    cpu_avg_samples = 2,
    default_color = '$COLOR1',
    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=10',
    gap_x = $GAP_X,
    gap_y = $GAP_Y,
    minimum_height = 5,
    minimum_width = $WIDTH,
    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',
    own_window_transparent = false,
    own_window_argb_visual = true,
    own_window_argb_value = $(echo "$ALPHA * 255" | bc | cut -d. -f1),
    stippled_borders = 0,
    update_interval = 2.0,
    uppercase = false,
    use_spacer = 'none',
    show_graph_scale = false,
    show_graph_range = false,
    double_buffer = true,
}

conky.text = [[
\${color $COLOR2}\${font DejaVu Sans Mono:size=12:bold}KAISEN LINUX\${font}
\${color $COLOR3}\${hr 2}
EOL

# Section Système
if [ "$SHOW_SYS" = "o" ]; then
    cat >> ~/.conkyrc << 'EOL'
${color #00BFFF}${font DejaVu Sans Mono:size=11:bold}SYSTÈME${font}
${color}Hostname: ${color #1E90FF}$nodename
${color}Uptime: ${color #1E90FF}$uptime
${color}Kernel: ${color #1E90FF}$kernel

${color #00BFFF}CPU: ${color #1E90FF}$cpu% ${color #87CEEB}${cpubar 4}
${color}${cpugraph 30,0 1E90FF 00BFFF}
${color}Fréquence: ${color #1E90FF}${freq_g} GHz

${color #00BFFF}RAM: ${color #1E90FF}$mem/$memmax ${color #87CEEB}${membar 4}
${color}Swap: ${color #1E90FF}$swap/$swapmax ${color #87CEEB}${swapbar 4}

${color #00BFFF}Disque: ${color #1E90FF}${fs_used /}/${fs_size /} ${color #87CEEB}${fs_bar 4 /}
${color}I/O: ${color #1E90FF}${diskio}
${color}${diskiograph 30,0 1E90FF 00BFFF}

EOL
fi

# Section Réseau
if [ "$SHOW_NET" = "o" ]; then
    cat >> ~/.conkyrc << 'EOL'
${color #00BFFF}${font DejaVu Sans Mono:size=11:bold}RÉSEAU${font}
${color}IP locale: ${color #1E90FF}${addr eth0}
${color}IP publique: ${color #1E90FF}${execi 3600 curl -s ifconfig.me}

${color}Down: ${color #1E90FF}${downspeed eth0}/s ${alignr}${color}Total: ${color #1E90FF}${totaldown eth0}
${color #87CEEB}${downspeedgraph eth0 30,0 1E90FF 00BFFF}
${color}Up: ${color #1E90FF}${upspeed eth0}/s ${alignr}${color}Total: ${color #1E90FF}${totalup eth0}
${color #87CEEB}${upspeedgraph eth0 30,0 1E90FF 00BFFF}

EOL
fi

# Section Processus
if [ "$SHOW_PROC" = "o" ]; then
    cat >> ~/.conkyrc << 'EOL'
${color #00BFFF}${font DejaVu Sans Mono:size=11:bold}TOP PROCESSUS${font}
${color}Nom              ${alignr}PID    CPU%   MEM%
${color #1E90FF}${top name 1} ${alignr}${top pid 1} ${top cpu 1} ${top mem 1}
${color}${top name 2} ${alignr}${top pid 2} ${top cpu 2} ${top mem 2}
${color}${top name 3} ${alignr}${top pid 3} ${top cpu 3} ${top mem 3}
${color}${top name 4} ${alignr}${top pid 4} ${top cpu 4} ${top mem 4}
${color}${top name 5} ${alignr}${top pid 5} ${top cpu 5} ${top mem 5}

EOL
fi

# Fermeture du fichier
echo "]]" >> ~/.conkyrc

echo ""
echo "✓ Configuration générée dans ~/.conkyrc"
echo ""

# Redémarrer Conky pour appliquer les changements
echo "Redémarrage de Conky..."
killall conky 2>/dev/null
sleep 1
conky &

echo "✓ Conky redémarré avec la nouvelle configuration"
echo ""
echo "Pour modifier à nouveau : ./conky-configurator.sh"
echo "Pour arrêter Conky : killall conky"