Pekwm le guide

Ce guide a pour but de vous accom­pa­gner durant l'installation du ges­tion­naire de fenêtres Pekwm, de sa confi­gu­ra­tion et de son uti­li­sa­tion. De la même manière que mon guide sur Openbox, je vais res­ter le plus géné­ral pos­sible pour que les mani­pu­la­tions fonc­tionnent sur toutes les dis­tri­bu­tions GNU/Linux et *BSD.

Note: Je me base sur la dis­tri­bu­tion Archlinux pour l'installation des paquets (pac­man), vous devez donc adap­ter ces com­mandes à vos ges­tion­naires de paquets (apti­tude, yum...)

Introduction

The Pek Window Manager est écrit par Claes Nästen. Le code est basé sur le ges­tion­naire de fenêtre aewm++, mais le code a vrai­ment évo­lué, si bien qu'aujourd'hui il ne res­semble plus du tout à aewm++. Il pos­sède beau­coup de fonc­tion­na­li­tés, dont le regrou­pe­ment de fenêtres, des pro­prié­tés auto­ma­tiques, xine­rama et des rac­cour­cis cla­viers qui sup­portent les enchaî­ne­ments de touches, et beau­coup plus.

Sources

Installation

Pekwm est dis­po­nible dans le dépôt d'Archlinux

sudo pacman -S pekwm

Il faut main­te­nant mettre en place le démar­rage de Pekwm

Méthode 1: GDM/KDM

Généralement une ses­sion pekwm sera ajou­tée auto­ma­ti­que­ment. Selectionnez pekwm dans le menu. Si jamais la ses­sion n'apparaît pas dans le menu, pas de sou­cis on va la créer :

Dans un fichier /usr/share/xsessions/Pekwm.desktop on ajoute ceci :

[Desktop Entry]
Encoding=UTF-8
Name=PekWM
Comment=Start PekWM
Exec=/usr/bin/pekwm
Icon=
Type=Application

Méthode 2: xinitrc

Dans votre ~/.xinitrc, on démarre pekwm de cette façon :

exec pekwm

Configuration

La pre­mière chose à faire avant de lan­cer Pekwm est de créer nos fichiers de confi­gu­ra­tions dans notre home. Nous allons prendre les fichiers par défaut qui nous ser­vi­rons de base dans notre installation.

mkdir ~/.pekwm
cp /etc/pekwm/* ~/.pekwm/

Les fichiers de confi­gu­ra­tions sont les suivants :

  • ~/.pekwm/config: Concerne la confi­gu­ra­tion propre de pekwm (thème, com­por­te­ment des fenêtres)
  • ~/.pekwm/mouse: Concerne les réglages de la souris
  • ~/.pekwm/keys: Concerne les rac­cour­cis claviers
  • ~/.pekwm/menu: Pour confi­gu­rer le menu du bureau, de la fenêtre
  • ~/.pekwm/vars: Stockage de variables
  • ~/.pekwm/start: Le fichier qui per­met de lan­cer des pro­grammes au démar­rage de pekwm
  • ~/.pekwm/autoproperties: Le fichier le plus inté­res­sant de pekwm :)

Le fichier config

Ce fichier comme expli­qué plus tôt per­met de confi­gu­rer le com­por­te­ment des fenêtres, le nom des bureaux par exemple et diverses options. La confi­gu­ra­tion se fait en plu­sieurs sous-sections:

  • Files { }: les fichiers à utiliser
  • MoveResize { }: la sec­tion per­met­tant de confi­gu­rer le com­por­te­ment des fenêtres lors d'un déplacement/redimensionnement.
  • Menu { }: sec­tion per­met­tant de défi­nir l'utilisation du menu (pas son contenu).
  • CmdDialog { }: cette sec­tion per­met de confi­gu­rer le lan­ceur d'applications.
  • Harbour { }: la sec­tion pour confi­gu­rer harbour.
Files {
    Keys = "~/.pekwm/keys"
    Mouse = "~/.pekwm/mouse"
    Menu = "~/.pekwm/menu"
    Start = "~/.pekwm/start"
    AutoProps = "~/.pekwm/autoproperties"
    Theme = "~/.pekwm/themes/Miro"
}

Je ne vous conseille pas de chan­ger les 5 pre­miers sauf si vous savez ce que vous faites. Au niveau du champ Theme vous devez indi­quer le réper­toire du thème à utiliser.

MoveResize {
    EdgeAttract = "10"
    EdgeResist = "10"
    WindowAttract = "5"
    WindowResist = "5"
    OpaqueMove = "true"
    OpaqueResize = "false"
}

EdgeAttract: cette valeur est la dis­tance (en pixel) à par­tir de laquelle la fenêtre “colle” aux bords.
WindowAttract: même chose par rap­port aux fenêtres.
OpaqueMove: doit-on des­si­ner la fenêtre pen­dant le dépla­ce­ment.
OpaqueResize: doit-on des­si­ner la fenêtre pen­dant le redimensionnement.

Screen {
    Workspaces = "6"
    WorkspacesPerRow = "2"
    WorkspaceNames = "Main;Chat;Music;Web;Games;Code"
    ShowFrameList = "true"
    ShowStatusWindowCenteredOnRoot = "true"
    ShowWorkspaceIndicator = "500"
    ShowClientID = "false"
    FocusNew = "true"
    FocusNewChild = "true"
    PlaceNew = "true"
    FullscreenAbove = "true"
    FullscreenDetect = "true"
    EdgeSize = "18 0 0 0"
    EdgeIndent = "true"
    DoubleClicktime = "200"
    Placement {
    Model = "CenteredOnParent Smart MouseNotUnder"
    Smart {
        Row = "false"
        TopToBottom = "true"
        LeftToRight = "true"
        OffsetX = "100"
        OffsetY = "100"
        }
    }
 
}

Workspace: le nombre de bureaux.
WorkspacesPerRow: le nombre de bureaux par colonne (0 pour mettre en ligne).
ShowFrameList: doit-on affi­cher la liste des fenêtres lorsque l'on navigue parmi elles.
WorkspaceNames: noms des bureaux sépa­rés par ;.
ShowStatusWindowsCenteredOnRoot: si oui les infor­ma­tions de la fenêtre seront au centre du bureau sinon au centre de la fenêtre.
FocusNew: doit-on mettre auto­ma­ti­que­ment en avant une nou­velle fenêtre.
EdgeSize: l'espacement par rap­port aux bords (dans l'ordre haut bas gauche droite).
EdgeIndent: si oui les fenêtres n'iront pas d'elles même dans l'espacement ins­crit dans EdgeSize.
DoubleClickTime: la vitesse de double click en ms.
Placement {: confi­gu­ra­tion du pla­ce­ment des fenêtres, regar­dez la docu­men­ta­tion de pekwm pour plus de détails.

Menu {
    DisplayIcons = "true"
    Icons = "Menu" {
      Minimum = "16x16"
      Maximum = "16x16"
    }
    Select = "Motion"
    Enter = "Motion"
    Exec = "ButtonPress"
}

DisplayIcons: doit-on affi­cher des icônes.
Icons = “Menu”: para­mètres à uti­li­ser pour la sec­tion “Menu” du fichier .pekwm/menu.
Select: com­ment choi­sir un élé­ment du menu.
Enter: com­ment entrer dans un sous-menu.
Exec: com­ment exé­cu­ter un élément.

CmdDialog {
    HistoryUnique = "true"
    HistorySize = "500"
    HistoryFile = "~/.pekwm/history"
    HistorySaveInterval = "16"
}

HistoryUnique: doit-on affi­cher qu'une fois une appli­ca­tion déjà lan­cée plu­sieurs fois.
HistorySize: taille du fichier his­to­rique.
HistoryFile: le fichier his­to­rique à utiliser.

Les fichiers mouse et keys

Ces deux fichiers vont nous per­mettre de défi­nir les rac­cour­cis cla­viers et souris.

les iden­ti­fiants pour mouse

  • 1: click gauche.
  • 2: click du milieu.
  • 3: click droit.
  • 4/5: molette haut/molette bas.

les iden­ti­fiants pour keys

  • Ctrl: touche contrôle.
  • Mod1: touche alt.
  • Mod4: touche super ou windows.

Petit exemple pour la souris :

FrameTitle {
     ButtonRelease = "1" { Actions = "Raise; Focus" }
}

Va faire venir une fenêtre au pre­mier plan en cli­quant sur la barre de titre avec le clic gauche.

Exemple pour les rac­cour­cis clavier :

INCLUDE = "vars"
Global {
  KeyPress = "Mod4 e" { Actions = "Exec $TERMINAL &" }
  KeyPress = "#123" { Actions = "Exec $MIXINC &" }
  KeyPress = "Mod1 Tab" { Actions = "NextFrame EndRaise" }
  Chain = "Mod4 Mod1 M" {
    KeyPress = "P" { Actions = "Exec $PLAY &" }
  }
}

INCLUDE = “vars”: on inclue le fichier vars où on défi­nira cer­taines appli­ca­tions.
KeyPress = ”#123” { Actions = “Exec $MIXINC &” }: sur la pres­sion de la touche 123 iden­ti­fiée par xev on lance $MIXINC défini dans .pekwm/vars.
Chain = “Mod4 Mod1 M” {: le rac­courci Super + Alt + M, à lui seul il donne rien, il faut ensuite rajou­ter une autre touche.
KeyPress = “P” { Actions = “Exec $PLAY &” }: appuyer P après Super + Alt + M lan­cera $PLAY défini dans .pekwm/vars.

Il est pos­sible de lan­cer plu­sieurs pro­grammes à la fois :

KeyPress = "Ctrl Mod1 R" { Actions = "Exec osdctl -s 'Reconfiguring'; Reload" }

Pour une liste com­plète des variables et pro­prié­tés, jet­tez un coup d'oeil à la docu­men­ta­tion.

Le fichier menu

Le paquet archli­nux ins­talle un fichier menu par défaut, qui contient divers rac­cour­cis. On va donc vou­loir chan­ger ça. Deux façon possible :

Menumaker

Ce pro­gramme va géné­rer un menu auto­ma­ti­que­ment avec les pro­grammes que vous avez installé.

mmaker --no-desktop -f pekwm

Regardez les options dis­po­nible avec mma­ker --help. Ce petit pro­gramme peut nous don­ner une bonne base pour pou­voir après édité notre menu à la main

À la main

Comme men­tionné un peu avant, les modi­fi­ca­tions se font dans le fichier ~/.pekwm/menu . La syn­taxe est assez com­pré­hen­sive. Voici une entrée de menu :

Entry = "NAME" { Actions = "Exec COMMAND &" }

Et là un sous-menu pos­sé­dant 2 entrée :

Submenu = "NAME" {
     Entry = "NAME" { Actions = "Exec COMMAND &" }
     Entry = "NAME" { Actions = "Exec COMMAND &" }
}

Un sépa­ra­teur :

Separator {}

Pekwm sup­porte aussi les menus dyna­miques. Ce sont des entrées de menus géné­rées par des scripts. Vous trou­ve­rez un exemple ici pour affi­cher la date et l'heure actuelle.

Le fichier vars

On y met les variables qu'on peut réuti­li­ser ensuite dans les fichiers de confi­gu­ra­tions (il faut bien sur inclure le fichier vars )

$TERM="xterm -fn fixed +sb -bg white -fg black"

Le fichier autoproperties

Nous voilà au fichier le plus com­plexe de pekwm mais aussi le plus puis­sant, avec celui ci vous pour­rez faire en sorte qu'une appli­ca­tion se lance sur tel ou tel bureau, de manière maxi­mi­sée ou bien grou­pée avec d'autres.

Tout d'abord vous devez connaître la valeur WM_CLASS de l'application que vous vou­lez défi­nir. pour cela en ter­mi­nal faites

xprop WM_CLASS

puis cli­quez sur l'application dési­rée, par exemple fire­fox → WM_CLASS(STRING) = “Navigator”, “Firefox”

Maintenant admet­tons que je veuille que fire­fox démarre sur le bureau 4 auto­ma­ti­que­ment au lan­ce­ment je fais ceci:

Property = "Navigator", "Firefox" {
  ApplyOn = "New Start"
  Workspace = "4"
}

Property = “Navigator”, “Firefox” {: la pro­priété visant fire­fox.
ApplyOn = “New Start”: New = quand une nou­velle fenêtre démarre, Start = quand fire­fox se lance.
Workspace = “4”: on dit de lan­cer fire­fox sur le bureau 4.

Il y a beau­coup d'autres méthodes utiles, pour ça je vous conseille d'aller faire un tour sur la docu­men­ta­tion.

Le fichier start

Un fichier assez simple, c'est le même que le autostart.sh d'openbox, donc ren­dez le exe­cu­table (chmod +x) et rem­plis­sez le comme ceci :

#!/bin/sh
pidgin &
firefox &

Conclusion

J'espère qu'avec cet article vous envi­sa­ge­rez au moins d'essayer Pekwm, comme d'habitude vous savez où me contac­ter si vous avez des questions :)



Post comment as twitter logo facebook logo
Sort: Newest | Oldest

En fait j'ai trouvé, désolé pour mes trois messages inutiles. :)

Finalement, tout semble assez bien expliqué sur le site officiel. Je voudrais juste demander au propriétaire de ce blog à quoi correspondent "focused" et "unfocused" dans un fichier de thème.
Merci d'avance. :)

Bonjour. Quelqu'un connaîtrait-il un tutorial qui expliquerait précisément comment créer un thème pour pekwm s'il vous plaît ? Merci d'avance.

@ProfGast: C'est pas grave :)

En fait j'ai trouvé, désolé pour mes trois messages inutiles. :)

Finalement, tout semble assez bien expliqué sur le site officiel. Je voudrais juste demander au propriétaire de ce blog à quoi correspondent "focused" et "unfocused" dans un fichier de thème.
Merci d'avance. :)

Bonjour. Quelqu'un connaîtrait-il un tutorial qui expliquerait précisément comment créer un thème pour pekwm s'il vous plaît ? Merci d'avance.

Ah que du bonheur ce WM !
Installation assez simple.
Me reste juste à configurer le menu, comportement (etc....)
Mais comparé a OpenBox, je n'ai pas trouvé de différence particulière, il reste tout de même assez léger :)
Merci pour le tuto !

A tester tiens :p
Je vous donnerai mes impression ce soir, une fois que j'aurai fini d'installer Arch sur ma nouvelle bécane :p

Génial t'as déjà publié le guide, demain je me penche sur le sujet et on verra bien.

@Jérôme M. Merci pour le theme! Étant un grand fan du theme ALLBLACK, j'aime bien celui là.

@Thom1 : Salut,
Pour certaines parties oui, qui étaient à mon goût bien expliqué. Mais je n'ai pas préféré expliquer toutes les méthodes des fichiers une à une comme sur le wiki, alors que la doc de pekwm est très bien faite et à jour.

Salut,
En fait c'est un copier/coller du wiki de archlinux-fr, n'est-ce pas ?

Finalement je n'aurai pas besoin de ton menu, j'ai déjà configuré le mien a mon goût en m'inspirant du tien.
Merci pour ce guide, je suis officiellement passé à PekWM.
Tu pourra bientôt voir un screenshot de mon bureau sur le forum d'Arch ;) Il ne me reste qu'à trouver un thème d'icône qui va bien avec le thème Dusk.
Merci encore!

Ahh c'est plus clair maintenant! Excellent guide! ;)
J'ai bien aimé ton menu que j'avais pu voir sur un de tes screenshots.
Tu crois que tu pourrais poster ton fichier menu quelque part?
Merci! =)

Trackbacks

  1. [...] Bashrun est un lan­ceur d’applications intel­li­gent que j’utilise sous Openbox et Pekwm. Il est très léger et uti­lise Xterm et bash (ou n’importe quel autre ter­mi­nal, comme par [...]