Awesome

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Awesome and the translation is 100% complete.


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:

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

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

DATEI ~/.config/awesome/theme/theme.luaEinstellen eines bestimmten Hintergrunds mit awsetbg
theme.wallpaper_cmd = { "awsetbg -f .config/awesome/themes/awesome-wallpaper.png" }

Oder stellen Sie einfach die Eigenschaft "wallpaper" des Themas ein:

DATEI ~/.config/awesome/theme/theme.luaEinstellen eines bestimmten Hintergrunds mit der Eigenschaft wallpaper
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:

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

DATEI ~/.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 })
-- }}}

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.

DATEI ~/.config/awesome/rc.luaErstellen eines Text-Uhr-Widgets
-- {{{ Wibox
-- Erstellen eines Text-Uhr-Widgets
mytextclock = wibox.widget.textclock(" %Y-%m-%d %H:%M ", 60)
-- }}}
Hinweis
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:

DATEI ~/.xinitrcStarten von volumeicon im Hintergrund beim Start von X
volumeicon &
exec [...]

Alternativ kann man die Lautstärketasten auch direkt in die awesome Konfiguration einfügen:

DATEI ~/.config/awesome/rc.luaLautstärketasten
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:

DATEI ~/.config/awesome/rc.luaLautstärke-Tastenbelegung
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:

DATEI ~/.config/awesome/rc.luaEinstellung der Eigenschaft size_hints_honor
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:

DATEI ~/.config/awesome/rc.luaAlt-TAB-Tastenbindung
-- {{{ 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