Awesome

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Awesome and the translation is 55% complete.
Outdated translations are marked like this.


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.

Servizi

Scegli uno fra i seguenti:

  • elogind: Pacchetto separeato di logind, estratto dal progetto systemd per usarlo con OpenRC o altri sistemi di init.
  • systemd: Utilizza il tracciatore di sezione parte di systemd. Gli utenti di systemd non devono fare altro qui.

Vari

  • D-Bus: Abilita l'utilizzo del bus di messaggi di sitema D-Bus.
  • polkit: Abilita il framework polkit per controllare i privilegi ai servizi di sistema.
  • udisks: Abilita il supporto per alcuni servizi di memoria aggiuntivi.

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 A dynamic floating and tiling window manager

dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
gnome Add GNOME support
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)

Emerge

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

Per utilizzare startx con il supporto per elogind, impostare elogind e creare il seguente file:

FILE ~/.xinitrc
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.

FILE ~/.config/awesome/rc.lua
-- 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:

FILE ~/.config/awesome/theme/theme.luaImpostare uno sfondo specifico utilizzando awsetbg
theme.wallpaper_cmd = { "awsetbg -f .config/awesome/themes/awesome-wallpaper.png" }

O semplicemente configura la proprietà wallpaper del tema:

FILE ~/.config/awesome/theme/theme.luaImpostare uno sfondo specifico utilizzando la proprietà wallpaper
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:

FILE ~/.config/awesome/rc.lua
-- {{{ 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:

FILE ~/.config/awesome/rc.lua
-- {{{ 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.

FILE ~/.config/awesome/rc.luaCreazione di un widget orologio di testo
-- {{{ Wibox
-- Crea un widget orologio di testo
mytextclock = wibox.widget.textclock(" %d.%m %H:%M ", 60)
-- }}}
Nota
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:

FILE ~/.xinitrcLanciare in background l'icona del volume quando si avvia X
volumeicon &
exec [...]

Alternativamente, un metodo più leggero è quello di aggiungere i tasti del volume giusti nella configurazione di awesome:

FILE ~/.config/awesome/rc.luaTasti del volume
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:

FILE ~/.config/awesome/rc.luaAssegnazione dei tasti del volume
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:

FILE ~/.config/awesome/rc.luaImpostazione proprietà size_hints_honor
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:

FILE ~/.config/awesome/rc.luaCombinazione di tasti Alt-TAB
-- {{{ 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