Fluxbox Wiki
Anpassen der keys Datei
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:
- Befehle sind case-insensitive, will heissen: Gross- und Kleinschreibung spielt keine Rolle.
- Die Arbeitsflächen beginnen bei "1"
- Für diverse Befehle gibt es Synonyme.
- Der Abstand zwischen der letzten Taste und dem ":" ist zwingend.
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 anPrevWindow/NextWindow
-Parameter sind eine Bitmask:
- 0 oder nicht angegeben = Aktuelles Verhalten - kein Überspringen
- 1 Zwischen Gruppen Umschalten
- 2 Klebende (auf allen Arbeitsflächen) Fenster überspringen
- 4 Aufgerollte Fenster überspringen
- 8 Lineares Umschalten (Immer die selbe Reihenfolge)
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:
- Left, Right
- Upper, UpperLeft, UpperRight
- Lower, LowerLeft, LowerRight
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