Awesome
awesome è un framework window manager per X di nuova generazione altamente configurabile. Esso è rivolto principalmente agli utenti esperti, sviluppatori ed eventuali altre persone che si occupano ogni giorno di attività di computer e che vogliono avere un controllo capillare sul loro ambiente grafico. Si estende utilizzando il linguaggio di programmazione Lua.
Prerequisiti
Servizi
Scegli uno fra i seguenti:
Vari
Server X
Segui le istruzioni Xorg/Guide per configurare l'ambiente X.
Avvio del server X
Uno dei seguenti metodi può essere utilizzato per avviare X:
- Display manager: Presenta all'utente una schermata di accesso grafica.
- X without Display Manager: Quando si esegue un sistema a utente singolo, è possibile che i display manager siano un inutile spreco di risorse.
Installazione
USE flags
USE flags for x11-wm/awesome 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
Installare x11-wm/awesome:
root #
emerge --ask x11-wm/awesome
Configurazione
Avvio
Per avviare awesome riferisciti a Avviare il server X o utilizza il comando startx
exec dbus-launch --sh-syntax --exit-with-session awesome
File di configurazione
Il file di configurazione di default di awesome è situato in ~/.config/awesome/rc.lua. Se tale directory o file non esiste bisogna crearla. Una configurazione di default, inoltre, è distribuita con awesome e si trova in /etc/xdg/awesome/rc.lua. Copiare tale file di configurazione nella directory home dell'utente.
Per prima cosa creare la directory awesome/:
user $
mkdir -p ~/.config/awesome/
Successivamente copiarci il file di configurazione rc.lua:
user $
cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua
Se il pacchetto x11-terms/xterm non è installato, installarlo oppure cambiare l'emulatore di terminale predefinito del sistema. Sotto, l'emulatore di terminale predefinito è impostato su konsole, che fa parte del pacchetto kde-apps/konsole.
-- This is used later as the default terminal and editor to run.
terminal = "konsole"
Dopo aver eseguito i cambiamenti è utile verificare il file di configurazione per vedere se ci sono eventuali errori:
user $
awesome -k
✔ Configuration file syntax OK
Aggiungere il supporto per lo sfondo tramite il pacchetto media-gfx/feh:
root #
emerge --ask media-gfx/feh
Per esempio, per utilizzare awsetbg per impostare lo sfondo, editare il file ~/.config/awesome/theme/theme.lua:
theme.wallpaper_cmd = { "awsetbg -f .config/awesome/themes/awesome-wallpaper.png" }
O semplicemente configura la proprietà wallpaper del tema:
theme.wallpaper = ".config/awesome/themes/awesome-wallpaper.png"
Tags
In awesome, tags sono i nomi dati ai desktops virtuali sotto i quali una o più applicazioni sono in esecuzione. E' possibile assegnare simboli personalizzati a questi tags:
-- {{{ Tags
tags = {}
for s = 1, screen.count() do
tags[s] = awful.tag({ "➊", "➋", "➌", "➍" }, s, layouts[1])
end
-- }}}
Menu
Questo sotto è un esempio di un menu awesome personalizzato:
-- {{{ 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 })
-- }}}
Data
Quello sotto è un esempio di utilizzo di un formato personalizzato della data. La sintassi del formato utilizzata è %d.%m %H:%M
. La seconda opzione, 60
, è l'intervallo di aggiornamento in secondi.
-- {{{ Wibox
-- Crea un widget orologio di testo
mytextclock = wibox.widget.textclock(" %d.%m %H:%M ", 60)
-- }}}
Per maggiori informazioni sulle opzioni del formato eseguire date --help
Controllo del volume
media-sound/volumeicon può essere utilizzato per manovrare automaticamente i tasti del volume, e per mostrare il livello del volume tramite una tray icon.
root #
emerge --ask media-sound/volumeicon
Autoavviare volumeicon dall'interno del file ~/.xinitrc:
volumeicon &
exec [...]
Alternativamente, un metodo più leggero è quello di aggiungere i tasti del volume giusti nella configurazione di awesome:
awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("amixer -q sset Master 2dB-") end)
awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -q sset Master 2dB+") end)
MPD tasti multimedia
Installare il pacchetto media-sound/mpc per aggiungere combinazioni di tasti multimediali per MPD:
root #
emerge --ask media-sound/mpc
Successivamente, aggiornare la configurazione di awesome per assegnare i tasti multimediali all'apposito comando:
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),
Rimozione degli spazi tra le finestre
Gli spazi (gaps) tra le finestre possono essere visibili, soprattutto tra finestre di tipo terminale. Questi possono essere rimossi inserendo la proprietà size_hints_honor = false
nella tabella awful.rules.rules
come segue:
awful.rules.rules = {
{ rule = { },
properties = { size_hints_honor = false, -- Remove gaps
border_width = beautiful.border_width,
border_color = beautiful.border_normal,
...
Scansionare la configurazione con Xephyr
Xephyr è uno strumento utile per scansionare la nuova configurazione di files, in quanto crea una copia di un server X all'interno di una finestra del client.
user $
Xephyr -ac -nolisten tcp -br -noreset -screen 800x600 :1
Questo comando aprirà una finestra di dimensione 800x600. All'interno di essa, per eseguire awesome, aprire un nuovo terminale ed eseguire il seguente comando:
user $
DISPLAY=:1.0 awesome
Questo eseguirà awesome all'interno della finestra.
Tasti rapidi
Di seguito le combinazioni più utili di tasti rapidi:
- mod4+mouse1 = spostare il client con il mouse
- mod4+mouse2 = ridimensionare il client con il mouse
- mod4+enter = aprire il terminale
- mod4+r = eseguire un comando
- mod4+shift+c = kill
- mod4+m = massimizzare
- mod4+n = minimizzare
- mod4+ctrl+n = ripristinare i clients minimizzati
- mod4+f = schermo intero
- mod4+tab = passare al client precedente
- mod4+ctrl+space = float
- mod4+j = evidenziare il client di sinistra
- mod4+k = evidenziare il client di destra
- mod4+shift+j = spostare il client a destra
- mod4+shift+k = spostare il client a sinistra
- mod4+l = ridimensionare il client tiled
- mod4+h = ridimensionare il client tiled
- mod4+left / right = cambiare etichetta
- mod4+1-9 = cambiare etichetta
- mod4+shift+1-9 = inviare il client all'etichetta
Le combinazioni di tasti, tipo Alt+Tab, possono essere mappate per avere un'esperienza ancora migliore di awesome. Per esempio, utilizzare Alt+Tab per passare alla finestra precedente:
-- {{{ 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),
-- }}}
Risorse esterne
- Configurazione dei file dell'utente nella wiki di awesome (web.archive.org)
- Cambio del profilo desktop USE predefinito su elogind