Awesome
awesome ist ein hoch konfigurierbarer, dynamischer Fenstermanager der nächsten Generation für [[:X]/de|X]]. Er richtet sich in erster Linie an Power-User, Entwickler und alle, die mit alltäglichen Computeraufgaben zu tun haben und eine feinkörnige Kontrolle über ihre grafische Umgebung haben wollen. Er wird durch die Programmiersprache Lua erweitert.
Voraussetzungen
Dienste
Wählen Sie genau eines davon:
- elogind: Eigenständiges logind-Paket, extrahiert aus dem systemd-Projekt zur Verwendung mit OpenRC oder anderen Init-Systemen.
- systemd: Verwendet den Session-Tracker-Teil von systemd. Benutzer von systemd müssen hier keine weitere Initiative ergreifen.
Verschiedenes
- D-Bus: Ermöglicht die Verwendung des D-Bus-Nachrichtenbussystems.
- polkit: Aktiviert das polkit-Framework zur Kontrolle der Privilegien für systemweite Dienste.
- udisks: Aktiviert die Unterstützung für einige speicherbezogene Dienste.
X-Server
Folgen Sie den Anweisungen im Xorg/Guide, um die X-Umgebung einzurichten.
Starten des X-Servers
Eine der folgenden Methoden kann verwendet werden, um X zu starten:
- Displaymanager: Zeigt dem Benutzer einen grafischen Anmeldebildschirm an.
- X ohne Displaymanager: Wenn man ein Einzelplatzsystem betreibt, kann man den Displaymanager als unnötige Ressourcenverschwendung empfinden.
Installation
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
Installieren Sie x11-wm/awesome:
root #
emerge --ask x11-wm/awesome
Konfiguration
Starten
Um awesome zu starten, lesen Sie bitte Starten des X-Servers oder verwenden Sie den Befehl startx.
Um startx mit elogind-Unterstützung zu verwenden, richten Sie elogind ein und erstellen die folgende Datei:
exec dbus-launch --sh-syntax --exit-with-session awesome
Konfigurationsdatei
Die Standardkonfigurationsdatei von awesome befindet sich in ~/.config/awesome/rc.lua. Wenn ein solches Verzeichnis oder eine solche Datei nicht existiert, muss sie erstellt werden. Eine Standardkonfiguration wird mit awesome ausgeliefert und ist unter /etc/xdg/awesome/rc.lua zu finden. Kopieren Sie diese Konfigurationsdatei in das Home-Verzeichnis des Benutzers.
Erstellen Sie zunächst das Verzeichnis awesome/:
user $
mkdir -p ~/.config/awesome/
Kopieren Sie dann die Konfigurationsdatei rc.lua:
user $
cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua
Wenn x11-terms/xterm nicht installiert ist, installieren Sie es entweder oder ändern Sie den Standard-Terminalemulator in den auf dem System verfügbaren Terminalemulator. Im Folgenden ist der Standard-Terminalemulator auf konsole, Teil von kde-apps/konsole, eingestellt.
-- Dieser wird später als Standard-Terminal und -Editor verwendet.
terminal = "konsole"
Nachdem Sie Änderungen vorgenommen haben, ist es sinnvoll, die Konfigurationsdatei auf Fehler zu überprüfen:
user $
awesome -k
✔ Configuration file syntax OK
Fügen Sie Hintergrundbildunterstützung durch das Paket media-gfx/feh hinzu:
root #
emerge --ask media-gfx/feh
Um zum Beispiel awsetbg zum Einstellen des Hintergrundbildes zu verwenden, bearbeiten Sie ~/.config/awesome/theme/theme.lua:
theme.wallpaper_cmd = { "awsetbg -f .config/awesome/themes/awesome-wallpaper.png" }
Oder stellen Sie einfach die Eigenschaft "wallpaper" des Themas ein:
theme.wallpaper = ".config/awesome/themes/awesome-wallpaper.png"
Tags
In awesome sind Tags die Bezeichnung für virtuelle Desktops, unter denen eine oder mehrere Anwendungen ausgeführt werden. Es ist möglich, diesen Tags eigene Symbole zuzuweisen:
-- {{{ Tags
tags = {}
for s = 1, screen.count() do
tags[s] = awful.tag({ "➊", "➋", "➌", "➍" }, s, layouts[1])
end
-- }}}
Menü
Unten sehen Sie ein Beispiel für ein benutzerdefiniertes awesome Menü:
-- {{{ 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 })
-- }}}
Datum
Nachstehend finden Sie ein Beispiel für die Verwendung eines benutzerdefinierten Datumsformats. Die verwendete Formatsyntax lautet %Y-%m-%d %H:%M
. Die zweite Option, 60
, ist das Aktualisierungsintervall in Sekunden.
-- {{{ Wibox
-- Erstellen eines Text-Uhr-Widgets
mytextclock = wibox.widget.textclock(" %Y-%m-%d %H:%M ", 60)
-- }}}
Für weitere Informationen über die Formatoptionen führen Sie date --help
Lautstärkeregler
media-sound/volumeicon kann verwendet werden, um die Lautstärketasten automatisch zu bedienen und den Lautstärkepegel durch ein Tray-Icon anzuzeigen.
root #
emerge --ask media-sound/volumeicon
Autostart von volumeicon innerhalb von ~/.xinitrc:
volumeicon &
exec [...]
Alternativ kann man die Lautstärketasten auch direkt in die awesome Konfiguration einfügen:
awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("amixer -q sset Master 5%-") end)
awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -q sset Master 5%+") end)
MPD-Multimedia-Tasten
Installieren Sie media-sound/mpc, um Multimedia-Tastenbindungen für MPD hinzuzufügen:
root #
emerge --ask media-sound/mpc
Als Nächstes aktualisieren Sie die awesome-Konfiguration, um die Multimediatasten dem richtigen Befehl zuzuordnen:
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),
Beseitigung von Fensterlücken
Lücken zwischen Fenstern können sichtbar sein, vor allem zwischen Terminalfenstern. Diese können durch Einfügen der Eigenschaft size_hints_honor = false
in die Tabelle awful.rules.rules
wie folgt entfernt werden:
awful.rules.rules = {
{ rule = { },
properties = { size_hints_honor = false, -- Remove gaps
border_width = beautiful.border_width,
border_color = beautiful.border_normal,
...
Fehlersuche in der Konfiguration mit Xephyr
Xephyr ist ein nützliches Werkzeug zum Debuggen neuer Konfigurationsdateien, da es eine Instanz eines X-Servers innerhalb eines Client-Fensters erzeugt.
user $
Xephyr -ac -nolisten tcp -br -noreset -screen 800x600 :1
Dadurch wird ein 800x600-Fenster geöffnet. Um awesome darin auszuführen, öffnen Sie ein neues Terminal und führen Sie Folgendes aus:
user $
DISPLAY=:1.0 awesome
Dies wird awesome innerhalb eines Fensters ausführen.
Tastaturkurzbefehle
Dies sind die nützlichsten Standardabkürzungen:
- Super+Mouse1 = Client mit der Maus verschieben
- Super+Mouse2 = Größenänderung des Clients mit der Maus
- Super+Enter = Terminal öffnen
- Super+r = Befehl ausführen
- Super+Shift+c = kill
- Super+m = Maximieren
- Super+n = Minimieren
- Super+Ctrl+n = minimierte Clients wiederherstellen
- Super+f = Vollbild
- Super+Tab = zum vorherigen Client wechseln
- Super+Ctrl+Space = float
- Super+j = Linken Client markieren
- Super+k = Rechten Client markieren
- Super+Shift+j = Client nach rechts verschieben
- Super+Shift+k = Client nach links verschieben
- Super+l = Größe des gekachelten Clients ändern
- Super+h = Größe des gekachelten Clients ändern
- Super+left / right = Tag ändern
- Super+1-9 = Tag ändern
- Super+Shift+1-9 = Client an Tag senden
Benutzerdefinierte Tastenkombinationen, wie Alt+Tab, können zugewiesen werden, um das awesome Erlebnis noch besser zu machen. Zum Beispiel, um mit Alt+Tab zum vorherigen Fenster zu wechseln:
-- {{{ 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),
-- }}}
Externe Ressourcen
- Benutzerkonfigurationsdateien im awesome Wiki (web.archive.org)
- Umstellung des Desktop-Profils USE-Standard auf elogind