[[Vorlage(archiviert, "Das Programm wird nicht mehr weiter entwickelt, die letzte Version datiert auf 2011.")]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:Rechte: Rechte für Dateien und Ordner ändern] }}} [[Inhaltsverzeichnis(1)]] [[Bild(pekwm_logo.png, 125x48.5, left)]] ''"All the cool kids use pekwm ..."'' [http://www.pekwm.org/ Pekwm] {en} (kurz "Pek") ist ein schlanker Fensterverwalter, der ursprünglich auf [github:frankhale/aewmpp:aewm++] {en} basierte, sich aber mittlerweile zu einem eigenständigen Projekt entwickelt hat. Pek bietet Funktionen wie Fenstergruppierung, benutzerdefinierte Menüs, eine Übersicht der geöffneten X-Clients (quasi Panel), Xinerama-Support und vieles mehr. [[Vorlage(Bildunterschrift, screenshot.png, 175, "Pekwm", right)]] Wer es nicht scheut, sich in ein Programm einarbeiten zu müssen, bekommt mit Pekwm einen flinken Fensterverwalter, der sich sehr gut an den eigenen Workflow anpassen lässt und bei dem es immer wieder etwas zu entdecken gibt. Hier soll kurz Peks Installation sowie dessen grundlegende Konfiguration besprochen werden. = Installation = Folgendes Paket muss installiert werden [1]: {{{#!vorlage Paketinstallation pekwm, universe }}} = Erste Pekwm-Sitzung = Hat man das Paket installiert, kann man Pekwm sofort ausprobieren: Nutzt man einen [:Displaymanager:], sollte ein Eintrag für eine Pekwm-Sitzung angelegt worden sein. Dieser muss beim Login angewählt werden. Nutzt man keinen Displaymanager, passt man seine '''~/.xinitrc''' bzw. '''~/.xsessionrc''' an und startet daraufhin von einer virtuellen Konsole mit:[3] {{{#!vorlage Befehl startx }}} Des Weiteren ist es möglich, eine Pekwm-Sitzung mittels Replace-Funktion anzustoßen: {{{#!vorlage Befehl pekwm --replace & }}} = Konfiguration = == Allgemeines == Alles, was man braucht, um Pekwm zu konfigurieren, findet sich im versteckten Verzeichnis '''~/.pekwm/''', welches automatisch angelegt wird, wenn man Pekwm zum ersten Mal startet. Die Standard-Themen sowie z.B. das Skript, um diese Themen zu setzen, findet man in '''/usr/share/pekwm/'''. Globale Konfigurationsdateien befinden sich in '''/etc/pekwm/'''. Jede Konfigurationsdatei folgt dabei einer einheitlichen Syntax, die zu Beginn verwirrend wirken kann. '''~/.pekwm/start''' bzw. '''/etc/pekwm/start''' folgen dieser Syntax nicht. Es wird empfohlen, sich an den automatisch angelegten Konfigurationen zu orientieren und diese nach eigenem Belieben abzuändern, insbesondere dann, wenn man sich in Peks Handhabung noch nicht sicher ist, um eine funktionierende Fensterverwaltung zu gewährleisten. == ~/.pekwm/start == Die Datei '''~/.pekwm/start''' ist ein Shell-Skript, welches ausgeführt wird, wenn man Pekwm startet. Es kann sein, dass die Datei nach der Installation ausführbar gemacht werden muss, um sie nutzen zu können:[3][4] {{{#!vorlage Befehl chmod +x ~/.pekwm/start }}} Es ist vorzuziehen, '''~/.pekwm/start''' zu nutzen, um z.B. ein Panel zu starten, damit Fehlern (etwa Panel erscheint nicht) vorgebeugt werden kann. Das heißt, ist man es beispielsweise gewohnt, eine '''~/.xinitrc''' anzulegen, sollte man dazu übergehen, mit der '''~/.xinitrc''' nur noch Pekwm zu starten und alles andere über '''~/.pekwm/start'''. Eine mögliche Konfiguration könnte so aussehen: {{{#!code bash #!/bin/sh #File: ~/pekwm/start # Setze vor dem Mittag und nach dem Mittag einen Hintergrund mit xsetroot clock=$(LANG=C date +%P) if [ $clock = 'am' ] then xsetroot -solid '#4c4c4c' else xsetroot -solid '#918069' fi # Starte tint2 tint2 & }}} == ~/.pekwm/vars == '''~/.pekwm/vars''' wird automatisch beim ersten Start von Pekwm erzeugt und muss nicht genutzt werden, um Variablen zu setzen, da Variablen in jeder Konfigurationsdatei von Pekwm gesetzt werden können. Pekwm unterscheidet Variablen, die mit `$` und mit `$_` gesetzt werden. === $ === Variablen die nur für Pekwm gelten sollen, werden mit `$` gesetzt. Dies bietet sich etwa an, wenn man in einem Thema eine bestimmte Schriftart nutzen möchte: {{{ $font = "meinvielzulangerpekwmfont 05_55 caps-6Left#XFT" }}} Im weiteren Verlauf des Thema könnte man nun also jedes mal `$font` nutzen, um `meinvielzulangerpekwmfont 05_55 caps-6Left#XFT` zu schreiben. === $_ === Variablen, die systemweit nutzbar sein sollen, werden mit `$_` gesetzt. Beispielsweise ließe sich so eine Variable `ubuntuusers` erzeugen: {{{ $_ubuntuusers="meinwwwbrowser http://ubuntuusers.de" }}} welche man auch aus einem [:xterm:] heraus aufrufen könnte: {{{#!vorlage Befehl echo $ubuntuusers }}} == ~/.pekwm/config == Die Datei '''~/.pekwm/config''' bestimmt das grundsätzliche Verhalten von Pekwm. Hier wird etwa festgelegt, wieviele Arbeitsflächen man verwenden möchte und wie diese heißen, ob der Kommando-Dialog eine '''~/.pekwm/history''' anlegen soll und wieviele Einträge diese enthalten soll, wo sich die für Pekwm relevanten Konfigurationsdateien befinden, usw. == ~/.pekwm/keys == In '''~/.pekwm/keys''' finden sich die Tastenkürzel, um Pekwm zu bedienen. Darunter befinden sich einfache Tastenkürzel wie die Belegung der Pfeiltasten beim Navigieren durch Menüs und komplexe Tastenkürzel sog. "Keychains", die ausgelöst werden, indem man zuerst eine Tastenkombination und daraufhin eine weitere Taste drückt. Um herauszufinden, wie eine Taste heißt, eignet sich das Programm aus dem gleichnamigen Paket '''xev'''. Wer möchte, kann so ziemlich alles in Pekwm über Tastenkürzel erledigen. Um etwa das Root-Menü von Pekwm über die Taste [[Vorlage (Tasten, super)]] bzw. [[Vorlage (Tasten, windows)]] anzuzeigen, kann man sich unter "`Global {`" ein Tastenkürzel wie folgt anlegen: {{{#!code KeyPress = "Super_L" { Actions = "ShowMenu Root" } }}} Ein Eintrag, um ein Xterm über [[Vorlage (Tasten, alt+t)]] zu starten, würde man so anlegen: {{{#!code Keypress = "Mod1 T" { Actions = "Exec xterm" } }}} Möchte man die Fensterdekorationen abstellen, kann man das z.B. über folgende Keychain (erst [[Vorlage (Tasten, strg+alt+d)]], dann [[Vorlage (Tasten, b)]]) erledigen: {{{#!code Chain = "Ctrl Mod1 D" { KeyPress = "B" { Actions = "Toggle DecorBorder" } } }}} == ~/.pekwm/menu == In '''~/.pekwm/menu''' stellt man die Menüs von Pekwm ein. Ein einfacher Eintrag hat folgende Struktur: {{{#!code Entry = "NAME" { Actions = "Exec KOMMANDO &" } }}} Ein Untermenü folgende: {{{#!code Submenu = "NAME" { Entry = "NAME" { Actions = "Exec KOMMANDO &" } Entry = "NAME" { Actions = "Exec KOMMANDO &" } } }}} Eine Linie, die die Menüeinträge trennt, wird mit {{{#!code Separator {} }}} hinzugefügt. === Dynamische Menü-Einträge === [[Bild(Menu1, 125x48.5, right)]] Dynamische Menü-Einträge werden bei jedem Aufruf des Menüs generiert. Hierfür werden kleine Programme genutzt, die in jeder Sprache geschrieben sein können, die Pekwm-Syntax ausgeben kann. Beispielsweise kann man sich ein kleines Bash-Skript anlegen, um einen Eintrag zu erhalten, der die aktuelle Uhrzeit in einem Pekwm-Menü anzeigt und bei Verwendung das Programm Xclock aufruft: {{{#!code bash #!/bin/bash clock=$(date +'%H:%M') cat <