SelfLinux Grafische Oberflächen Motif Window Manager (mwm) Abschnitt 4 | SelfLinux-0.13.0

| Motif Window Manager (mwm) | Autor Formatierung GPL

#### 4 Konfiguration

Sollte in der Datei .mwmrc etwas verändert worden sein, muss mwm neu gestartet werden. Nach Änderungen in der Datei .Xdefaults ist vor einem Neustart das Kommando xrdb .Xdefaults einzugeben.

#### 4.1 .mwmrc

In dieser Datei befinden sich die Konfigurationen sämtlicher Menüs.

- Root Menu Description: Hier werden sämtliche Anwendermenüs beschrieben
- f.title: Titelzeile
- f.exec: Ausführen von Funktionen
- f.separator: Trennstrich im Menü
- Default Window Menu: Hier wird das Fenstermenü beschrieben. (Klick auf das linke kleine Quadrat)
- Default Key Bindings: Der Fenster-Manager kann auch über die Tastatur bedient werden, z.B. `ALT+``SHIFT+``ESC` bzw. `ALT+``ESC` schalten das Fenster in den Vorder- bzw. Hintergrund.
- Button Binding Description(s): Hier werden die Kombinationen von Maustasten, CTRL-, ALT- und SHIFT-Taste sowie der Doppelklick eingerichtet.

     !!
    !! Root Menu Description
    !!
    Menu RootMenu1
    {
     "Root Menu1"            f.title
     "New Window"            f.exec "xterm -geometry -10-10 -sl
    500 -sb -ls &"
     "Firefox"               f.exec "firefox"
      no-label               f.separator
      no-label               f.separator
      no-label               f.separator
     "Shuffle Up"            f.circle_up
     "Shuffle Down"          f.circle_down
     "Refresh"               f.refresh
     "Pack Icons"            f.pack_icons
     "Toggle Behavior..."    f.set_behavior
      no-label               f.separator
     "Restart..."            f.restart
     !"Quit..."              f.quit_mwm
    }
    [...]
    Menu RootMenu3d
    {
     "Root Menu3d"                   f.title
    }
    !!
    !! Default Window Menu
    !!
    Menu DefaultWindowMenu
    {
            Restore         _R      Alt<Key>F5      f.restore
            Move            _M      Alt<Key>F7      f.move
            Size            _S      Alt<Key>F8      f.resize
            Minimize        _n      Alt<Key>F9      f.minimize
            Maximize        _x      Alt<Key>F10     f.maximize
            Raise           _L      Alt<Key>F2      f.raise
            Lower           _L      Alt<Key>F3      f.lower
            no-label                                f.separator
            Close           _C      Alt<Key>F4      f.kill
    }
    !!
    !! Default Key Bindings
    !!
    Keys DefaultKeyBindings
    {
            Shift<Key>Escape        window|icon
    f.post_wmenu
            Alt<Key>space           window|icon
    f.post_wmenu
            Alt<Key>Tab             root|icon|window
    f.next_key
            Alt Shift<Key>Tab       root|icon|window
    f.prev_key
            Alt<Key>Escape          root|icon|window
    f.circle_down
            Alt Shift<Key>Escape    root|icon|window
    f.circle_up
            Alt Shift Ctrl<Key>exclam root|icon|window
    f.set_behavior
            Alt<Key>F6              window
    f.next_key transient
            Alt Shift<Key>F6        window
    f.prev_key transient
            Shift<Key>F10           icon
    f.post_wmenu
            Alt Shift<Key>Delete    root|icon|window
    f.restart ""
    }
    !!
    !! Button Binding Description(s)
    !!
    !! These can be used anywhere
    !!
    Buttons DefaultButtonBindings
    {
            <Btn1Down>       icon|frame  f.raise
            <Btn1Click2>     root        f.menu RootMenu1d
            <Btn1Down>       root        f.menu RootMenu1
            Shift<Btn1Down>  root        f.menu RootMenu1s
            Ctrl<Btn1Down>   root        f.menu RootMenu1c
            Alt<Btn1Down>    root        f.menu RootMenu1a
            <Btn2Click2>     root        f.menu RootMenu2d
            <Btn2Down>       root        f.menu RootMenu2
            Shift<Btn2Down>  root        f.menu RootMenu2s
            Ctrl<Btn2Down>   root        f.menu RootMenu2c
            Alt<Btn2Down>    root        f.menu RootMenu2a
            <Btn3Down>       icon|frame  f.post_wmenu
            <Btn3Click2>     root        f.menu RootMenu3d
            <Btn3Down>       root        f.menu RootMenu3
            Shift<Btn3Down>  root        f.menu RootMenu3s
            Ctrl<Btn3Down>   root        f.menu RootMenu3c
            Alt<Btn3Down>    root        f.menu RootMenu3a
    }

#### 4.2 .xinitrc

In dieser Datei befinden sich sämtliche Kommandos, die beim Start des Fenster-Managers ausgeführt werden.

Zunächst werden xclock und xosview gestartet. Danach werden zwei minimierte xterm-Fenster eröffnet und das Hintergrundbild eingerichtet. Die wichtigen Zeichen | / \ { [ ] } und @ sind nur sehr umständlich über ALTGR bzw. SHIFT zu erreichen. Daher wurden diese Zeichen auf die Funktionstasten F1 bis F9 gelegt. Falls die Funktionstasten in irgendeinem Programm benötigt werden, müssen diese Zeilen in .xinitrc deaktiviert werden. Danach werden auch noch die eigentlich überflüssigen Windows-Tasten einer sinnvollen Verwendung zugeführt. Zu guter letzt wird noch der numerische Tastaturblock belegt, welcher standardmäßig unter Linux nicht belegt ist.

     [...]
    #
    # Add your own lines here...
    #
    xclock -geometry 150x150-20+1 -update 1 -fg white -bg blue \
    -hd magenta -title `date +"%a__%d.%m.%y"` &
    xosview +net +disk -name AUSWERT -title XOSVIEW -geometry -
    40+420 &
    /usr/X11R6/bin/xload -geometry 100x100-20-1 -update 1 -fg
    yellow -bg magenta &
    xterm -sb -sl 300 -bg white -name oben -iconic -ls -geometry
    +50+30 &
    xterm -sb -sl 300 -bg white -name unten -iconic -ls -
    geometry +400+400 &
    display -window root 1024-stream12.jpg
    # Belegung der Funktionstasten
    # F1:|, F2:/, F3:\, F5:{, F6:[, F7:], F8:}, F9:@
    xmodmap -e "keycode 67 = bar"
    xmodmap -e "keycode 68 = slash"
    xmodmap -e "keycode 69 = backslash"
    xmodmap -e "keycode 71 = braceleft"
    xmodmap -e "keycode 72 = bracketleft"
    xmodmap -e "keycode 73 = bracketright"
    xmodmap -e "keycode 74 = braceright"
    xmodmap -e "keycode 75 = at"
    # Belegung der Microsoft-Windowstasten
    # linke Taste:> , mittlere Taste:_ , rechte Taste:$
    xmodmap -e "keycode 115 = greater"
    xmodmap -e "keycode 116 = underscore"
    xmodmap -e "keycode 117 = dollar"
    # Belegung des numerischen Tastenblocks
    xmodmap -e "keycode 87 = 1"
    xmodmap -e "keycode 88 = 2"
    xmodmap -e "keycode 89 = 3"
    xmodmap -e "keycode 83 = 4"
    xmodmap -e "keycode 84 = 5"
    xmodmap -e "keycode 85 = 6"
    xmodmap -e "keycode 79 = 7"
    xmodmap -e "keycode 80 = 8"
    xmodmap -e "keycode 81 = 9"
    xmodmap -e "keycode 90 = 0"
    xmodmap -e "keycode 91 = period"
    [...]

#### 4.3 .Xdefaults

In dieser Datei befinden sich sämtliche Voreinstellungen z. B. Fensterfarben, Fenstergrößen, Menüfarben. Der Eintrag:

Mwm*AUSWERT*iconImage: auswert.xpm

stellt für die Funktion:

xosview +net +disk -name AUSWERT -title XOSVIEW -geometry - 40+420 &

mit dem Namen AUSWERT das Iconbild auswert.xpm zur Verfügung.

Xosview-Auswertung

Hier ein Beispiel für die Datei .Xdefaults, das ein Aussehen von mwm wie in den Abbildungen bewirkt.

     [...]

    Mwm*UseIconBox:                 true
    Mwm*iconBoxGeometry:            10x1+1-1
    Mwm*interactivePlacement: false
    Mwm*iconPlacement:  bottom left
    ! Mwm*passSelectButton:  false
    Mwm*keyboardFocusPolicy: pointer
    Mwm*resizeBorderWidth: 10

    Mwm*menu*fontList:  10x20
    Mwm*menu*foreground:  yellow
    Mwm*menu*background:  navyblue

    Mwm*menu*RootMenu1*foreground:  yellow
    Mwm*menu*RootMenu1*background:  mediumblue
    Mwm*menu*RootMenu1d*foreground:  mediumblue
    Mwm*menu*RootMenu1d*background:  yellow
    Mwm*menu*RootMenu1s*foreground:  red
    Mwm*menu*RootMenu1s*background:  green
    Mwm*menu*RootMenu1c*foreground:  magenta
    Mwm*menu*RootMenu1c*background:  yellow
    Mwm*menu*RootMenu1a*foreground:  mediumblue
    Mwm*menu*RootMenu1a*background:  pinkyellow
    Mwm*menu*RootMenu2*foreground:  yellow
    Mwm*menu*RootMenu2*background:  mediumblue
    Mwm*menu*RootMenu2d*foreground:  mediumblue
    Mwm*menu*RootMenu2d*background:  yellow
    Mwm*menu*RootMenu2s*foreground:  orange
    Mwm*menu*RootMenu2s*background:  brown
    Mwm*menu*RootMenu2c*foreground:  black
    Mwm*menu*RootMenu2c*background:  white
    Mwm*menu*RootMenu2a*foreground:  green
    Mwm*menu*RootMenu2a*background:  orange
    Mwm*menu*RootMenu3*fontList: lucidasans-bold-24
    Mwm*menu*RootMenu3*foreground:  yellow
    Mwm*menu*RootMenu3*background:  mediumblue
    Mwm*menu*RootMenu3d*foreground:  mediumblue
    Mwm*menu*RootMenu3d*background:  yellow
    Mwm*menu*RootMenu3s*foreground:  magenta
    Mwm*menu*RootMenu3s*background:  blue
    Mwm*menu*RootMenu3c*foreground:  green
    Mwm*menu*RootMenu3c*background:  brown
    Mwm*menu*RootMenu3a*foreground:  orange
    Mwm*menu*RootMenu3a*background:  blue

    Mwm*AUSWERT*iconImage:           auswert.xpm
    Mwm*xterm*iconImageBackground:   brown
    Mwm*xterm*iconImageForeground:   green
    Mwm*xclock*iconImageBackground:  blue
    Mwm*xclock*iconImageForeground:  red
    Mwm*xload*iconImageBackground:   magenta
    Mwm*xload*iconImageForeground:   yellow
    Mwm*iconDecoration:              label image
    Mwm*background:  forestgreen
    Mwm*foreground:  maroon
    Mwm*activeBackground:  turquoise
    Mwm*activeForeground:  orangered
    Mwm*wMenuButtonClick2:         True
    Mwm*doubleClickTime: 1000
    [...]

#### 4.4 Sonstiges

Es lassen sich anstelle von Texten auch kleine Bitmap-Grafiken in die Menüs einfügen.

Menü mit Bitmapgrafik

Hierzu ist die folgende Änderung in .mwmrc vorzunehmen:

     Menu RootMenu3
    {
     "Root Menu3"           f.title
     @xskat.xbm             f.exec "xskat"
    }

Weiterhin lassen sich auch Untermenüs erzeugen.

Untermenüs

In .mwmrc ist hierzu folgende Eintragung notwendig:

     Menu RootMenu1s
    {
     "Root Menu 1s"          f.title
     "Root Menu 1s1"         f.menu RootMenu1s1
    }
    Menu RootMenu1s1
    {
     "Root Menu 1s1"         f.title
     @xskat.xbm              f.exec "xskat"
    }