Translation(s): English - Français
Awesome est un gestionnaire de fenêtres en mosaïque qui peut remplacer ou exister ensemble avec d'autres environnements de bureau tel que Gnome et KDE Plasma.
L'utilisation est optimisée pour les raccourcis claviers. S'y habituer peut prendre du temps. L'accès à certains programmes peut permettre de configurer ou d'utiliser l'invite de commande et le nom exact du programme. Les informations à-propos de l'utilisation de la batterie, du wifi, etc... nécessitent une configuration.
D'un autre côté, Awesome est petit et s'ouvre rapidement, spécifiquement en comparaison avec Plasma. Il permet de placer des clients sur plusieurs onglets, et d'afficher de nombreux onglets en même temps.
Sur la page d'accueil du site Awesome, il est fait état de "Sont visés en premier les utilisateurs avancés, les développeurs et toute personne exécutant chaque jour des tâches informatiques, et qui aiment avoir un fin contrôle sur leurs environnements graphiques".
Awesome fonctionne au moins avec Debian Jessie (Awesome 3.4) et Debian Stretch (Awesome 4).
Installation
# apt-get install awesome
Optionnel (ajoute les widgets extra tels que l'utilisation de la batterie, le wifi, la mémoire CPU, etc...):-
# apt-get install awesome-extra
Maintenant, si vous utilisez GDM ou KDM, il devrait apparaître dans le gestionnaire de session, ainsi vous pouvez sélectionner Awesome au lieu de Gnome ou KDE Plasma.
Pour Debian avec KDM, regardez vers le coin en bas à gauche de l'écran de session pour trouver l'endroit où changer le gestionnaire de fenêtre. Cela dépend de l'image en arrière plan, et peut ne pas attirer l'attention immédiate.
Si vous utilisez KDM, sachez que la fenêtre de session n'apparaît que si la connexion automatique n'est pas activée dans les paramètres de KDE, démarrage, gestionnaire de session. Là, vous pouvez aussi décider quel gestionnaire de fenêtres sera utilisé pour la connexion automatique. Il est recommandé de ne pas utiliser la connexion automatique durant la configuration d'Awesome. Des erreurs dans le fichier de configuration peuvent dans certains cas extrêmes empêcher Awesome de démarrer. Dans ces cas, il est pratique d'utiliser d'autre gestionnaire de fichier pour reparamétrer le fichier de configuration.
Si vous ne voyez pas le gestionnaire de fenêtre listé dans l'écran de session, éditez le fichier /usr/share/xsessions/awesome.desktop, et changer NoDisplay=true par NoDisplay=false.
Hint: Vous pouvez aussi écrire votre propre script de démarrage Xsession et choisir "System Default" dans GDM ou KDM.
Voici un fichier Xsession en exemple, fonctionnant au moins avec Debian Wheezy et Jessie (le fichier doit être enregistré dans $HOME/.Xsession) :
gnome-screensaver & gnome-settings-daemon & export $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg) xrdb -cpp /usr/bin/cpp-4.7 -merge ~/.Xresources xrandr --output HDMI2 --right-of HDMI1 exec awesome
Si vous n'utilisez pas de gestionnaire de session, vous devriez configurer ".xinitrc" comme habituellement pour exécuter "awesome" à la fin du script. Avant d'obtenir certains privilèges pour votre utilisateur (tel qu'être capable de mettre en veille l’ordinateur et des choses semblables), utilisez ck-launch-session de telle manière :
#.xinitrc
xrdb -merge ~/.Xresources #if you have Xresources
xmodmap ~/.Xmodmap #if you use xmodmap
nm-applet& #if you want to use network-manager
bluetooth-app`let& #if you have bluetooth
volti& #this is a program to control audio volume ("apt-get install volti")
ck-launch-session awesomeSi vous voulez utiliser Awesome en même temps que Gnome ou Plasma de XFCE, voici une bonne nouvelle : c'est possible. Toutes les informations sont sur le wiki officiel d'Awesome (par exemple : Awesome avec Gnome).
Utilisation
La plupart des programmes peuvent être démarrés par le biais du menu Debian qui est "caché" derrière l'icône Awesome, un "a" très stylisé dans le coin en haut à gauche. Cliquez sur le bouton, et vous aurez un menu hiérarchique contenant aussi "edit config" dans le sous-menu d'Awesome.
Awesome est principalement géré par utilisation du clavier.
En premier, il fonctionne en mode "normal", mais en appuyant sur les touches Win+Espace de manière répétée, vous aurez les différents modes de mosaïque.
- Appuyez sur Win+Entrée pour ouvrir un terminal.
- Appuyez sur Win+l ou Win+h pour agrandir ou réduire les fenêtres.
- Appuyez sur Win+j pour aller sur la prochaine fenêtre.
- Appuyez sur Win+r pour obtenir une commande pour démarrer des programmes. La ligne de commande "Run:" apparaît sur la ligne de menu, juste à droite de la section des tags.
- Appuyez sur Win+shift+q pour quitter Awesome
- Appuyez sur Win+ctrl+r pour redémarrer Awesome
Pour en apprendre plus sur les commandes, appuyez sur Win+s ou exécutez :
man awesome
Configuration
À la différence des environnements de bureau tels que Gnome ou Plasma, Awesome est configuré par l'édition d'un fichier source "lua" localisé soit dans /etc/xdg/awesome/rc.lua ou ~/.config/awesome/rc.lua.
Il est hautement recommandé que vous éditiez le fichier dans votre répertoire personnel. Ainsi vos changement n'affecteront pas les autres utilisateurs. De plus, en cas d'oublis sérieux dans votre fichier de configuration personnelle, Awesome utilisera le fichier original "rc.lua" comme solution de secours. Faites ainsi en copiant le fichier général, en premier :
$ mkdir ~/.config/awesome $ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua
Cela peut avoir du sens de copier les thèmes par défaut depuis /usr/share/awesome/themes/default vers ~/.config/awesome/themes/default et de changer "theme_path" dans rc.lua, et de beautiful.init(awful.util.get_themes_dir() .. "default/theme.lua") vers beautiful.init("~/.config/awesome/themes/default/theme.lua"), de même.
Maintenant, éditez le fichier de configuration :
$ nano ~/.config/awesome/rc.lua
Configuration plus profonde (hautement recommandé)
Pour avoir une idée de ce que vous pouvez faire avec Awesome, il est recommandé de dédier du temps à le configurer pleinement à votre goût. Il est recommandé de parcourir Le Wiki officiel d'Awesome.
Avant de démarrer, faites attention au fait que le fichier de configuration "rc.lua" d'Awesome 3.4 est très différent de celui d'Awesome 4. Seuls certains exemples et parties de code fonctionnent sur les deux versions. De plus, seuls certains sites web statuent explicitement avec quelle version d'Awesome fonctionnera leurs exemples.
Aweesome 3.4 est bien documenté, des bous de codes sont disponbiles pour plusieurs cas dans différents sites web.
La bibliothèque vicious contenue dans le paquet awesome-extra renferme des widgets pratiques. Le fichier ~/.config/awesome/vicious/README renferme une description détaillée des widgets et leur utilisation. Tous ne fonctionnent pas avec Awesome 4.
Exemple de Configuration pour Debian Stretch et Awesome 4
Thème, transparence et fond d'écran
Beautiful est une bibliothèque lua qui vous permet de modifier le thème Awesome par l'usage d'un fichier externe, il devient facile de changer dynamiquement l'ensemble des couleurs d'Awesome et le fond d'écran, sans changer votre rc.lua.
Le thème par défaut est /usr/share/awesome/themes/default. Copiez le vers ~/.config/awesome/themes/default, changez theme_path de votre rc.lua de beautiful.init(awful.util.get_themes_dir() .. "default/theme.lua") vers beautiful.init("~/.config/awesome/themes/default/theme.lua").
Utilisez theme.menu_bg_normal pour la transparence, par exemple changez theme.bg_normal = "#222222" par theme.menu_bg_normal = "#aaaaaa32" et ajoutez theme.taglist_bg_focus = "#ffff0064".
Pour paramétrer votre fond d'écran personnel, nommez-le background.png, déposez le dans ~/.config/awesome/themes/default et changez theme.wallpaper = /usr/share/awesome/themes/default/background.png par theme.wallpaper = ~/.config/awesome/themes/default/background.png.
Terminal par défaut
Changez os.getenv("EDITOR") ou "editor"par l'éditeur de votre choix, par exemple editor = "kate"
Modes de Mosaïque
Dans la section -- Table of layouts to cover with awful.layout.inc, order matters., vous voudrez peut-être réduire les possibilités, commentez les lignes dont vous n'avez pas besoin.
Menu
Si vous aimez créer votre menu personnel parce que le menu Debian ne contient pas tous les programmes ou le tri ne vous satisfait pas, vous pouvez démarrer avec l'exemple suivant :
mymainmenu = awful.menu({ items = {
-- { "Menü", ts_menu,"/usr/share/icons/oxygen/base/22x22/places/start-here-kde.png" },
{ "",""},
-- { "Shutdown", 'kshutdown',"/usr/share/icons/oxygen/base/22x22/actions/system-shutdown.png"},
{ "Quit", function() awesome.quit() end,"/usr/share/icons/oxygen/base/22x22/actions/system-log-out.png" };
{ "",""},
-- { "Notizzettel","/usr/bin/knotes","/usr/share/icons/oxygen/base/22x22/apps/knotes.png"},
-- { "File Manager", "dolphin","/usr/share/icons/oxygen/base/22x22/apps/system-file-manager.png" },
-- { "Search","kfind","/usr/share/icons/hicolor/22x22/apps/kfind.png" },
{ "",""},
{ "Browser", "firefox", "/usr/share/pixmaps/firefox-esr.png" },
-- { "E-mail", "icedove","/usr/share/pixmaps/icedove.xpm" },
{ "",""},
{ "Terminal", konsole, "/usr/share/icons/oxygen/base/22x22/categories/applications-utilities.png" },
-- { "Synaptic","kdesudo synaptic-pkexec","/usr/share/synaptic/pixmaps/synaptic_32x32.xpm"},
{ "",""},
-- { "System-settings","kdesudo systemsettings5","/usr/share/icons/oxygen/base/22x22/categories/preferences-system.png"},
-- { "Bluetooth","blueman-applet","/usr/share/icons/hicolor/32x32/apps/blueman.png"},
{ "Network-Manager", "nm-applet","/usr/share/icons/gnome/base/22x22/places/network_local.png" },
{ "",""},
-- { "gtkam","/usr/bin/gtkam","/usr/share/gtkam/pixmaps/camera.xpm"},
{ "",""},
{ "awesome", myawesomemenu, beautiful.awesome_icon },
{ "Debian", debian.menu.Debian_menu.Debian, "/usr/share/icons/gnome/22x22/places/debian-swirl.png" },
}
})Beaucoup de lignes sont commentées à cause de programmes manquants ou d'erreurs sur les icônes. Du fait que la recherche des chemins réels des programmes et de leurs icônes prend un certain temps, les lignes sont incluses malgré tout.
Et voici le sous-menu ts_menu mentionné dans le menu :
audio = {
-- {"Spotify","/usr/bin/spotify","/usr/share/icons/hicolor/32x32/apps/spotify-client.png"},
-- {"Audacity","/usr/bin/audacity","/usr/share/pixmaps/audacity32.xpm"},
-- {"Clementine","/usr/bin/clementine","/usr/share/pixmaps/clementine.xpm"},
-- {"",""},
-- {"Ex Falso","/usr/bin/exfalso","/usr/share/pixmaps/exfalso.png"},
-- {"Puddletag","/usr/bin/puddletag","/usr/share/pixmaps/puddletag.png"},
-- {"TuxGuitar","tuxguitar","/usr/share/pixmaps/tuxguitar.xpm"},
-- {"Timidity","timidity -ig","/usr/share/pixmaps/timidity.xpm"},
}
office = {
{"ding","/usr/bin/ding","/usr/share/pixmaps/dbook.xpm"},
{"writer","/usr/bin/libreoffice --writer","/usr/share/icons/hicolor/32x32/apps/libreoffice-writer.png"},
{"calculation","/usr/bin/libreoffice --calc","/usr/share/icons/hicolor/32x32/apps/libreoffice-calc.png"},
{"impress","/usr/bin/libreoffice --impress","/usr/share/icons/hicolor/32x32/apps/libreoffice-impress.png"},
{"base","/usr/bin/libreoffice --base","/usr/share/icons/hicolor/32x32/apps/libreoffice-base.png"},
{"",""},
{"pdfshuffler","/usr/bin/pdfshuffler","/usr/share/icons/hicolor/scalable/apps/pdfshuffler.svg"},
{"pdfchain","/usr/bin/pdfchain","/usr/share/icons/hicolor/32x32/apps/pdfchain.png"},
{"pdfmod","/usr/bin/pdfmod","/usr/share/icons/hicolor/32x32/apps/pdfmod.png"},
{"",""},
{"KMyMoney","/usr/bin/kmymoney","/usr/share/icons/hicolor/32x32/apps/kmymoney.png"},
}
development = {
{"UMLet","/usr/bin/umlet","/usr/share/umlet/img/umlet_logo24.png"},
{"Ruler","/usr/bin/kruler","/usr/share/kde4/apps/kdewidgets/pics/kruler.png"},
{"Link Status prüfen","/usr/bin/klinkstatus","/usr/share/icons/hicolor/32x32/apps/klinkstatus.png"},
{"netbeans","/usr/bin/netbeans","/usr/share/icons/hicolor/32x32/apps/netbeans.png"},
}
photo = {
{"gtkam","/usr/bin/gtkam","/usr/share/gtkam/pixmaps/camera.xpm"},
{"Gwenview","/usr/bin/gwenview","/usr/share/icons/hicolor/32x32/apps/gwenview.png"},
{"phototonic","/usr/bin/phototonic","/usr/share/pixmaps/phototonic.png"},
{"digikam","/usr/bin/digikam","/usr/share/icons/oxygen/base/22x22/apps/digikam.png"},
-- {"SQLiteBrowser","/usr/bin/sqlitebrowser"},
{"",""},
{"RawTherapee","rawtherapee","/usr/share/pixmaps/rawtherapee.xpm"},
{"GIMP","/usr/bin/gimp -n","/usr/share/pixmaps/gimp.xpm"},
}
photo_2 = {
-- {"FotoWall","/usr/bin/fotowall","/usr/share/pixmaps/fotowall.xpm"},
{"Hugin","/usr/bin/hugin","/usr/share/pixmaps/hugin.png"},
{"luminance-hdr","/usr/bin/luminance-hdr","/usr/share/icons/hicolor/32x32/apps/luminance-hdr.png"},
-- {"PhotoPrint","/usr/bin/photoprint","/usr/share/icons/hicolor/48x48/apps/fotoprint.png"},
{"PTBatcherGUI","/usr/bin/PTBatcherGUI","/usr/share/pixmaps/ptbatcher.png"},
-- {"DNG-Koverter","/usr/bin/dngconverter","/usr/share/icons/hicolor/48x48/apps/kipi-dngconverter.png"},
}
graphics = {
-- {"Scribus","/usr/bin/scribus","/usr/share/pixmaps/scribus.xpm"},
{"Inkscape","/usr/bin/inkscape","/usr/share/pixmaps/inkscape.xpm"},
{"Office Draw","/usr/bin/libreoffice --draw","/usr/share/icons/hicolor/32x32/apps/libreoffice-draw.png"},
-- {"PTBatcherGUI","/usr/bin/PTBatcherGUI"},
}
internet = {
{"Firefox", "firefox", "/usr/share/pixmaps/firefox-esr.png" },
{"Icedove E-mail","icedove","/usr/share/pixmaps/icedove.xpm"},
{"dropbox","/usr/bin/dropbox start -i","/usr/share/icons/hicolor/32x32/apps/dropbox.png"},
}
games = {
-- {"MegaGlest","/usr/games/megaglest","/usr/share/pixmaps/megaglest.xpm"},
-- {"widelands","/usr/games/widelands","/usr/share/icons/hicolor/32x32/apps/widelands.xpm"},
}
system = {
{"Synaptic","kdesudo synaptic-pkexec","/usr/share/synaptic/pixmaps/synaptic_32x32.xpm"},
{"Apper","kdesudo apper","/usr/share/icons/oxygen/base/22x22/categories/applications-other.png"},
{"",""},
{"Systems ettings","kdesudo systemsettings","/usr/share/icons/oxygen/base/22x22/categories/preferences-system.png"},
{"",""},
{"Krusader-root","kdesudo krusader","/usr/share/icons/hicolor/32x32/apps/krusader_root.png"},
{"",""},
{"K3b","/usr/bin/k3b","/usr/share/icons/hicolor/32x32/apps/k3b.png"},
{"luckybackup","/usr/bin/luckybackup","/usr/share/pixmaps/luckybackup.png"},
-- {"luckybackup-root","su-to-root -X -c /usr/bin/luckybackup","/usr/share/pixmaps/luckybackup.xpm"},
{"Partition Manager","kdesudo partitionmanager","/usr/share/icons/oxygen/base/22x22/apps/partitionmanager.png"},
{"Gparted","kdesudo gparted","/usr/share/icons/hicolor/32x32/apps/gparted.png"},
{"Kill","xkill","/usr/share/icons/gnome/32x32/actions/stop.png"},
{"Refresh","xrefresh","/usr/share/icons/gnome/32x32/actions/reload.png"},
{"System Information","kinfocenter","/usr/share/icons/oxygen/base/22x22/apps/hwinfo.png"},
{"System Monitor","/usr/bin/ksysguard","/usr/share/icons/gnome/32x32/apps/ksysguard.png"},
}
video = {
{"SMPlayer","smplayer","/usr/share/pixmaps/smplayer.xpm"},
{"VLC media player","/usr/bin/qvlc","/usr/share/icons/hicolor/32x32/apps/vlc.xpm"},
{"Dragon Player","/usr/bin/dragon","/usr/share/icons/hicolor/32x32/apps/dragonplayer.png"},
-- {"WinFF","/usr/bin/winff","/usr/share/pixmaps/winff.xpm"},
{"MediaInfo","/usr/bin/mediainfo-gui","/usr/share/pixmaps/mediainfo.xpm"},
}
tools = {
{"Find","kfind","/usr/share/icons/hicolor/32x32/apps/kfind.png"},
{"File Manager", "dolphin","/usr/share/icons/oxygen/base/22x22/apps/system-file-manager.png" },
{"Krusader-root","kdesudo krusader","/usr/share/icons/hicolor/32x32/apps/krusader_root.png"},
{"Terminal", "konsole", "/usr/share/icons/oxygen/base/22x22/categories/applications-utilities.png"},
{"",""},
{"Screenshot","/usr/bin/ksnapshot","/usr/share/icons/oxygen/base/22x22/apps/ksnapshot.png"},
{"Filelight","filelight","/usr/share/icons/hicolor/32x32/apps/filelight.png"},
{"Editor","kate","/usr/share/icons/hicolor/32x32/apps/kate.png"},
{"Editor-root","kdesudo kate","/usr/share/icons/hicolor/32x32/apps/kate.png"},
{"KWrite","kwrite","/usr/share/icons/oxygen/base/22x22/apps/accessories-text-editor.png"},
{"Klipper","/usr/bin/klipper","/usr/share/icons/oxygen/base/32x32/apps/klipper.png"},
{"Calculator","/usr/bin/xcalc","/usr/share/icons/oxygen/base/22x22/apps/accessories-calculator.png"},
{"",""},
{"Rename","/usr/bin/krename","/usr/share/icons/hicolor/32x32/apps/krename.png"},
{"KDiff3","/usr/bin/kdiff3","/usr/share/icons/hicolor/32x32/apps/kdiff3.png"},
{"Kompare","/usr/bin/kompare","/usr/share/icons/hicolor/32x32/apps/kompare.png"},
-- {"Komparator","/usr/bin/komparator4","/usr/share/icons/hicolor/32x32/apps/komparator4.png"},
{"",""},
{"KMix","/usr/bin/kmix","/usr/share/icons/hicolor/32x32/apps/kmix.png"},
}
ts_menu = {
{ "audio", audio, "/usr/share/icons/oxygen/base/22x22/mimetypes/audio-ac3.png" },
{ "office", office, "/usr/share/icons/oxygen/base/22x22/categories/applications-office.png" },
{ "development", development, "/usr/share/icons/oxygen/base/22x22/categories/applications-development.png" },
{ "photo", photo,"/usr/share/icons/oxygen/base/22x22/apps/showfoto.png" },
{ "photo_2", photo_2 },
{ "graphics", graphics, "/usr/share/icons/oxygen/base/22x22/categories/applications-graphics.png" },
{ "internet", internet, "/usr/share/icons/oxygen/base/22x22/categories/applications-internet.png" },
{ "games", games, "/usr/share/icons/oxygen/base/22x22/categories/applications-games.png" },
{ "system", system, "/usr/share/icons/oxygen/base/22x22/categories/applications-system.png" },
{ "video", video, "/usr/share/icons/gnome/32x32/mimetypes/video.png" },
{ "tools", tools, "/usr/share/icons/oxygen/base/22x22/categories/applications-utilities.png" },
}Il faut l'ajouter comme ts_menu.lua dans le fichier ~/.config/awesome, et ceci
-- Load ts_menu
require("ts_menu") doit être ajouter dans les premières lignes du rc.lua. Peut-être que ces nombreuses lignes permettent de gagner du temps pour la recherche de chemins de programmes et d'icônes.
Fonds d'écran Aléatoires
Échangez
local function set_wallpaper(s)
-- Wallpaper
if beautiful.wallpaper then
local wallpaper = beautiful.wallpaper
-- If wallpaper is a function, call it with the screen
if type(wallpaper) == "function" then
wallpaper = wallpaper(s)
end
gears.wallpaper.maximized(wallpaper, s, true)
end
end
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
screen.connect_signal("property::geometry", set_wallpaper)par
-- {{ Function definitions
-- scan directory, and optionally filter outputs
function scandir(directory, filter)
local i, t, popen = 0, {}, io.popen
if not filter then
filter = function(s) return true end
end
print(filter)
for filename in popen('ls -a "'..directory..'"'):lines() do
if filter(filename) then
i = i + 1
t[i] = filename
end
end
return t
end
-- }}
-- configuration
wp_index = 1
wp_path = "PATH_TO_YOUR_WALLPAPER_DIRECTORY"
wp_filter = function(s) return string.match(s,"%.png$") or string.match(s,"%.jpg$") end
wp_files = scandir(wp_path, wp_filter)
gears.timer.start_new (10, function()
for s = 1, screen.count() do
gears.wallpaper.maximized(wp_path .. wp_files[wp_index], s, true)
end
math.randomseed( os.time() )
wp_index = math.random( 1, #wp_files)
return true
end)Changez PATH_TO_YOUR_WALLPAPER_DIRECTORY vers le répertoire actuel.
Tags
Les programmes peuvent être ouverts par des tags dédiés. Ces tags peuvent contenir une icône. Bien que dans Awesome 3.4 les tags n'ont pas besoin de texte, dans Awesome 4, le texte du tag est son nom. Cela a du sens de garder les figures 1 à 9 comme texte des tags.
Changez awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1]) par
awful.tag.add("1", {
icon = "/usr/share/icons/oxygen/base/22x22/places/user-desktop.png",
layout = awful.layout.suit.tile,
-- master_fill_policy = "master_width_factor",
-- gap_single_client = true,
-- gap = 1,
screen = s,
selected = true,
}
)
awful.tag.add("2", {
icon = "/usr/share/icons/oxygen/base/22x22/places/user-desktop.png",
layout = awful.layout.suit.max,
screen = s,
}
)
awful.tag.add("3", {
icon = "/usr/share/icons/oxygen/base/22x22/places/user-desktop.png",
layout = awful.layout.suit.max,
screen = s,
}
)
awful.tag.add("4", {
icon = "/usr/share/pixmaps/firefox-esr.png",
layout = awful.layout.suit.max,
screen = s,
}
)et ajoutez cinq tags supplémentaires si vous le voulez.
Widgets
Pour chaque widget, ajoutez le code montré dans la section respective des widgets après la section suivante de rc.lua
-- Create a tasklist widget
s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, tasklist_buttons)et ajoutez la dans le systray en ajoutant son nom, par exemple cpuicon, et cpuwidget, après
mykeyboardlayout,
wibox.widget.systray(),Si "vicious.register" apparaît dans le widget, local vicious = require("vicious") doit être ajouter dans les premières lignes du rc.lua (et le paquet extra d'Awesome installé).
Les widgets qui utilisent io.open peuvent geler l'écran un peu de temps lors de l'exécution. Une amélioration serait la bienvenue.
Des informations supplémentaires peuvent être trouvées dans la documentation de l'API d'Awesome
CPU
cpuicon = wibox.widget {
image = "/usr/share/icons/oxygen/base/22x22/devices/cpu.png",
resize = false,
widget = wibox.widget.imagebox
}
cpuwidget = wibox.widget.graph()
cpuwidget:set_width(20)
cpuwidget:set_color(gears.color.create_solid_pattern("#00ff00"))
vicious.cache(vicious.widgets.cpu)
cpuwidget.opacity = "1"
vicious.register(cpuwidget, vicious.widgets.cpu, "$1", 5)
Mémoire
memwidget = wibox.widget.graph()
memwidget:set_width(20)
cpuwidget:set_color(gears.color.create_solid_pattern("#00ff00"))
vicious.cache(vicious.widgets.mem)
memwidget.opacity = "1"
vicious.register(memwidget, vicious.widgets.mem, "$1", 11)
beautiful.graph_bg = "#00000000"
Système de Fichiers
fswidgettxt = ""
-- root, can easily be adapted for home
function fsroot()
os.execute("/bin/ts_root.sh")
fstext = io.open("fp3")
fsnumber = fstext:read(2)
if fsnumber+1-1 < 80 then -- +1-1 to get number
rootwidget.widget.markup = ""
else
if fsnumber+1-1 < 90 then -- +1-1 to get number
rootwidget.widget.markup = " / " .. fsnumber .. "% "
rootwidget.bg = '#ffff0064'
else
if fsnumber > 95 then
rootwidget.bg = '#ff0000'
end
end
end
end
rootwidget = wibox.widget {
{
markup = fswidgettxt,
widget = wibox.widget.textbox
},
bg = '#ffffff00',
layout = wibox.container.background
}
gears.timer.start_new (67, function()
fsroot()
return true
end)Pour ce widget, le script suivant a été enregistré en tant qu'administrateur dans /bin/ts_root.sh. Ensuite, le fichier doit être rendu exécutable et lisible pour l'utilisateur. Pour home, la racine / a été changée par /home. Le script crée les fichiers dans le répertoire personnel qui peut être utilisé pour root et home.
#!/bin/bash
df / > fp1
cut -c46-47 fp1 > fp2
rm fp1
tr -d ' ',[A-z],'\n' < fp2 > fp3
rm fp2Notez que le widget n'est pas visible si l'espace utilisé de la partition est en dessous de 80% de sa taille.
Batterie
local function battery_state()
os.execute("/bin/ts_battery.sh")
batchar = io.open("batchar")
batchartxt = batchar:read()
if batchartxt == "Dis" then
batpctxt = io.open("batpc")
batpczahl = batpctxt:read()
lengthbat = string.len(batpczahl) +1 -1 -- only to secure that lengthbat is of type number
if lengthbat == 1 then
os.execute("/bin/ts_bat_time_low.sh") -- percent is only 1 digit
else
os.execute("/bin/ts_bat_time.sh")
end
battime = io.open("battime")
battimetxt = " " .. battime:read() .. " "
bath = io.open("bath")
bathtxt = bath:read(1)
batm = io.open("batm")
batmtxt = batm:read(1)
end
end
local function get_battery_state()
battery_state()
-- show remaining timme if discharging
if batchartxt == "Dis" then
-- change backgroundcolor if only twenty minutes left
if bathtxt == "0" and (batmtxt == "0" or batmtxt == "1") then
battxtwidget.widget.markup = "<b> Remaining: " .. battimetxt .. "</b>"
battxtwidget.widget.font = "\"Liberation Serif\", 16"
battxtwidget.bg = '#ff0000'
else
battxtwidget.widget.markup = ' Remaining: ' .. battimetxt
end
else
battxtwidget.widget.markup = ""
end
end
battery_state()
batwidget = wibox.widget {
{
max_value = 100,
value = batpczahl,
widget = wibox.widget.progressbar,
},
forced_width = 15,
direction = 'east',
layout = wibox.container.rotate,
}
battxtwidget = wibox.widget{
{
markup = markuptxt,
widget = wibox.widget.textbox
},
bg = '#ffffff00',
layout = wibox.container.background
}
gears.timer.start_new (61,
function()
get_battery_state()
return true
end
)Ce widget requiert que les scripts suivants soient installés avec des droits en lecture pour l'utilisateur et des droits en exécution dans /bin
ts_battery.sh
#!/bin/bash
acpi > bat1
cut -c12-14 bat1 > batchar
cut -c25-26 bat1 > bat2
# if load percentage < 10, 26 is "%"
tr -d '%' < bat2 > batpcts_bat_time.sh
#!/bin/bash
cut -c31-37 bat1 > battime
cut -c31-31 bat1 > bath
cut -c33-33 bat1 > batmts_bat_time_low.sh
#!/bin/bash
cut -c30-36 bat1 > battime
cut -c30-30 bat1 > bath
cut -c31-31 bat1 > batmLe widget apparaît quand l'état de la batterie est faible et déchargé.
Paquets à mettre à jour
upgradable = os.execute("ts_upgradable.sh")
upgrtext = io.open("upgr")
upgrnumber = upgrtext:read(2) -1 -- headline doesn't count
if upgrnumber > 0 then
upgrtext = " " .. upgrnumber .. " updates "
else
upgrtext = ""
end
upgrwidget = wibox.widget {
{
markup = upgrtext,
widget = wibox.widget.textbox
},
bg = '#ffff0064',
layout = wibox.container.background
}Le widget requiert que le script suivant soit installé avec des droits en lecture pour l'utilisateur et des droits en exécution dans /bin
ts_upgradable.sh
#!/bin/bash
apt list --upgradable > upgradable
wc -l < upgradable > upgr
Trafic Réseau
neticon = wibox.widget {
image = "/usr/share/icons/oxygen/base/22x22/actions/go-down.png",
resize = false,
widget = wibox.widget.imagebox
}
netwidget = wibox.widget {
{
markup = " ",
widget = wibox.widget.textbox
},
bg = '#ffffff00',
layout = wibox.container.background
}
netnumber = 0
gears.timer.start_new (1,
function()
lastnetnumber = netnumber
nettext = io.open("/sys/class/net/INTERFACE/statistics/rx_bytes")
netnumber = nettext:read() +1 -- secure to be number
netrecent = math.floor((netnumber - lastnetnumber)/1000)
netwidget.widget.markup = netrecent .. " "
return true
end
)Pour ce widget, /sys/class/net/INTERFACE/statistics/rx_bytes doit être lisible, INTERFACE doit être changée par le nom de l'interface, par exemple wlp5s0.
Luminosité
Ajoutez ce qui suit dans la section -- {{{ Key bindings :
awful.key({ }, "XF86MonBrightnessUp",
function ()
os.execute("ts_lighter.sh") end,
{description = "lighter", group = "ts"}),
awful.key({ }, "XF86MonBrightnessDown", function ()
os.execute("/bin/ts_darker.sh") end,
{description = "darker", group = "ts"}),Cela requiert que les scripts suivants soient installés avec des droits en lecture pour l'utilisateur et des droits en exécution pour /bin
ts-lighter.sh
#!/bin/bash
read < "/sys/class/backlight/intel_backlight/brightness" brightness
var1=20
brightness=`expr $brightness + $var1`
echo $brightness > /sys/class/backlight/intel_backlight/brightnessts_darker.sh
#!/bin/bash
read < "/sys/class/backlight/intel_backlight/brightness" brightness
var1=20
brightness=`expr $brightness - $var1`
echo $brightness > /sys/class/backlight/intel_backlight/brightness/sys/class/backlight/intel_backlight/brightness doit avoir des droits en écriture pour l'utilisateur.
Le raccourci pour la fenêtre en surbrillance est alors Fn+CURSOR_LEFT.
Volume Audio
Les raccourcis sont rendus disponibles par le programme Kmix.
Captures d'écran
Ajoutez ce qui suit dans la section -- {{{ Key bindings :
awful.key({ }, "Print", function () awful.util.spawn("ksnapshot") end,
{description = "Screen snapshot", group = "user"})
Clients flottants
Considérez l'ajout des clients supplémentaires dans la section -- Floating clients., par exemple Gimp, knotes ou Kmix.
Pas de barre de titres
Si vous préférez les raccourcis pour fermer et maximiser les fenêtres, les barres de titres sont obsolètes. "titlebars_enabled = true" peut être changé pour ouvrir de nouvelles fenêtres sans barre de titre.
Paramétrez un programme pour ouvrir un tag spécifique
La règle pour Firefox existe toujours dans le fichier rc.lua original mais est commentée dans la section Set Firefox to always map on the tag named "2" on screen 1
Auto-démarrage et Numlock
Ajoutez à la fin des programmes que vous désirez, par exemple :
awful.spawn.easy_async("numlockx on")
awful.spawn.easy_async("/usr/bin/kmix")
awful.spawn.easy_async("nm-applet")
