Jwm: Unterschied zwischen den Versionen

Aus mxlinuxusers.de
Zur Navigation springen Zur Suche springen
K
Markierung: Durch einen Tor-Ausgangsknoten
(Attribute vom Root-Menu ergänzt)
Markierung: Durch einen Tor-Ausgangsknoten
Zeile 48: Zeile 48:
 
* Mouse context (durch welche Maustasten werden welche Aktionen ausgelöst)
 
* Mouse context (durch welche Maustasten werden welche Aktionen ausgelöst)
 
== Root-Menu ==
 
== 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:
+
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 in der Hauptsache 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">
 
<RootMenu onroot="12" labeled="true" label="START">
 
<Menu icon="/usr/share/icons/Adwaita/16x16/categories/applications-office.png" label="Büro">
 
<Menu icon="/usr/share/icons/Adwaita/16x16/categories/applications-office.png" label="Büro">
Zeile 64: Zeile 64:
 
</Menu>
 
</Menu>
 
</RootMenu>
 
</RootMenu>
  +
Im einleitenden Tag "RootMenu" befinden sich die Attribute "onroot", "labeled" und "label":
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.
 
  +
* '''onroot''' bezeichnet die Maustasten, mit den das Menu erreichbar ist.
  +
** 1 = linke Maustaste
  +
** 2 = mittlere Maustaste
  +
** 3 = rechte Maustaste (Default ist "123", also alle Maustasten)
  +
* '''label''' ein Text, der an der Spitze des Menus angezeigt werden soll (Default = JWM). Dieser Text wird aber nur angezeigt, wenn das Attribut "labeled" auf true gesetzt wird.
  +
* '''labeled''' bestimmt, ob ein Text (Label) an der Spitze des Menus angezeigt werden soll. true bedeutet, dieses Label wird gesetzt (Default = false)
  +
  +
Das Attribut '''"icon"''' kann mit dem vollen Pfad angegeben werden, praktischer ist es natürlich, die Pfade zu den verwendeten Icons im Abschnitt <IconPath> zu definieren. Dort gibt man beliebig viele Pfade an, 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:
 
Solch ein Abschnitt <IconPath> könnte also z.B. so aussehen, hier bei Benutzung des Themas Adwaita:
Zeile 75: Zeile 83:
 
<IconPath>/usr/share/icons/Adwaita/16x16/apps</IconPath>
 
<IconPath>/usr/share/icons/Adwaita/16x16/apps</IconPath>
 
<IconPath>/usr/share/icons/Adwaita/16x16/places</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>
 
<IconPath>/usr/share/icons/hicolor/scalable/apps</IconPath>
  +
  +
Das Root-Menu kann mehrfach angeführt werden, um mehrere Menus zu erhalten, die dann über verschiedene Maustasten erreicht werden:
  +
<RootMenu onroot="1" labeled="true" label="START">
  +
<Program icon="utilities-terminal" label="Terminal">terminator</Program>
  +
<Program icon="flameshot" tooltip="Screenshotprogramm mit vielen Möglichkeiten" label="Flameshot">flameshot</Program>
  +
<Menu icon="folder" label="Anwendungen">
  +
<Program icon="sound" label="Audacious">audacious</Program>
  +
...
  +
</Menu>
  +
</RootMenu>
  +
  +
<RootMenu onroot="3" labeled="true" label="START 2">
  +
<Program icon="edit-find" label="Anwendungsfinder">xfce4-appfinder</Program>
  +
</RootMenu>
  +
In diesem Beispiel erreicht man mit der Maustaste 1 ein umfangreiches Menu und mit der Maustaste 3 erscheint ein kleines Menu, dass lediglich aus dem Anwendungsfinder (xfce4-appfinder) besteht.
 
=== Program ===
 
=== Program ===
 
Im Tag "Program" könnte man auch das Attribut "label" weglassen. In diesem Fall würde dann der Programmname im Menu angezeigt.
 
Im Tag "Program" könnte man auch das Attribut "label" weglassen. In diesem Fall würde dann der Programmname im Menu angezeigt.

Version vom 27. September 2021, 22:30 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 in der Hauptsache 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>

Im einleitenden Tag "RootMenu" befinden sich die Attribute "onroot", "labeled" und "label":

  • onroot bezeichnet die Maustasten, mit den das Menu erreichbar ist.
    • 1 = linke Maustaste
    • 2 = mittlere Maustaste
    • 3 = rechte Maustaste (Default ist "123", also alle Maustasten)
  • label ein Text, der an der Spitze des Menus angezeigt werden soll (Default = JWM). Dieser Text wird aber nur angezeigt, wenn das Attribut "labeled" auf true gesetzt wird.
  • labeled bestimmt, ob ein Text (Label) an der Spitze des Menus angezeigt werden soll. true bedeutet, dieses Label wird gesetzt (Default = false)

Das Attribut "icon" kann mit dem vollen Pfad angegeben werden, praktischer ist es natürlich, die Pfade zu den verwendeten Icons im Abschnitt <IconPath> zu definieren. Dort gibt man beliebig viele Pfade an, 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/scalable/apps</IconPath>

Das Root-Menu kann mehrfach angeführt werden, um mehrere Menus zu erhalten, die dann über verschiedene Maustasten erreicht werden:

<RootMenu onroot="1" labeled="true" label="START">
  <Program icon="utilities-terminal" label="Terminal">terminator</Program>
  <Program icon="flameshot" tooltip="Screenshotprogramm mit vielen Möglichkeiten" label="Flameshot">flameshot</Program>
  <Menu icon="folder" label="Anwendungen">
    <Program icon="sound" label="Audacious">audacious</Program>
      ...
  </Menu>
</RootMenu>
<RootMenu onroot="3" labeled="true" label="START 2">
  <Program icon="edit-find" label="Anwendungsfinder">xfce4-appfinder</Program>
</RootMenu>

In diesem Beispiel erreicht man mit der Maustaste 1 ein umfangreiches Menu und mit der Maustaste 3 erscheint ein kleines Menu, dass lediglich aus dem Anwendungsfinder (xfce4-appfinder) besteht.

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.

Weblinks