Awesome
awesome est un gestionnaire de fenêtres pour X hautement configurable, de nouvelle génération et dynamique. Il est principalement destiné aux utilisateurs avancés, aux développeurs et à tous ceux qui désirent un contrôle très fin de leur environnement graphique. Il est configurable grâce au langage de programmation Lua.
Pré-requis
Services
Choisir l'un d'eux:
- elogind: Paquet logind indépendant (NdT: standalone en anglais), extrait du projet systemd pour l'utilisation avec OpenRC ou d'autres systèmes d'initialisation.
- systemd: Utilise le traqueur de session faisant partie de systemd. Les utilisateurs de systemd n'ont pas besoin de faire quoi que ce soit de plus ici.
Divers
- D-Bus: Active l'utilisation du système bus de message de D-Bus.
- polkit: Active le framework polkit pour le contrôle à l'échelle du système des privilèges des services.
- udisks: Active le support pour quelques services en liens avec le stockage.
Serveur X
Suivre les instructions du guide Xorg/Guide pour paramétrer un environnement avec X.
Démarrer le serveur X
L'une des méthodes suivantes peut être utilisée pour démarrer X :
- Gestionnaire d'affichage: Présente à l'utilisateur un écran de connexion graphique.
- X sans gestionnaire d'affichage : Lorsque le système est utilisé pour un seul utilisateur, celui-ci peut trouver qu'un gestionnaire d'affichage est un gaspillage de ressources.
Installation
USE flags
USE flags for x11-wm/awesome A dynamic floating and tiling window manager
dbus
|
Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc) |
doc
|
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally |
gnome
|
Add GNOME support |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
Emerge
Installer x11-wm/awesome :
root #
emerge --ask x11-wm/awesome
Configuration
Démarrage
Pour démarrer awesome, se référer à Démarrer le serveur X ou utiliser la commande startx.
Pour utiliser startx avec le support pour elogind, il faut paramétrer elogind et créer le fichier suivant :
exec dbus-launch --sh-syntax --exit-with-session awesome
Fichier de configuration
Le fichier de configuration par défaut d'awesome est situé dans ~/.config/awesome/rc.lua. Si un tel répertoire ou fichier n'existe pas alors il doit être créé. Un fichier prêt à l'emploi, par défaut, de configuration est distribué avec awesome et peut être trouvé dans /etc/xdg/awesome/rc.lua. Copier ce fichier dans le répertoire home de l'utilisateur.
Tout d'abord créer le répertoire awesome/ :
user $
mkdir -p ~/.config/awesome/
Copier ensuite le fichier de configuration rc.lua :
user $
cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua
Si x11-terms/xterm n'est pas installé, l'installer ou changer le terminal par défaut par un des émulateur de terminaux présents sur le système. Ci-dessous, l'émulateur de terminal par défaut est configuré pour konsole, faisant partie de kde-apps/konsole.
-- Cela sera utilisé plus tard en tant que terminal et éditeur à lancer.
terminal = "konsole"
Après avoir fait des changements il est utile de vérifier le fichier de configuration à la recherche d'erreurs:
user $
awesome -k
✔ Configuration file syntax OK
On peut utiliser le paquet media-gfx/feh pour gérer le fond d'écran.
root #
emerge --ask media-gfx/feh
Par exemple, pour utiliser awsetbg pour définir le fond d'écran, éditer ~/.config/awesome/theme/theme.lua :
theme.wallpaper_cmd = { "awsetbg -f .config/awesome/themes/awesome-wallpaper.png" }
Ou paramétrer tout simplement les propriétés du fond d'écran du thème :
theme.wallpaper = ".config/awesome/themes/awesome-wallpaper.png"
Tags (NdT: étiquettes)
Dans awesome, on nomme tags les différents bureaux virtuels dans lesquels une ou plusieurs applications sont ouvertes. On peut définir pour chaque tag un symbole particulier :
-- {{{ Tags
tags = {}
for s = 1, screen.count() do
tags[s] = awful.tag({ "➊", "➋", "➌", "➍" }, s, layouts[1])
end
-- }}}
Menu
Ci dessous un exemple de menu awesome personnalisé :
-- {{{ Menu
myawesomemenu = {
{ "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awesome.conffile },
{ "reload", awesome.restart },
{ "quit", awesome.quit },
{ "reboot", "reboot" },
{ "shutdown", "shutdown" }
}
appsmenu = {
{ "urxvt", "urxvt" },
{ "sakura", "sakura" },
{ "ncmpcpp", terminal .. " -e ncmpcpp" },
{ "luakit", "luakit" },
{ "uzbl", "uzbl-browser" },
{ "firefox", "firefox" },
{ "chromium", "chromium" },
{ "thunar", "thunar" },
{ "ranger", terminal .. " -e ranger" },
{ "gvim", "gvim" },
{ "leafpad", "leafpad" },
{ "htop", terminal .. " -e htop" },
{ "sysmonitor", "gnome-system-monitor" }
}
gamesmenu = {
{ "warsow", "warsow" },
{ "nexuiz", "nexuiz" },
{ "xonotic", "xonotic" },
{ "openarena", "openarena" },
{ "alienarena", "alienarena" },
{ "teeworlds", "teeworlds" },
{ "frozen-bubble", "frozen-bubble" },
{ "warzone2100", "warzone2100" },
{ "wesnoth", "wesnoth" },
{ "supertuxkart", "supertuxkart" },
{ "xmoto" , "xmoto" },
{ "flightgear", "flightgear" },
{ "snes9x" , "snes9x" }
}
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu },
{ "apps", appsmenu },
{ "games", gamesmenu },
{ "terminal", terminal },
{ "web browser", browser },
{ "text editor", geditor }
}
})
mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
menu = mymainmenu })
-- }}}
Date
Ci-dessous un exemple d'usage d'un format de date personnalisé. Le format de la syntaxe utilisé est %Y-%m-%d %H:%M
. La seconde option, 60
, est l’intervalle de rafraîchissement en seconde.
-- {{{ Wibox
-- Créer un widget textuel pour la date et l'heure
mytextclock = wibox.widget.textclock(" %Y-%m-%d %H:%M ", 60)
-- }}}
Pour plus d'informations sur les options de formatage de la date, lancer date --help.
Contrôleur de volume
Le paquet media-sound/volumeicon peut être utilisé pour gérer les touches de volumes automatiquement et afficher les informations concernant le volume dans la zone de notification.
root #
emerge --ask media-sound/volumeicon
Lancement automatique de volumeicon depuis ~/.xinitrc :
volumeicon &
exec [...]
Une méthode alternative consiste à configurer les touches de volume directement dans le fichier de configuration d'awesome :
awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("amixer -q sset Master 5%-") end)
awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -q sset Master 5%+") end)
Touches multimédia d'MPD
Installer media-sound/mpc pour ajouter les raccourcies claviers pour MPD :
root #
emerge --ask media-sound/mpc
Mettez à jour le fichier de configuration d'awesome pour assigner les touches multimédias aux commandes correspondantes :
awful.key({ }, "XF86AudioNext",function () awful.util.spawn( "mpc next" ) end),
awful.key({ }, "XF86AudioPrev",function () awful.util.spawn( "mpc prev" ) end),
awful.key({ }, "XF86AudioPlay",function () awful.util.spawn( "mpc play" ) end),
awful.key({ }, "XF86AudioStop",function () awful.util.spawn( "mpc pause" ) end),
Supprimer l'espace entre les fenêtres
L'espace entre les fenêtres peut être visible, notamment entre les fenêtres des terminaux. Il peut être supprimé en insérant la propriété size_hints_honor = false
dans le tableau awful.rules.rules
comme-ceci :
awful.rules.rules = {
{ rule = { },
properties = { size_hints_honor = false, -- Supprime les espaces
border_width = beautiful.border_width,
border_color = beautiful.border_normal,
...
Debugger la configuration avec Xephyr
Xephyr est un outil très pratique pour corriger les erreurs de configuration. Il crée une instance d'un serveur X dans une fenêtre client.
user $
Xephyr -ac -nolisten tcp -br -noreset -screen 800x600 :1
Cela ouvrira une fenêtre de 800×600. Pour y lancer awesome, ouvrir un terminal et exécuter la commande :
user $
DISPLAY=:1.0 awesome
Cela lancera awesome dans la fenêtre.
Raccourcies clavier
Voici une liste des principaux raccourcis clavier par défaut.
- Super+Mouse1 = Déplacer le client avec la souris
- Super+Mouse2 = Redimensionner le client avec la souris
- Super+Enter = ouvre le terminal
- Super+r = lance une commande
- Super+Shift+c = tue (NdT: la fenêtre)
- Super+m = Agrandir
- Super+n = Réduire
- Super+Ctrl+n = Restaure les clients minimisés
- Super+f = Plein écran
- Super+Tab = Passe au client précédent
- Super+Ctrl+Space = Flottement
- Super+j = Mise en évidence du client de gauche
- Super+k = Mise en évidence du client de droite
- Super+Shift+j = Déplace le client à droite
- Super+Shift+k = Déplace le client à gauche
- mod4+l = redimensionne un client lorsqu'on est en mode mosaïque (NdT: tiling)
- mod4+h = redimensionne un client lorsqu'on est en mode mosaïque (NdT: tiling)
- Super+left / right = Change l'étiquette
- Super+1-9 = Change l'étiquette
- Super+Shift+1-9 = Envoie le client vers l'étiquette
On peut ainsi définir n'importe quel raccourci clavier. Par exemple pour utiliser Alt+Tab pour basculer sur la fenêtre précédente :
-- {{{ Key bindings
globalkeys = awful.util.table.join(
...
-- alt + tab
awful.key({ "Mod1", }, "Tab",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end),
-- }}}
Ressources externes
- User Configuration Files sur le wiki d'Awesome (web.archive.org)
- Changement de profil de bureau avec l'USE flag par défaut pour elogind