Fvwm

Z Wikiverzity
Skočit na navigaci Skočit na vyhledávání

fvwm je okenní manager

Podstránky[editovat]

fvwm ve GNOME[editovat]

Nahrazení defaultního manageru Metacity ve GNOME managerem fwvm:

fvwm --replace &

anebo zkráceně

fvwm -r &

defaultní chování[editovat]

Jaké chování má fvwm většinou vestavěné, tj. dané v době kompilace. Viz config.h (význam viz níže):

Key Help R A Popup MenuFvwmRoot
Key F1 R A Popup MenuFvwmRoot
Key Tab A M WindowList Root c c NoDeskSort
Key Escape A MC EscapeFunc
Mouse 1 R A Menu MenuFvwmRoot
Mouse 1 T   A FuncFvwmRaiseLowerX Move
Mouse 1 FS  A FuncFvwmRaiseLowerX Resize
Mouse 2 FST A FuncFvwmRaiseLowerX Move
AddToFunc FuncFvwmRaiseLowerX
+ I Raise
+ M $0
+ D Lower

konfigurace[editovat]

Konfigurační soubor[editovat]

~/.fvwm/config

Speciální znaky: # = komentář * = příkaz pro konfiguraci modulu \ = na konci řádku = prodloužení řádku

Myší akce[editovat]

Mouse tlačítko kde modifikátor co

tlačítko

  • 1 = levé
  • 2 = prostřední
  • 3 = pravé

kde

  • R = Root = root window (tj. pracovní plocha)
  • T = Title = lišta okna
  • I = Icon = ikonizované okno
  • W = Window = vnitřek okna
  • S = Sides = rámeček okna
  • F = = rohy rámečku
  • 1, 3, 5, 7, 9 = tlačítka na okně zleva
  • 2, 4, 6, 8, 0 = tlačítka na okně zprava

modifikátor

  • N = None = žádný
  • C = Ctrl
  • L = CapsLock
  • M = Meta = zpravidla Alt
  • A = Any = jaýkoliv

co

  • funkce, která se vyvolá

Klávesové akce[editovat]

Stejná syntax jako u myší akce

Key klávesa kde modifikátor co

např:

Key F2 R A FvwmConsole  # otevře okno konsole

Odstranění:

Key F2 R A -

FvwmConsole[editovat]

Okno konsole, umožňuje okamžitě vykonávat všechny zadané příkazy. Výborné na zkoušení příkazů.


Styly[editovat]

Style * BorderWidth 7, HandleWidth 7

Nastaví šířku okraje a handlu. Hvězdička znamená, že se to bude týkat všech oken – jinak tam může být uvedeno jméno okna.


Menu[editovat]

AddToMenu MojeMenu
+ "**** Moje menu ****" Title
+ ""                    Nop
+ " X terminál"         Xterm
+ " Opera"              Exec /usr/bin/opera
+ " Další menu"         Popup DalsiMenu
DestroyMenu MenuFvwmWindowOps
AddToMenu   MenuFvwmWindow-Ops
+ "Window Ops" Title
+ "&Move"              Move
+ "&Resize"            Resize
+ "R&aise"             Raise
+ "&Lower"             Lower
+ "(De)&Iconify"       Iconify
+ "(Un)&Stick"         Stick
+ "(Un)Ma&ximize"      Maximize
+ "" Nop
+ "&Close"             Close
+ "&Destroy"           Destroy

Mouse 3 F A Menu MenuFvwmWindow-Ops Nop
Mouse 3 S A Popup MenuFvwmWindow-Ops Nop

Moduly[editovat]

Moduly jsou jakési prográmky, které jsou spouštěny z fvwm.

Module modulename [moduleparams]      # spustí modul
KillModule modulename [modulealias]   # skončí modul


Příklady konfigurací[editovat]

Problémy[editovat]

Meta key[editovat]

Na kombinaci Ctrl-Meta-šipka mám namapovaný přesun na vedlejší pracovní stránku (GotoPage). To mi ale při přechodu na Ubuntu/Lucid a připojení externí USB klávesnice k notebooku najednou přestalo fungovat. V čem je chyba?

Divné také bylo, že při držení Alt a mačkání šipek Up, Down, Right, Left se mi na terminálu psala písmena A, B, C, D. Když to dělám na klávesnici notebooku, je to ale jiné.

Inspiruji se článkem http://www.abclinuxu.cz/clanky/hardware/multimedialni-a-jinak-vylepsene-klavesnice

Zjistím, jaké eventy mi jdou do X-ek:

xev

Tak to vypadá OK, vlevo od mezerníku mám namapované klávesy Control_L, Meta_L, Alt_L

Ale je divné, že u šipek na notebooku mám eventy Prior, Next, Home, End. To vypadá na zapnutý NumLock na notebooku (přes funkční klávesu Fn). Vypnu ho a je to OK.

A kupodivu zjišťuji, že mi pak funguje i přepínání workspace. Tak to by mě tedy nenapadlo! Nastavení NumLocku na klávesnici notebooku mi ovlivní chování připojené USB klávesnice!

Problém jsem řešil skoro celý den, málem jsem si překonfiguroval kvůli tomu celý systém.

Nicméně tento problém se vyskytuje i u běžné PC klávesnice, kde potřebuji mít NumLock zapnutý a přitom mít možnost používat kombinace Ctrl-Meta-šipka na přesun mezi Stránkami (GotoPage).

Zkusím obezličku a přemapovat přesun na vedlejší na klávesy Ctrl+Super_L+šipka. Klávesa Super_L je ta klávesa mezi Ctrl a Alt, často se symbolem Windows. Výše uvedená utilita xev mi to ověří:

KeyPress event, serial 41, synthetic NO, window 0x7e00001,
    root 0x293, subw 0x0, time 8120478, (161,176), root:(207,280),
    state 0x0, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 41, synthetic NO, window 0x7e00001,
    root 0x293, subw 0x0, time 8120782, (161,176), root:(207,280),
    state 0x40, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Teď se podívám, jak mám namapované modifikátory kláves:

xmodmap -help
xmodmap xmodmap -pm
xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock      
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

Super_L má kód 133 = 0x85 a mapuje se na mod4.

Tady čtu, jak se to dělá: Re: FVWM: Using 'Super_L' as a key modifier

Takže zkusím přidat do ~/.fvwm/config řádky:

Key Left   A C4 GotoPage -1p +0p
Key Right  A C4 GotoPage +1p +0p
Key Up     A C4 GotoPage +0p -1p
Key Down   A C4 GotoPage +0p +1p

Bezva, Ctrl+Super_L funguje, jenže zase jen v případě, že není aktivní NumLock. Co s tím?

Hledám: NumLock site:fvwm.org

fvwm: Why do NumLock, CapsLock and ScrollLock interfere with ClickToFocus and/or my mouse bindings? – čtu, že ty všelijaké Locky s tím můžou interferovat. Co s tím?

Co je to za blbou klávesu, ten NumLock?

xev
KeyPress event, serial 41, synthetic NO, window 0x7400001,
    root 0x293, subw 0x0, time 9914420, (151,172), root:(178,238),
    state 0x10, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 41, synthetic NO, window 0x7400001,
    root 0x293, subw 0x0, time 9914988, (151,172), root:(178,238),
    state 0x10, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

keycode 77 = 0x4D

Tady je nějaká obezlička – nechat NumLock MumLockem a přemapovat si číslice na padu rovnou pomocí xmodmap:

 xmodmap -e "keysym KP_Up = KP_8"
 xmodmap -e "keysym KP_Left = KP_4"
# ...

Tedy, dotaženo do konce:

xmodmap -e "keysym KP_Delete = period"
xmodmap -e "keysym KP_Insert = KP_0"
xmodmap -e "keysym KP_End = KP_1"
xmodmap -e "keysym KP_Down = KP_2"
xmodmap -e "keysym KP_Next = KP_3"
xmodmap -e "keysym KP_Left = KP_4"
xmodmap -e "keysym KP_Begin = KP_5"
xmodmap -e "keysym KP_Right = KP_6"
xmodmap -e "keysym KP_Home = KP_7"
xmodmap -e "keysym KP_Up = KP_8"
xmodmap -e "keysym KP_Prior = KP_9"

Obezlička funguje.

Ještě se podívám, co je to vlastně za příkaz clear Lock: stackoverflow: xmodmap clear command

Tak tedy ještě zkusím:

xmodmap -e "clear Lock"

Problémy[editovat]

/Complex Function ERROR

Články[editovat]