Howto anpassen der keys file

From Fluxbox-wiki

Jump to: navigation, search

Contents


Anpassen der keys Datei

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.

Maustasten

In neuen Fluxboxversionen kann man auch den Maustasten Aktionen zuweisen. Im Moment unterscheidet Fluxbox zwischen den Maustasten und zwischen der Mausplatzierung. Bei der Platzierunng 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

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.

Fluxboxbefehle

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


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


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 <number>   #Verschiebt das Fenster auf die Arbeitsfläche - Nummer
  TakeToWorkspace <number>   #Verschiebt das Fenster auf die angegebene Arbeitsfläche und zeigt diese an
  TakeToNextWorkspace <number>   #Verschiebt das Fenster auf die Arbeitsfläche + Nummer und zeigt diese an
  TakeToPrevWorkspace <number>   #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
  

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


Spezielle Befehle

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


Diverses

  • TakeToWorkspace: Zeigt, im Gegensatz zu "SendToWorkspace" die angegebene Arbeitsfläche

nach dem Verschieben des Fensters an

  • PrevWindow/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

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.

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.

Keymodes

Siehe unbedingt Howto_keymodes

Personal tools
Google AdSense