Beautiful/fr

Beautiful est une bibliothèque Lua qui vous permet de changer l’apparence d’awesome avec un fichier externe. Il est très simple de changer dynamiquement vos couleurs d’awesome tout entier et le papier peint du bureau, sans changer le contenu du fichier rc.lua.

Cette bibliothèque a été écrite pour des personnes qui aiment changer souvent leurs couleurs ou leur papier peint de bureau sans modifier leurs rc.lua, stocker leurs anciennes valeurs, réécrire les nouvelles, etc.

Beautiful est conçue pour awesome 3 uniquement.

Obtenir beautiful
Actuellement, beautiful est fournie avec awesome 3 ; vous n’avez pas besoin de la récupérer ailleurs. Si vous utilisez la version git d’awesome 3, vous devrez toutefois mettre à jour votre fichier de configuration. Gardez à l’esprit que le fichier rc.lua fourni dans le dépôt git est compatible avec beautiful et n’hésitez pas à vous y reporter pour paramétrer ou mettre à jour votre propre fichier rc.lua.

Paramétrer beautiful
Tout d’abord, vous devez utiliser : require('beautiful') pour inclure la bibliothèque dans votre fichier de configuration.

Ensuite, vous devrez initialiser beautiful avec un fichier de thème, en utilisant  : beautiful.init("chemin_vers_fichier_de_thème") Un fichier de thème par défaut est fourni ; on le trouve dans /usr/local/share/awesome/themes/default ou /usr/share/awesome/themes/default, suivant votre distribution.

La commande d’initialisation interprète le fichier de thème et remplit la table de hachage (theme["clé"] = valeur).

Awful peut gérer beautiful, ce qui vous éviter de passer de nombreux arguments aux fonctions d’awful dans votre fichier de configuration, mais vous devez d’abord l’enregistrer : awful.beautiful.register(beautiful)

Vous êtes maintenant prêt. En gros, vous n’avez plus qu’à remplacer chaque définition de variable de couleur par (par exemple) : bg_focus = beautiful.bg_focus La fonction beautiful.clé renvoie la valeur value correspondant à la clé de votre fichier de thème.

Fichier de thème par défaut
Voici le fichier de thème par défaut fourni avec awesome 3 :

-- Thème par défaut d’awesome --

font         = sans 8

bg_normal    = #222222 bg_focus     = #535d6c bg_urgent    = #ff0000

fg_normal    = #aaaaaa fg_focus     = #ffffff fg_urgent    = #ffffff

border_width = 1 border_normal = #000000 border_focus = #535d6c border_marked = #91231c


 * 1) Il y a d’autres ensembles de variables
 * 2) qui sont prioritaires sur celles par défaut
 * 3) quand on les utilise. Ce sont :
 * 4) [taglist|tasklist]_[bg|fg]_[focus|urgent]
 * 5) titlebar_[bg|fg]_[normal|focus]
 * 6) Exemple :
 * 7) taglist_bg_focus = #ff0000

menu_height  = 15 menu_width   = 100
 * 1) Ensembles de variables pour le thème du menu
 * 2) menu_[bg|fg]_[normal|focus]
 * 3) menu_[border_color|border_width]
 * 4) menu_submenu_icon = /usr/local/share/awesome/icons/submenu.png

taglist_squares = true
 * 1) Affiche les carrés de la liste d’onglets


 * 1) Vous pouvez ajouter autant de variables
 * 2) que vous voulez et y accéder en utilisant
 * 3) beautiful.variable dans votre rc.lua
 * 4) bg_widget   = #cc0000

titlebar_close_button = true
 * 1) Affiche le bouton de fermeture dans la barre de titre

@ (if titlebar_close_button_[normal|focus] these values are ignored)
 * 1) Définit l’image à charger
 * 1) titlebar_close_button_img_normal = /usr/local/share/awesome/icons/titlebar/closea.png
 * 2) titlebar_close_button_img_focus = /usr/local/share/awesome/icons/titlebar/closera.png
 * 3) Ou créez vos propres boutons de fermeture
 * 4) titlebar_close_button_normal = ...
 * 5) titlebar_close_button_focus = ...

wallpaper_cmd = awsetbg /usr/local/share/awesome/themes/default-background.png
 * 1) Vous pouvez utiliser votre propre commande
 * 2) pour mettre en place votre papier peint de bureau

Pour commencer à faire votre propre thème, lancez : cp -r /usr/local/share/awesome/themes ~/.config/awesome/ ou cp -r /usr/share/awesome/themes ~/.config/awesome/ et n’oubliez pas de changer le chemin vers le fichier de thème dans votre rc.lua : beautiful.init(os.getenv("HOME") .. "/.config/awesome/themes/default")

Variables personnalisées
Vous ne devriez jamais changer les noms de variables par défaut, tels que font ou bg_normal, puisque ces noms sons utilisés par awful et cela pourrait casser votre fichier de configuration. Toutefois, vous pouvez créer autant de variables que vous voulez.

Par exemple, si vous souhaitez changer l’apparence de vos widgets, vous pouvez utiliser : fg_off_widget = #ffffff fg_widget = #000000 fg_end_widget = #ff0000

et dans votre rc.lua : my_widget:bar_properties_set("data_name", {   border_color = beautiful.border_normal,    fg_off = beautiful.fg_off_widget,    fg = beautiful.fg_widget,    fg_end = beautiful.fg_end_widget })

Dans cet exemple, nous avons mélangé des noms de variable de thème par défaut (beautiful.border_normal) et des noms de variables personnalisés (beautiful.*_widget). Vous pouvez imaginer créer vos propres icônes et autres. Mais soyez conscient du fait que si vous commencez à utiliser des variables personnalisées dans votre rc.lua, vous devrez les définir aussi dans chaque fichier de thème, sinon cela cassera votre fichier de configuration.

Paramétrer votre papier peint de bureau
Beautiful peut gérer votre papier peint, pour que vous n’ayez pas à le mettre en place dans vos fichiers .xinitrc ou .xsession par exemple. Cela vous permet d’avoir un papier peint propre à chaque thème. Si vous regardez le fichier de thème par défaut, vous verrez une clé wallpaper_cmd ; la commande donnée est exécutée quand beautiful.init("chemin_vers_fichier_de_thème")' est lancé. Vous pouvez mettre à cet endroit votre propre commande, voire enlever ou commenter la clé si vous ne voulez pas que beautiful interfère avec votre moyen de gérer le papier peint.

Par exemple, si vous utilisez fbsetbg pour votre papier peint, vous pouvez écrire : wallpaper_cmd = fbsetbg -f .config/awesome/themes/awesome-wallpaper.png

Utilisation de liens symboliques
Comme dit plus haut, beautiful vous éviter d’avoir à éditer votre fichier rc.lua quand vous voulez changer votre thème awesome, ce qui n’est pas tout à fait vrai puisque vous devez changer le chemin vers votre fichier de thème dans la fonction beautiful.init. Mais vous pouvez créer un lien symbolique vers votre thème actuel et l’utiliser pour initialiser beautiful ; de cette manière, vous n’aurez plus qu’à faire pointer ce lien vers un autre fichier et relancer awesome (Super+Ctrl+R par défaut) pour changer de thème.

Mais vous pouvez même écrire une fonction pour remplir un memu popup awful.menu vous permettant de changer de thème. Supposons que votre chemin de thème est : home_dir = os.getenv("HOME") beautiful.init(awful.util.getdir("config") .. "/theme_actuel/theme")

Dans ce cas, écrivez : mythememenu = {}

function theme_load(theme) local cfg_path = awful.util.getdir("config")

-- Crée un lien symbolique depuis le thème donné vers /home/utilisateur/.config/awesome/theme_actuel awful.util.spawn("ln -sf " .. cfg_path .. "/themes/" .. theme .. " " .. cfg_path .. "/theme_actuel") awesome.restart end

function theme_menu -- Liste vos fichiers de thème et remplit le tableau du menu local cmd = "ls -1 " .. awful.util.getdir("config") .. "/themes/" local f = io.popen(cmd)

for l in f:lines do	 local item = { l, function  theme_load(l) end } table.insert(mythememenu, item) end

f:close end

-- Génère votre tableau au (re)démarrage theme_menu

-- Modifie votre menu awesome pour ajouter votre sous-menu de thème myawesomemenu = { { "Manuel", terminal .. " -e man awesome" }, { "Configuration (rc.lua)", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" }, { "Thèmes", mythememenu }, { "Recharger la config", awesome.restart }, { "Quitter", awesome.quit } }

Partagez vos thèmes
N’hésitez pas à partager vos propres thèmes avec la communauté grandiose d’awesome !