Portál AbcLinuxu, 30. dubna 2025 12:40

~/.pekwm/mouse a ~/.pekwm/keys

31.8.2010 12:29 | Přečteno: 862× | pekwm

pekwm umožňuje přemapovat většinu událostí (events) vytvářených myší a klávesnicí. Podíváme se tomu na zoubek.

~/.pekwm/mouse

Nejdůležitější je pochopit, jak je tento soubor tvořen. Jedná se o spojení "Where" (kde, třeba na pracovní ploše), "Event" (událost, např. stisknutí levého tlačítka myši) a "Actions" (akce, co se má vykonat). Uvedu nejdřív obecný zápis:

# 'Where' může nabývat hodnot: FrameTitle, OtherTitle, Border, ScreenEdge,
# Client, Root, Menu, Other.
/*
   FrameTitle -- titulkový pruh na "řádných" oknech
   OtherTitle -- vlastní pruh programu pekwm
   Border -- rámeček okna. Může mít podsekce:
   Top, Bottom, Left, Right, TopLeft, TopRight, BottomLeft, and BottomRight.
   V těchto podsekcích můžete definovat události a akce obvyklým způsobem.
   ScreenEdge -- okraje obrazovky. Může mít podsekce: Up, Down, Left
   a Right. V těchto podsekcích můžete definovat události a akce jako obvykle.
   Client -- kdekoli uvnitř okna
   Root -- pracovní plocha (Root window, desktop)
   Menu -- na rozličných nabídkách (menu), vyjma jejich titulkového pruhu
   Other -- zahrnuje cokoli, co nemá vlastní sekci
*/
'Where'
{
         # 'Event' může nabývat hondot: ButtonPress, ButtonRelease, DoubleClick,
         # Motion, Enter, Leave, EnterMoving.
         /*
            ButtonPress -- jedno kliknutí
            ButtonRelease -- jedno kliknutí, které se aktivuje,
            jakmile se uvolní odpovídající tlačítko myši.
            DoubleClick -- dvojitý klik
            Motion -- klikání, držení a tažení
            Enter -- definuje chování, když kurzor myši "vstoupí"
            do oblasti definované pomocí 'Where'.
            Leave -- definuje chování, když kurzor myši opustí
            oblast definovou pomocí 'Where'.
            EnterMoving -- definuje chování, když tažené okno "vstoupí"
            do rohu obrazovky. Funguje pouze u rohů obrazovky.
         */
         # Co se týká modifikátorů, tak mod1 = klávesa alt. Mod4 je "windows klávesa".
         # Více o modifikátorech napoví program 'xev'.
	'Event' = "volitelné modifikátory, jako mod1, ctrl aj. a tlačítko myši (jeho číslo)"
         {
		# Akcí je hodně. Budu jim věnovat samostatný zápisek.
                Actions = "akce a jejich parametry"
         }
	'Event' = "volitelné modifikátory, jako mod1, ctrl aj. a tlačítko myši (jeho číslo)"
         {
		Actions = "akce a jejich parametry"
	 }
}

Dále uvádím konkrétní příklad:

# "Root" označuje pracovní plochu (Root window)
Root
{
	# Jednoduché kliknutí pravým tlačítkem myši, které při uvolnění
        # spustí akci "ShowMenu Goto". Toto menu vám zobrazí seznam aktuálně aktivních oken.
        ButtonRelease = "2" { Actions = "ShowMenu Goto" }
        # Jednoduché kliknutí levým tlačítkem myši, při jeho uvolnění
        # se vykoná akce "HideAllMenus", neboli se skryjou všechny nabídky.
	ButtonRelease = "1" { Actions = "HideAllMenus" }
}

~/.pekwm/keys

Obecný zápis:

# 'Section' (sekce) může nabývat hodnot: Global, MoveResize, Menu a InputDialog.
'Section'
{
  # KeyPress = stisknutí tlačítka
  /*
    Klávesy mohou bý identifikovány svým 'XString name' nebo pomocí 'keycode'.
    Obojí lze zjistit programem 'xev'. Pokud chcete použít keycode,
    tak před něj dejte #
  */ 
  KeyPress = "Volitelné modifikátory jako mod1 (neboli alt), ctrl aj. a klávesa."
  {
    Actions = "Akce a parametry akce, pokud jsou potřeba."
    # Samozřejmě lze zadat více akcí najednou, jenom je musíte oddělit středníkem.
    # Příklad: Actions = "Exec xterm; Set Maximized True True; Close"
  }
}

Global: obsahuje obecné akce.

MoveResize: Namapování klávesnice, které se použije, když bude "zavolána" funkce MoveResize.

Menu: Obsahuje klávesy, které se použijí, pokud je "zavolána" akce ShowMenu.

InputDialog: Tato sekce umožňuje vyladit si klávesy dostupné pro řádkovou editaci, jestliže CmDialog okno, které dovoluje uživateli zadat pekwm-akce pro běžící okna, je aktivní.

Příklad
# Myslím, že se jedná o tak jednoduchou záležitost, že není ani třeba výklad.
Menu
{
  KeyPress = "Down" { Actions = "NextItem" }
  KeyPress = "Up" { Actions = "PrevItem" }
  KeyPress = "Left" { Actions = "LeaveSubmenu" }
  KeyPress = "Right" { Actions = "EnterSubmenu" }
  KeyPress = "Return" { Actions = "Select" }
  KeyPress = "Escape" { Actions = "Close" }
}

Keychains

Jedná se o "řetězec kláves" (či posloupnost kláves). Obecný zápis:

# 'Chain' lze vnořovat (viz tento obecný příklad).
Chain = "modifikátory a klávesa"
{
  Chain = "modifikátory a klávesa"
  {
    KeyPress = "modifikátory a klávesa" { Actions = "akce a jejich parametry" }
  }
  Keypress = "modifikátoy a klávesa" { Actions = "akce a jejich parametry" }
}

Konkrétní příklad:

# 
Chain = "Ctrl Mod1 M"
{
	Chain = "M"
        {
		KeyPress = "M" { Actions = "Toggle Maximized True True" }
		KeyPress = "V" { Actions = "Toggle Maximized False True" }
		KeyPress = "H" { Actions = "Toggle Maximized True False" }
	}
         # Ctrl+Alt+M --> M --> M nebo V nebo H
}

Chain = "Ctrl Mod1 A"
{
	KeyPress = "R" { Actions = "ShowMenu Root" }
}
 # Ctrl+Alt+A --> R

Závěr

Příští zápisek budu věnovat akcím (vlastnostem oken). Je jich dost.

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

31.8.2010 12:38 Michal Karas | skóre: 45 | blog: /dev/random
Rozbalit Rozbalit vše Re: ~/.pekwm/mouse a ~/.pekwm/keys
Odpovědět | Sbalit | Link | Blokovat | Admin
Fungují už keychains i na ostatních klávesových mapách než jen na první (nastavené)?
31.8.2010 12:47 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: ~/.pekwm/mouse a ~/.pekwm/keys

Abych se přiznal, tak nevím (nerozumím přesně otázce).

31.8.2010 14:27 Michal Karas | skóre: 45 | blog: /dev/random
Rozbalit Rozbalit vše Re: ~/.pekwm/mouse a ~/.pekwm/keys
Pokud člověk dříve používal nějaké takovéto nastavení:

setxkbmap -option grp:shifts_toggle,grp_led:scroll -variant ,qwerty -layout us,cz

tak PekWM naprosto ignoroval keychains, pokud zrovna byla aktivní česká klávesová mapa.
31.8.2010 15:21 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: ~/.pekwm/mouse a ~/.pekwm/keys

Aha. Já zatím funguju jenom na anglické klávesnici, českou klávesovou mapu jsem zatím nezkoušel. Prostě zatím zkouším možnosti pekwm, seznamuju se s ním.

31.8.2010 16:35 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: ~/.pekwm/mouse a ~/.pekwm/keys
Odpovědět | Sbalit | Link | Blokovat | Admin
V souvislosti s tímhle by se slušelo zmínit užitečný nástroj xmodmap, který umožňuje modifikátory procházet (-pm), měnit (-e), jakož i procházet a měnit keysyms a keycodes atd...
SPD vůbec není proruská
31.8.2010 16:59 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: ~/.pekwm/mouse a ~/.pekwm/keys

OK. Díky za doplnění. Berte všechny moje zápisky o pekwm spíš jako poznámky začátečníka, který si (nejen) pekwm teprve ohmatává.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.