Fluxbox Wiki

0. Grundlagen

Die keys Datei ist normalerweise ~/.fluxbox/keys. Da sie eine normale Textdatei ist, kann sie mit einem beliebigen Texteditor angepasst werden.

In der Datei ~/.fluxbox/init kann auch eine andere Datei, zum Beispiel eine systemweite, angegeben werden.

Das Zuweisen einer Taste ist ziemlich einfach, ein Eintrag sieht wie folgt aus:

 <mod> [<mod> <mod>] key [key key] :Befehl <Argumente>

Was ist ein Mod <mod>? Das ist die Kurzform für "modifier". Der Befehl xmodmap -pm, in einer Konsole ausgeführt, listet die verfügbaren modifiers auf. Die gängigsten davon sind:

Mod1 == Alt
Mod4 == Windowstaste
Control == Ctrl / Strg (Deutschland) 
Shift == shift

Um die korrekte Bezeichnung einer Taste herauszufinden kann man das Programm xev verwenden, welches einen Tastendruck abfängt und unter anderem die Bezeichnung dieser Taste ausgibt.

Sollte die Taste keine Bezeichnung haben kann auch der jeweilige keycode, den xev ebenfalls ausgibt, verwendet werden.

Hier noch ein paar Beispiele:

Control i :ExecCommand xterm  #CTRL + i startet XTerm
Mod4 4 :Workspace 4  #Windowstaste + 4 schaltet zur 4en Arbeitsfläche
None F12 :ExecCommand firefox  #F12 startet mozilla-firefox
Mod1 113 :exec xterm  #Kleines Beispiel mit einem Keycode anstelle der Bezeichnung

Um Befehle auszuführen wird ExecCommand oder Exec verwendet. So kann man Anwendungen, Skripte (Aufpassen: das Skript muss ausführbar sein und in $PATH liegen) oder Variablen und Optionen setzen.

Wichtig zu wissen:

1. Maustasten

In neuen Fluxbox-Versionen kann man auch den Maustasten Aktionen zuweisen. Im Moment unterscheidet Fluxbox zwischen den Maustasten und zwischen der Mausplatzierung. Bei der Platzierung gibt es OnDesktop (auf dem leeren Desktop, nicht auf einem Fenster) und OnToolbar (ab SVN 1.1).

Beispiele:

OnDesktop Mouse1 :hideMenus
OnDesktop Mouse2 :workspaceMenu
OnDesktop Mouse3 :rootMenu
OnDesktop Mouse4 :nextWorkspace
OnDesktop Mouse5 :prevWorkspace
OnToolbar Mouse4 :nextWorkspace
OnToolbar Mouse5 :prevWorkspace

Wichtig: OnToolbar Mouse<rad> ersetzt ab svn 1.1 das alte Toolbar wheeling

2. Befehlsfolgen (Keychains)

Fluxbox kann mit Befehlsfolgen umgehen, wie man sie z.B. aus EMACS kennt:

Control n Mod1 n :Close  #Ctrl+n Alt+n schliesst das fokussierte Fenster
None F11 F12 :ExecCommand ssh example.com #F11 F12 startet ssh

Achtung bei Befehlsfolgen ohne modifier: "None" darf nur einmal verwendet werden. "None F11 None F12" funktioniert nicht. Man muss wie oben gezeigt "None F11 F12" verwenden.

3. Fluxboxbefehle

Fluxbox selber hat tonnenweise eingebaute Befehle, die einem das Leben einfacher machen. Anstelle von exec <befehl> kann man direkt den Fluxboxbefehl schreiben.

3.1 Window-Manager-Befehle

Restart <argument>   #Startet Fluxbox neu, als Argument kann ein anderer Windowmanager, zu dem umgeschaltet wird, angegeben werden
Quit   #Beendet fluxbox
Exit   #Beendet fluxbox
Reconfigure   #Liest die Konfiguration neu ein
Reload Style   #Lädt den verwendeten Stil neu, wenn eine Datei verändert wurde
SetStyle <argument>   #Schaltet zu dem gewählten Stil um
ExecCommand <argument>   #Führt einen Befehl aus. Siehe Beschreibung oben
Exec <argument>   #Führt einen Befehl aus. Siehe Beschreibung oben

3.2 Befehle für das fokussierte Fenster

Fullscreen   #Schaltet das fokussierte Fenster auf Vollbild, wodurch alle anderen, auch höher gelegene, Fenster überdeckt werden
Minimize   #Minimiert das Fenster, genau wie der _ Knopf im Fenstertitel
MinimizeWindow   #Minimiert das Fenster, genau wie der _ Knopf im Fenstertitel
Iconify   #Minimiert das Fenster, genau wie der _ Knopf im Fenstertitel
Maximize   #Maximiert das Fenster, genau wie der [] Knopf im Fenstertitel
MaximizeWindow   #Maximiert das Fenster, genau wie der [] Knopf im Fenstertitel
MaximizeHorizontal   #Maximiert das Fenster horizontal
MaximizeVertical   #Maximiert das Fenster vertikal
ResizeTo <breite> <höhe>   #Ändert die Fenstergrösse
Resize <delta-breite> <delta-höhe>   #Siehe weiter unten
ResizeHorizontal <delta-breite>   #Siehe weiter unten
ResizeVertical <delta-höhe>   #Siehe weiter unten
MoveTo <x> <y> <Ecke>   #Siehe weiter unten
Move <delta-x> <delta-y>   #Siehe weiter unten
MoveRight <delta-x>  #Siehe weiter unten
MoveLeft <delta-x>   #Siehe weiter unten
MoveUp <delta-y>   #Siehe weiter unten
MoveDown <delta-y>   #Siehe weiter unten
Raise   #Bringt das Fenster in den Vordergrund
RaiseLayer   #Bringt das Fenster eine Ebene nach vorne
Lower   #Bringt das Fenster in den Hintergrund
LowerLayer   #Bringt das Fenster eine Ebene nach hinten
Close   #Schliesst das Fenster, genau wie der X Knopf im Fenstertitel
Shade   #Schliesst das Fenster, genau wie der X Knopf im Fenstertitel
ShadeWindow   #Rollt das Fenster auf/ab, wie der Knopf im Fenstertitel
Stick   #Schaltet den Klebezustand (auf allen Arbeitsflächen sichtbar) ein/aus, wie der Knopf im Fenstertitel
StickWindow   #Schaltet den Klebezustand (auf allen Arbeitsflächen sichtbar) ein/aus, wie der Knopf im Fenstertitel
ToggleDecor  '' #Deaktiviert den Fensterrahmen''
SendToWorkspace <nummer>   #Verschiebt das Fenster auf die angegebene Arbeitsfläche
SendToNextWorkspace <nummer>   #Verschiebt das Fenster auf die Arbeitsfläche + Nummer
SendToPrevWorkspace <nummer>   #Verschiebt das Fenster auf die Arbeitsfläche - Nummer
TakeToWorkspace <nummer>   #Verschiebt das Fenster auf die angegebene Arbeitsfläche und zeigt diese an
TakeToNextWorkspace <nummer>   #Verschiebt das Fenster auf die Arbeitsfläche + Nummer und zeigt diese an
TakeToPrevWorkspace <nummer>   #Verschiebt das Fenster auf die Arbeitsfläche - Nummer und zeigt diese an
KillWindow   #Forciert das Schliessen des Fensters (kill)
NextTab   #Schaltet zum nächsten Reiter (Tab) um
PrevTab   #Schaltet zum vorherigen Reiter (Tab) um
MoveTabLeft   #Verschiebt das Fenster nach links
MoveTabRight   #Verschiebt das Fenster nach rechts
DetachClient   #Löst das Fenster von einer Gruppe
SetHead <int>   #Verschiebt das Fenster auf den angegebenen Bildschirm --> xinerama
FocusUp   #Fokussiert das nördlich liegende Fenster
FocusDown   #Fokussiert das südlich liegende Fenster
FocusLeft   #Fokussiert das westlich liegende Fenster
FocusRight   #Fokussiert das östlich liegende Fenster

3.3 Befehle für die Arbeitsfläche

NextWorkspace   #Schaltet zur nächsten (rechts von der aktuellen) Arbeitsfläche
PrevWorkspace   #Schaltet zur vorherigen (links von der aktuellen) Arbeitsfläche
RightWorkspace <anzahl>   #Schaltet um "anzahl" Arbeitsflächen nach rechts
LeftWorkspace <anzahl>   #Schaltet um "anzahl" Arbeitsflächen nach links
Workspace <n>   #Schaltet zur Arbeitsfläche n
NextWindow <bitmask>   #siehe weiter unten
PrevWindow <bitmask>   #siehe weiter unten
ArrangeWindows   #Ordnet die Fenster nebeneinander an
ShowDesktop   #Minimiert alle Fenster der aktuellen Arbeitsfläche
RootMenu   #Zeigt das Fluxboxmenu (Rechtsklick) an
WorkspaceMenu   #Zeigt das Arbeitsflächenmenu (Mittelklick) an
WindowMenu   #Zeigt das Fenstermenü an
SetWorkspaceName <name>   #Bennennt die aktuelle Arbeitsläche um
Deiconify LastWorkspace   #Zeigt die minimierten Fenster wieder an
Deiconify Last OriginQuiet   #Bennennt die aktuelle Arbeitsläche um
Deiconify All OriginQuiet   #Bennennt die aktuelle Arbeitsläche um

3.4 Spezielle Befehle

MacroCmd   #siehe weiter unten
ReloadStyle   #Der Stil wird neu geladen
BindKey <key><value>: <action>   #Weist eine Taste einem Befehl zu

3.5 Diverses

TakeToWorkspace: Zeigt, im Gegensatz zu "SendToWorkspace" die angegebene Arbeitsfläche nach dem Verschieben des Fensters an
PrevWindow/NextWindow-Parameter sind eine Bitmask:

Beispiel::

Mod1 tab :NextWindow 6

überspringt aufgerollte und klebende Fenster, da 6 = 4 + 2.

Der Deltawert ist die Differenz zwischen dem aktuellen und dem gewünschten Wert. Angenommen ein Fenster ist 100 pixel breit

Mod1 r :ResizeHorizontal 10

würde dann das Fenster auf 110 vergrössern.

Mod1 R :ResizeHorizontal -10

hingegen verkleinert das Fenster um 10, also auf 90 pixel.

Der MoveTo Befehl wird wie folgt verwendet:

:MoveTo [int|*] [int|*] [reference corner]

* bedeutet der aktuelle Wert, reference corner ist die Ecke auf die sich die Angaben beziehen. Folgende sind möglich:

Beispiel:

  :MoveTo 0 * Left     #Das Fenster wird an den linken Rand verschoben

4. MacroCmd Syntax (Multiple Befehle mit einem Tastendruck)

Mod1 r :MacroCmd {command1} {command2} {command3}...

ermöglicht das Ausführen mehrer Befehle nacheinander. Beispiele:

Mod1 u :MacroCmd {Moveto 10 5} {ResizeTo 1260 590}

Die Befehlskette Verschiebt ein Fenster nach oben links und vergrössert es anschliessend.

5. Toggle Command (Umschalten)

Mod1 t :ToggleCmd {command1} {command2}

ermöglicht eine Art Schalter zu erstellen, beim ersten Tastendruck wird command1 ausgeführt, beim zweiten command2.

6. Keymodes

Siehe unbedingt Howto_keymodes