Artikel mit Tag build

Polybar – Die Statusleiste unter Linux aufhübschen

Viele Distributionen sehen schick aus und bringen viele Informationen auf die Statusleiste. Wem das jedoch nicht zusagt und von einer Statusleiste mit mehr Anpassungsmöglichkeiten geträumt wird, dann ist Polybar genau das richtige Tool. Die Polybar ist ein schnelles und effizientes Werkzeug zur Erstellung von wunderschönen Statusleisten auf Linux-Distributionen.

polybar

In neueren Distributionen lässt sich die Polybar via Paketmanager installieren, unter Ubuntu 20.04 LTS ist diese Variante allerdings noch nicht vorhanden, daher wird in diesem Artikel auch auf den Buildprozess eingegangen.

Geduldige warten bis zum Release von Ubuntu 22.04 LTS in wenigen Wochen, dort sollte das Polybar Paket mit an Bord sein.

polybar-statusleiste

Polybar unter Ubuntu 21.04 oder Debian 11 installieren

Wie bereits erwähnt ist bei neuen Systemen eine Installation via Paketmanager möglich

sudo apt install polybar

Auf älteren Ubuntu Systemen könnte ebenfalls auf ein PPA zurückgegriffen werden, allerdings ist dort nicht die neueste Version enthalten, daher nicht zu empfehlen.

sudo add-apt-repository ppa:kgilmer/speed-ricer
sudo apt-get update

Snap würde natürlich auch funktionieren, wenn gewünscht

sudo apt update 
sudo apt install snapd
sudo snap install polybar-git --edge

polybar-features

Polybar unter Ubuntu 20.04 LTS selbst kompilieren und installieren

Um das Paket selbst zu bauen, werden zunächst ein paar Pakete benötigt.

sudo apt-get install cmake cmake-data libcairo2-dev libxcb1-dev libxcb-ewmh-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-randr0-dev libxcb-util0-dev libxcb-xkb-dev pkg-config python3-xcbgen xcb-proto libxcb-xrm-dev libasound2-dev libmpdclient-dev libiw-dev libcurl4-openssl-dev libpulse-dev libxcb-composite0-dev i3 alsa-oss xcb libxcb-ewmh2

Nun kann das Git Repository geklont werden.

git clone https://github.com/jaagr/polybar.git

Danach den Buildvorgang starten.

polybar && ./build.sh

Ist der Vorgang erfolgreich gewesen, kann die Polybar testweise gestartet werden.

polybar example

Weitere Konfigurationen werden via config.ini gemacht, dort kann zum Beispiel der Default Name „example“ geändert werden.

Die Beispielkonfiguration wird zunächst ins eigene Profil kopiert, dort können dann weitere Anpassungen vorgenommen werden. So lassen sich dort verschiedene Module aktivieren oder eigene einbinden. Einen Überblick der vorhandenen Funktionen könnt ihr der Grafik weiter oben entnehmen.

sudo mkdir -p ~.config/polybar

sudo cp /usr/local/share/doc/polybar/examples/config.ini ~.config/polybar/config.ini

Anpassungen & Fehlerbehebung

Polybar wird nach dem Start nicht angezeigt

Am besten lässt sich dieses Problem mit dem Ausblenden der Top-Leiste mit der Erweiterung Hide Top Bar lösen.

Dazu muss zunächst folgendes Paket installiert werden

sudo apt install chrome-gnome-shell

Danach lässt sich die Erweiterung leicht direkt via Browser aktivieren, dazu wird auf der folgenden Seite einfach der Schalter auf On gestellt.

https://extensions.gnome.org/extension/545/hide-top-bar/

Nun sollte bei einem Start von Polybar die vorhandene Statusleiste automatisch im Hintergrund verschwinden.

Natürlich lassen sich beide Statusleisten auch parallel anzeigen, dazu kann die Polybar einfach unter die vorhandene gesetzt werden in dem das Offset in der Konfiguration angepasst wird.
 

sudo vim ~.config/polybar/config.ini

offset-y = 27

Autostart von Polybar einrichten

Mit Ubuntu Desktop lässt sich das schnell über die Autostartfunktion regeln.

Falls nicht vorhanden (in Ubuntu 20.04 LTS dabei) kann das Autostartpaket nachinstalliert werden.

sudo apt install gnome-startup-applications

polybar-autostart

Alternativ lässt sich der Autostart auch über die Konsole regeln.

mkdir -p ~/.config/autostart/
cat <<EOF > ~/.config/autostart/polybar.desktop
[Desktop Entry]
Name=Polybar
Type=Application
Hidden=false
Exec="Pfad zur Polybar"
EOF

Wie stelle ich die Transparenz der Statusleiste ein?

In der config.ini den Wert der Hintergrundfarbe anpassen.

  • FF steht für undurchsichtig
  • 00 steht für Transparenz

Da es sich um Hexadezimalwerte handelt (0, 1, 2,.., 9, A, B, C, D, E, F ) bietet sich ein Mittelwert an.

Background = #aa282A2E

polybar-config

Jetzt aber viel Spaß beim Gestalten der eigenen Statusleiste.

Weitere Informationen und fertig Themes gibt es unter:

 

Nagios - Icinga: Debian Bullseye check_interfaces schlägt fehl

icinga-logo

Ein kurzer Tipp fürs Interface Monitoring mit Icinga oder Nagios unter Debian.

Nach einem Update auf Debian Bullseye kann es vorkommen, dass einige Check Plugins fehlschlagen. So geschehen mit check_interfaces.

Das Plugin bringt nur noch folgende Ausgabe:

Plugin-Ausgabe
/usr/lib/nagios/plugins/check_interfaces: error while loading shared libraries: libnetsnmp.so.30: cannot open shared object file: No such file or directory

Zunächst kann man natürlich versuchen, die nötigen Dateien auf anderen Systemen zu suchen oder das Paket libsnmp40 zu installieren, leider bringt dies unnötige Arbeit, bzw. keine Abhilfe.

Die Lösung ist ein einfaches neu builden des Plugins:

debian_bullseye

apt-get update
apt-get -y install git build-essential libsnmp-dev

wget https://github.com/NETWAYS/check_interfaces/archive/refs/tags/v1.4.tar.gz

tar xvf v1.4.tar.gz

cd check_interfaces-1.4/

./configure --libexecdir=/usr/lib/nagios/plugins

make
make install

Der Zielpfad kann natürlich je nach Check Plugin Verzeichnis angepasst werden. Nach dem erneuten Builden unter Debian Bullseye sollte das Plugin wieder ohne Probleme funktionieren.

HowTo - Einen eigenen SuperTuxKart Server im LAN aufsetzen und gegen Freunde zocken

Vor kurzem wurde eine neue SuperTuxKart Version veröffentlicht.

Wie schon aus der Beta bekannt war, bringt diese neue Version neben diversen Verbesserungen eine Netzwerkunterstützung mit.

Daneben sorgen ca. 20 Rennstrecken und verschiedene Spielmodi für Abwechslung. Der Funracer ist natürlich OpenSource und so hat jeder die Möglichkeit seinen eigenen Server zu betreiben.

Alle Infos findet ihr in den Release Notes.

SuperTuxKart1
Genau diese Netzwerkunterstützung will ich im Folgenden näher anschauen, denn für einen eigenen Server reicht bereits ein RaspberryPi aus.


Eigenen SuperTuxKart Server fürs LAN bauen

Als Basis dient ein Ubuntu 16.04 LTS oder ein Raspbian System, der Vorgang ist jeweils gleich.

Zunächst müssen ein paar Pakete installiert werden, damit der Build auch gelingt.

sudo apt-get install build-essential cmake libbluetooth-dev \
libcurl4-openssl-dev libenet-dev libfreetype6-dev libfribidi-dev \
libgl1-mesa-dev libglew-dev libjpeg-dev libogg-dev libopenal-dev libpng-dev \
libssl-dev libvorbis-dev libxrandr-dev libx11-dev nettle-dev pkg-config zlib1g-dev git subversion

Als nächstes werden die Installationsdateien auf das lokale System geladen.

cd /opt
sudo mkdir stk-code
sudo mkdir stk-asset
git clone https://github.com/supertuxkart/stk-code stk-code
svn co https://svn.code.sf.net/p/supertuxkart/code/stk-assets stk-assets

Der letzte Schritt kann etwas Zeit benötigen, da mehrere 100MB geladen werden müssen.

cd stk-code
sudo mkdir cmake_build
cd cmake_build/
sudo cmake .. -DSERVER_ONLY=ON
sudo make -j$(nproc)

Nun heißt es etwas warten, denn je nach CPU Leistung, kann dies etwas dauern...

stk-server

Schwups ist der fertige Server erstellt, ihr könnt ihn nun bereits ausprobieren oder systemweit mit sudo make install installieren.

Danach findet ihr den installierten Server unter /usr/local/bin/supertuxkart.


In unserem Fall starten wir den Server testweise direkt.

cd bin/

./supertuxkart --lan-server=test --network-console

stk-server-start

[info   ] GrandPrixManager: Loading Grand Prix files from ../../data/grandprix/
[info   ] GrandPrixManager: Loading Grand Prix files from /home/xyz/.local/share/supertuxkart/grandprix/
Fri Apr 26 20:25:41 2019 [info   ] STKHost: Host initialized.
Fri Apr 26 20:25:41 2019 [info   ] STKHost: Server port is 2759
Fri Apr 26 20:25:41 2019 [info   ] main: Creating a LAN server 'test'.
Fri Apr 26 20:25:41 2019 [info   ] ServerLobby: Reset server to initial state.
Fri Apr 26 20:25:41 2019 [info   ] ProtocolManager: A 11ServerLobby protocol has been started.
Fri Apr 26 20:25:41 2019 [info   ] STKHost: Listening has been started.

Nun solltet ihr darauf achten, dass der Port 2759 im lokalen Netz erreichbar ist und Firewalls diesen nicht blockieren.

Ebenfalls ist es wichtig lokal einen Servernamen beim Start anzugeben, da der Server sonst nicht startet.

Zusätzlich wird unter /opt/stk-code/.config/supertuxkart/config-0.10/server_config.xml beim ersten Start eine Konfigurationsdatei angelegt, dort können weitere Einstellungen gesetzt werden.

Für unseren Server muss hier Nichts weiter angepasst werden.

Alternativ könnt ihr eure eigene Konfigurationsdatei beim Start auch gleich mitgeben

supertuxkart --server-config=your_config.xml --network-console

Ob der Server läuft lässt sich mit einem einfachen netstat -lnp oder via ss -ln herausfinden (Artikel).

SuperTuxKart auf eigenen Server spielen

Um auf dem eigenen Server gegeneinander zu spielen, müsst ihr euch zunächst das Spiel installieren, dieses findet ihr hier.


Nach dem Start müssen folgende Schritte durchgeführt werden, um auf den eigenen Server zu gelangen,

stk-server-gui

stk-server-lan

stk-server-findstk-server-test-srv

Alternativ kann auch ein Server direkt aus dem Programm heraus erstellt werden und somit quasi mit jedem PC. Ein kleiner RapsberryPi ist allerdings um einiges praktischer.

Sollte ein STK Server übers Internet erreichbar sein, muss zusätzlich ein STK Account angelegt werden. Dieser Account muss beim Serverstart angegeben werden. Weitere Tipps finden sich hier.

supertuxkart --init-user --login=your_registered_name --password=your_password

Viel Spaß