Jwm: Unterschied zwischen den Versionen

Aus mxlinuxusers.de
Zur Navigation springen Zur Suche springen
(Konfiguration der .jwmrc ergänzt)
Markierung: Durch einen Tor-Ausgangsknoten
("Programm" ergänzt)
Markierung: Durch einen Tor-Ausgangsknoten
Zeile 17: Zeile 17:
 
die Korrektheit der Konfigurationsdatei kontrolliert werden.
 
die Korrektheit der Konfigurationsdatei kontrolliert werden.
   
Die .jwmrc unterteilt sich in viele Hauptabschnitte, von denen das sogenannte "Rootmenu" das wichtigste ist und nicht fehlen darf:
+
Die .jwmrc unterteilt sich in viele Hauptabschnitte, von denen das sogenannte [[jwm#Rootmenu|"Rootmenu"]] das wichtigste ist und nicht fehlen darf. Die gesamte Datei muss aber unbedingt mit der XML-Definition und nachfolgendem Start-Tag <JWM> und dem End-Tag </JWM> umschlossen sein:
  +
<?xml version="1.0"?>
* RootMenu (hier wird das Aussehen und der Inhalt des Anwendungsmenus, also das Starten von Programmen, konfiguriert)
 
  +
<JWM>
  +
<!-- The root menu. -->
  +
<RootMenu onroot="12" labeled="true" label="START">
  +
...
  +
</RootMenu>
  +
...
  +
</JWM>
  +
* [[jwm#RootMenu|RootMenu]] (hier wird das Aussehen und der Inhalt des Anwendungsmenus, also das Starten von Programmen, konfiguriert)
 
* Group (Optionen für Programmgruppen)
 
* Group (Optionen für Programmgruppen)
 
* Tray
 
* Tray
Zeile 38: Zeile 46:
 
* Key mask (welche Tasten bzw. Tastenkombinationen lösen die Aktionen aus)
 
* Key mask (welche Tasten bzw. Tastenkombinationen lösen die Aktionen aus)
 
* Mouse context (durch welche Maustasten werden welche Aktionen ausgelöst)
 
* Mouse context (durch welche Maustasten werden welche Aktionen ausgelöst)
  +
== Root-Menu ==
  +
Mit dem Root-Menu wird der Inhalt des Anwendungsmenus konfiguriert, es dient also im wesentlichen dazu Programme zu starten und jwm neu zu starten (Restart) oder zu verlassen (Exit). Es besteht im wesentlichen aus den Tags "Menu", mit denen Gruppen von Programmen gebildet werden können (z.B. Büro, Grafik, Programmierung usw.) und den Tags "Program", die zum Starten der einzelnen Programme dienen. Ein Minibeispiel mit zwei Anwendungsgruppen "Büro" und "Grafik" könnte also so aussehen:
  +
<RootMenu onroot="12" labeled="true" label="START">
  +
<Menu icon="/usr/share/icons/Adwaita/16x16/categories/applications-office.png" label="Büro">
  +
<Program icon="/usr/share/icons/hicolor/16x16/apps/libreoffice-startcenter.png" label="LibreOffice">libreoffice </Program>
  +
<Program icon="/usr/share/icons/hicolor/16x16/apps/libreoffice-base.png" label="LibreOffice Base">libreoffice --base </Program>
  +
<Program icon="/usr/share/icons/hicolor/16x16/apps/libreoffice-calc.png" label="LibreOffice Calc">libreoffice --calc </Program>
  +
<Program icon="/usr/share/icons/hicolor/16x16/apps/libreoffice-draw.png" label="LibreOffice Draw">libreoffice --draw </Program>
  +
<Program icon="/usr/share/icons/hicolor/16x16/apps/libreoffice-writer.png" label="LibreOffice Writer">libreoffice --writer </Program>
  +
<Program icon="/usr/share/icons/hicolor/scalable/apps/qpdfview.svg" label="qpdfview">qpdfview --unique </Program>
  +
</Menu>
  +
<Menu icon="/usr/share/icons/Adwaita/16x16/categories/applications-graphics.png" label="Grafik">
  +
<Program icon="/usr/share/icons/hicolor/16x16/apps/calibre-viewer.png" label="E-book Viewer">ebook-viewer </Program>
  +
<Program icon="/usr/share/icons/hicolor/scalable/apps/flameshot.svg" label="Flameshot">flameshot</Program>
  +
<Program icon="/usr/share/icons/hicolor/16x16/apps/gimp.png" label="GNU Image Manipulation Program">gimp-2.10 </Program>
  +
</Menu>
  +
</RootMenu>
  +
Das Attribut icon wurde hier immer mit dem vollen Pfad angegeben, praktischer ist es natürlich, die Pfade zu den verwendeten Icons im Abschnitt <IconPath> zu definieren. Dort kann man beliebig viele Pfade angeben, die in dieser Reihenfolge nach dem passenden Icon-Namen durchsucht werden. Das erste gefundene Icon mit dem übereinstimmenden Name wird dann zur Anzeige benutzt. Dabei empfiehlt es sich sogar, die Dateiextension, also .png, .svg usw. wegzulassen. Wer keine Icons mag kann dieses Attribut auch ganz weglassen.
   
  +
Solch ein Abschnitt <IconPath> könnte also z.B. so aussehen, hier bei Benutzung des Themas Adwaita:
  +
<IconPath>/usr/share/icons/Adwaita/scalable/actions</IconPath>
  +
<IconPath>/usr/share/icons/Adwaita/scalable/apps</IconPath>
  +
<IconPath>/usr/share/icons/Adwaita/scalable/categories</IconPath>
  +
<IconPath>/usr/share/icons/Adwaita/scalable/places</IconPath>
  +
<IconPath>/usr/share/icons/Adwaita/scalable/status</IconPath>
  +
<IconPath>/usr/share/icons/Adwaita/scalable/mimetypes</IconPath>
  +
<IconPath>/usr/share/icons/Adwaita/16x16/apps</IconPath>
  +
<IconPath>/usr/share/icons/Adwaita/16x16/places</IconPath>
  +
<IconPath>/usr/share/icons/hicolor/16x16/apps</IconPath>
  +
<IconPath>/usr/share/icons/hicolor/scalable/apps</IconPath>
  +
=== Program ===
  +
Im Tag "Program" könnte man auch das Attribut "label" weglassen. In diesem Fall würde dann der Programmname im Menu angezeigt.
  +
  +
Zusätzlich zu den Attributen "icon" und "label" ist auch ein Attribut "tooltip" möglich, dessen Text beim Überfahren mit der Maus sichtbar wird:
  +
<Program icon="flameshot" tooltip="Screenshotprogramm mit vielen Möglichkeiten" label="Flameshot">flameshot</Program>
  +
Programme müssen nicht zwingend innerhalb der Tags <Menu></Menu> stehen. Für oft verwendete Anwendungen bietet es sich an, sie z.B. ganz am Anfang vor den einzelnen Menugruppen aufzuführen. Wichtig ist nur, dass sie innerhalb des Rootmenus liegen.
  +
<RootMenu onroot="12" labeled="true" label="START">
  +
<Program icon="utilities-terminal" label="Terminal">terminator</Program>
  +
<Program icon="web-browser" label="Firefox">firefox</Program>
  +
<Menu icon="folder" label="Büro">
  +
<Program icon="/libreoffice-startcenter.png" label="LibreOffice">libreoffice</Program>
  +
...
  +
</Menu>
  +
</RootMenu>
  +
=== Restart und Exit ===
  +
Es ist sehr praktisch, zusätzlich zu den Menu und Programm-Punkten zwei Einträge für Restart und Exit einzubauen. Dafür gibt es in jwm die Tags "Restart" und "Exit" mit folgendem Aufbau:
  +
<Restart label="Restart" icon="reload"/>
  +
<Exit label="Exit" confirm="true" icon="application-exit"/>
  +
Die Label, also die Beschriftungen für die Menupunkte, sind frei wählbar, als Default sind "Restart" und "Exit" eingestellt, könnten im Beispiel also auch weggelassen werden.
   
 
[[Kategorie:Fenstermanager]]
 
[[Kategorie:Fenstermanager]]

Version vom 24. September 2021, 20:52 Uhr

jwm (Joe's Window Manager) ist ein leichtgewichtiger, aber trotzdem sehr vielseitiger Fenstermanager, der von Joe Wingbermuehle in C geschrieben wurde.

Wichtige Merkmale:

  • die individuelle Konfiguration erfolgt durch eine einzige XML-Datei im Homeverzeichnis des Users. Durch Include-Kommandos innerhalb der Konfigurationsdatei ist aber auch das Einbinden von mehreren Dateien möglich
  • Snap-Funktion, d.h. Fenster können durch einfaches ziehen an den Bildschirmrand maximiert werden
  • mehrere Fenster können individuell konfiguriert werden (jedes Fenster mit einer eigenen Farbe, einem Farbverlauf oder einem Hintergrundbild)
  • automatisches Starten von Programmen auf verschiedenen Arbeitsflächen
  • flexible Einrichtung auch von mehreren Panels (Taskleisten), in jwm Tray genannt
  • Transparenz ist möglich, es muss dazu jedoch extra ein Compositing-Manager (z.B. Compton) installiert werden
  • Benutzerdefinierte Tastenkürzel können eingerichtet werden

Wie allgemein üblich gibt es eine systemweit gültige Konfigurationsdatei /etc/jwm/system.jwmrc und eine nur für den jeweiligen User gültige Datei .jwmrc, die direkt im Homeverzeichnis liegt, also ~/.jwmrc. Dabei hat die ~/.jwmrc Vorrang vor der Datei /etc/jwm/system.jwmrc

Persönliche Einstellungen sollten also unbedingt in der ~/.jwmrc vorgenommen werden. Da diese bei der Installation nicht automatisch angelegt wird, muss man dies von Hand durchführen. Dafür befindet sich im Verzeichnis /usr/share/doc/jwm/examples/ eine gepackte Beispielsdatei example.jwmrc.gz, die man entpacken und unter dem Namen .jwmrc in sein Homeverzeichnis kopieren und dort editieren kann.

gunzip -kc /usr/share/doc/jwm/examples/example.jwmrc.gz > ~/.jwmrc

Nach dem Editieren der ~/.jwmrc sollte unbedingt mit

jwm -p

die Korrektheit der Konfigurationsdatei kontrolliert werden.

Die .jwmrc unterteilt sich in viele Hauptabschnitte, von denen das sogenannte "Rootmenu" das wichtigste ist und nicht fehlen darf. Die gesamte Datei muss aber unbedingt mit der XML-Definition und nachfolgendem Start-Tag <JWM> und dem End-Tag </JWM> umschlossen sein:

 <?xml version="1.0"?>
 <JWM>
     <RootMenu onroot="12" labeled="true" label="START">
     ...
     </RootMenu>
     ...
 </JWM>
  • RootMenu (hier wird das Aussehen und der Inhalt des Anwendungsmenus, also das Starten von Programmen, konfiguriert)
  • Group (Optionen für Programmgruppen)
  • Tray

und Einstellungen für das Verhalten und Aussehen der verschiedenen Bereiche (Window allgemein, Tray, Taskliste usw.)

  • WindowStyle
  • TrayStyle
  • TaskListStyle
  • PagerStyle
  • MenuStyle
  • PopupStyle
  • IconPath (Liste der Pfade, in denen die benutzen Icons liegen)
  • DoubleClickSpeed
  • DoubleClickDelta
  • FocusModel (wie erhält welches Fenster den Fokus)
  • SnapMode (wann und wie sollen Fenster einrasten)
  • MoveMode (Verhalten der Fenster beim verschieben)
  • ResizeMode (Verhalten der Fenster beim vergrössern/verkleinern)
  • Key bindings (welche Aktionen sollen durch Tastendrücke ausgelöst werden, Fenster schliessen, maximieren, Programm beenden u.ä.)
  • Key mask (welche Tasten bzw. Tastenkombinationen lösen die Aktionen aus)
  • Mouse context (durch welche Maustasten werden welche Aktionen ausgelöst)

Root-Menu

Mit dem Root-Menu wird der Inhalt des Anwendungsmenus konfiguriert, es dient also im wesentlichen dazu Programme zu starten und jwm neu zu starten (Restart) oder zu verlassen (Exit). Es besteht im wesentlichen aus den Tags "Menu", mit denen Gruppen von Programmen gebildet werden können (z.B. Büro, Grafik, Programmierung usw.) und den Tags "Program", die zum Starten der einzelnen Programme dienen. Ein Minibeispiel mit zwei Anwendungsgruppen "Büro" und "Grafik" könnte also so aussehen:

<RootMenu onroot="12" labeled="true" label="START">
 <Menu icon="/usr/share/icons/Adwaita/16x16/categories/applications-office.png" label="Büro">
   <Program icon="/usr/share/icons/hicolor/16x16/apps/libreoffice-startcenter.png" label="LibreOffice">libreoffice </Program>
   <Program icon="/usr/share/icons/hicolor/16x16/apps/libreoffice-base.png" label="LibreOffice Base">libreoffice --base </Program>
   <Program icon="/usr/share/icons/hicolor/16x16/apps/libreoffice-calc.png" label="LibreOffice Calc">libreoffice --calc </Program>
   <Program icon="/usr/share/icons/hicolor/16x16/apps/libreoffice-draw.png" label="LibreOffice Draw">libreoffice --draw </Program>
   <Program icon="/usr/share/icons/hicolor/16x16/apps/libreoffice-writer.png" label="LibreOffice Writer">libreoffice --writer </Program>
   <Program icon="/usr/share/icons/hicolor/scalable/apps/qpdfview.svg" label="qpdfview">qpdfview --unique </Program>
 </Menu>
 <Menu icon="/usr/share/icons/Adwaita/16x16/categories/applications-graphics.png" label="Grafik">
   <Program icon="/usr/share/icons/hicolor/16x16/apps/calibre-viewer.png" label="E-book Viewer">ebook-viewer </Program>
   <Program icon="/usr/share/icons/hicolor/scalable/apps/flameshot.svg" label="Flameshot">flameshot</Program>
   <Program icon="/usr/share/icons/hicolor/16x16/apps/gimp.png" label="GNU Image Manipulation Program">gimp-2.10 </Program>
 </Menu>
</RootMenu>

Das Attribut icon wurde hier immer mit dem vollen Pfad angegeben, praktischer ist es natürlich, die Pfade zu den verwendeten Icons im Abschnitt <IconPath> zu definieren. Dort kann man beliebig viele Pfade angeben, die in dieser Reihenfolge nach dem passenden Icon-Namen durchsucht werden. Das erste gefundene Icon mit dem übereinstimmenden Name wird dann zur Anzeige benutzt. Dabei empfiehlt es sich sogar, die Dateiextension, also .png, .svg usw. wegzulassen. Wer keine Icons mag kann dieses Attribut auch ganz weglassen.

Solch ein Abschnitt <IconPath> könnte also z.B. so aussehen, hier bei Benutzung des Themas Adwaita:

<IconPath>/usr/share/icons/Adwaita/scalable/actions</IconPath>
<IconPath>/usr/share/icons/Adwaita/scalable/apps</IconPath>
<IconPath>/usr/share/icons/Adwaita/scalable/categories</IconPath>
<IconPath>/usr/share/icons/Adwaita/scalable/places</IconPath>
<IconPath>/usr/share/icons/Adwaita/scalable/status</IconPath>
<IconPath>/usr/share/icons/Adwaita/scalable/mimetypes</IconPath>
<IconPath>/usr/share/icons/Adwaita/16x16/apps</IconPath>
<IconPath>/usr/share/icons/Adwaita/16x16/places</IconPath>
<IconPath>/usr/share/icons/hicolor/16x16/apps</IconPath>
<IconPath>/usr/share/icons/hicolor/scalable/apps</IconPath>

Program

Im Tag "Program" könnte man auch das Attribut "label" weglassen. In diesem Fall würde dann der Programmname im Menu angezeigt.

Zusätzlich zu den Attributen "icon" und "label" ist auch ein Attribut "tooltip" möglich, dessen Text beim Überfahren mit der Maus sichtbar wird:

<Program icon="flameshot" tooltip="Screenshotprogramm mit vielen Möglichkeiten" label="Flameshot">flameshot</Program>

Programme müssen nicht zwingend innerhalb der Tags <Menu></Menu> stehen. Für oft verwendete Anwendungen bietet es sich an, sie z.B. ganz am Anfang vor den einzelnen Menugruppen aufzuführen. Wichtig ist nur, dass sie innerhalb des Rootmenus liegen.

<RootMenu onroot="12" labeled="true" label="START">
  <Program icon="utilities-terminal" label="Terminal">terminator</Program>
  <Program icon="web-browser" label="Firefox">firefox</Program>
  <Menu icon="folder" label="Büro">
    <Program icon="/libreoffice-startcenter.png" label="LibreOffice">libreoffice</Program>
    ...
  </Menu>
</RootMenu>

Restart und Exit

Es ist sehr praktisch, zusätzlich zu den Menu und Programm-Punkten zwei Einträge für Restart und Exit einzubauen. Dafür gibt es in jwm die Tags "Restart" und "Exit" mit folgendem Aufbau:

<Restart label="Restart" icon="reload"/>
<Exit label="Exit" confirm="true" icon="application-exit"/>

Die Label, also die Beschriftungen für die Menupunkte, sind frei wählbar, als Default sind "Restart" und "Exit" eingestellt, könnten im Beispiel also auch weggelassen werden.