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 awesome
Si 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 fp2
Notez 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 > batpc
ts_bat_time.sh
#!/bin/bash cut -c31-37 bat1 > battime cut -c31-31 bat1 > bath cut -c33-33 bat1 > batm
ts_bat_time_low.sh
#!/bin/bash cut -c30-36 bat1 > battime cut -c30-30 bat1 > bath cut -c31-31 bat1 > batm
Le 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/brightness
ts_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")