Awesome · Linux · Lua · Programming

Awesome WM 4.0 Widgets erstellen

Heute möchte ich eine kleine Anleitung geben wie man unter Awesome 4.0 eigene Widgets erstellen und einbinden kann. Beispielhaft erstellen wir ein kleines Widget, welches die Helligkeit des Bildschirms anzeigt. Als Hardware verwende ich ein Thinkpad T410. Es könnte also es sein, dass ihr die Hotkeys anpassen müsst.

Unter Awesome 4.0 kann die komplette Oberfläche mithilfe der Konfigurationsdatei angepasst werden. Diese Konfigurationsdatei heißt „rc.lua“ und befindet sich meistens unter „~/.config/awesome“. Heutiges Ziel ist es, dass ein Helligkeitsicon und eine Prozentzahl der aktuellen Bildschirmhelligkeit angezeigt wird. Dabei setze ich voraus, dass noch die ursprüngliche, unveränderte rc.lua installiert ist die bei der Installation von Awesome mitgeliefert wird.

Zuerst erstellen wir im selben Verzeichnis in dem sich auch unsere rc.lua befindet eine weitere Datei. Diese nennen wir „brightness.lua“. Mit einem Texteditor unserer Wahl bearbeiten wir nun diese neu erstellte Datei und binden zunächst die benötigten Frameworks ein:

local wibox = require("wibox")
local watch = require("awful.widget.watch")

Als nächstes erstellen wir ein Widget für das Icon. Als Icon nutze ich eines aus dem Adwaita Paket. Dies ist ein default Theme für GTK+ und kann unter Debian mit dem Befehl

sudo apt-get install adwaita-icon-theme

installiert werden. Folgend eine Beispielhafte implementation für mein Iconwidget. Wenn ihr ein anderes Icon verwenden möchtet müsst ihr den Pfad zur .svg Datei anpassen. Mit der layout Variable stelle ich den Abstand zum nächsten Widget etwas höher:

local brightness_icon = wibox.widget
{
  {
    image = "/usr/share/icons/Adwaita/scalable/status/display-brightness-symbolic.svg",
    resize = false,
    widget = wibox.widget.imagebox,
  },
  layout = wibox.container.margin(brightness_icon, 5, 0, 2),
}

Als nächstes brauchen wir noch ein Widget für den Text. Als Schriftart verwende ich „Play 9“:

local brightness_text_widget = wibox.widget
{
  font = "Play 9",
  widget = wibox.widget.textbox,
}

Und brauchen wir noch ein Widget, welches die beiden vorangegangenen Widgets vereint und nebeneinander anordnet:


brightness_widget = wibox.widget {
brightness_icon,
brightness_text_widget,
layout = wibox.layout.fixed.horizontal,
}

Als nächstes füllen wir das Widget mit Leben. Dies geschieht mit der watch Funktion. Diese führt in regelmäßigen Abständen ein Kommando aus und kann die Ausgabe dieses Kommandos verarbeiten. Um an die aktuelle Helligkeit zu kommen verwenden wir das Programm „xbacklight“ und schreiben die Ausgabe direkt in unser brightness_text_widget:

watch(
 "xbacklight -get", 1,
 function(widget, stdout, stderr, exitreason, exitcode)
 local brightness_level = tonumber(string.format("%.0f", stdout))
 brightness_text_widget:set_text(brightness_level)
 end
)

 

Nun sind wir Fertig mit dem Widget und können es abspeichern. Als nächstes müssen wir die rc.lua konfigurieren um es einzubinden. Dazu reicht es folgende Zeile an den Anfang der rc.lua zu setzen:

require("brightness")

Als nächstes Scrollen wir runter zu den Zeilen:

{ -- Right widgets
 layout = wibox.layout.fixed.horizontal,
 mykeyboardlayout,
 wibox.widget.systray(),

und schreiben irgendwo hinter der „wibox.widget.systray(),“ und vor der „mytextclock,“ Zeile:

 brightness_widget,

Nun sollte das Widget fertig konfiguriert sein. Um die Helligkeit verändern zu können müssen wir allerdings noch die Hotkeys definieren. Dazu scrollen wir noch weiter runter zur Zeile „globalkeys = awful.util.table.join(“ und fügen dahinter folgende Zeilen hinzu:

-- Brightness

awful.key({ }, "XF86MonBrightnessDown", function ()
 awful.util.spawn("xbacklight -dec 5") end, {description = "decrease brightness", group = "custom"}),
awful.key({ }, "XF86MonBrightnessUp", function ()
 awful.util.spawn("xbacklight -inc 5") end, {description = "increase brightness", group = "custom"}),

XF86MonBrightnessDown bzw. XF86MonBrightnessUp sind beim Thinkpad T410 die Hotkeys für [Fn]+[Ende] bzw. [Fn] + [Pos1] zum Einstellen der Helligkeit. Es kann allerdings auch jeder andere Hotkey verwendet werden.

Ist alles erledigt speichern wir auch diese Datei und sagen Awesome, dass es die Konfigurationsdatei neu laden soll. Dies geschieht mit [Windowstaste] + [STRG] + [r]. Jetzt müsste neben der Uhr oben rechts ein Icon sowie eine Zahl daneben aufgetaucht sein. Die Zahl gibt die Bildschirmhelligkeit in Prozent an.  Auch die Hotkeys sollten jetzt in der Hotkeyübersicht angezeigt werden und Funktionieren. Zum Anzeigen der Hotkeyübersicht einfach  [Windowstaste] + [s] drücken.

file

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s