Beautiful

From awesome

Jump to: navigation, search

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.

Contents


[edit] 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.

[edit] 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.

[edit] 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

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

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

# Affiche les carrés de la liste d’onglets
taglist_squares = true

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

# Affiche le bouton de fermeture dans la barre de titre
titlebar_close_button = true

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

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

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")

[edit] Utilisation

[edit] 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.

[edit] 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

[edit] Astuces

[edit] 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 }
}

[edit] Partagez vos thèmes

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

Personal tools