Translation(s): English - Français


http://awesome.naquadah.org/images/6mon.small.png

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.

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.

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)

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


CategoryDesktopEnvironment