Le wmfsrc

Ce billet à pour but d'aider les nouveaux sous wmfs avec le fichier de conf principal.

Bien qu'un des avantages de wmfs est son fichier de configuration facilement compréhensible et un fichier de conf' de base complet, je pense que ce billet pourra en aider plus d'un.

Tout d'abord voici le fichier en entier :
http://bacardi55.org/config/wmfsrc.html
(vous pourrez télécharger le fichier ici : http://bacardi55.org/config/wmfs/wmfsrc et même toute ma conf là : http://bacardi55.org/config/wmfs/).

Avant ça, les notions de base :

un client : un client est ce qu'on appellerait dans un WM floatant (opposé à mozaïque ou tile) une fenêtre.
un tag : assimilé aux bureaux dans les WM floatant
layout : Le type de mozaïque. Ce choix est celui qui placera vos fenêtres dans telle ou telle position. Il existe plusieurs layout automatique.
=> Un tag a un layout qui définit le positionnement de ses clients

Le client master est la fenêtre principal du tag. Celle qui prendra la place la plus importante sur la page. Il peut y avoir plusieurs master qui se partagent la place définie pour le master sur chaque tag (vous comprendrez en lisant et en utilisant ^^)

Voyons les différentes parties de ce fichier :

misc

Des infos de configurations :
font : la police d'écriture
raisefocus
focus_follow_mouse : si le focus suis la souris
status_timing : le temps en seconde entre chaque chargement du status.sh (0 = chargement unique). Le status.sh sera abordé dans un autre billet.

bar

La bar d'information de wmfs. On trouvera la liste des bureaux dedans, le bouton/menu de layout et l'infobar où les infos du status.sh seront affichées.
En outre, la partie [selbar]...[/selbar] permet d'afficher la fenêtre sélectionnée dans l'infobar et même de pouvoir changer avec la souris.

layouts

La définition de tous les layouts que vous pourrez utiliser.
Les layouts disponibles sont :

  • right : les fenêtres s'empilent sur la droite et le master est à gauche
  • left : l'inverse du précédent
  • top Les fenêtre s'empilent au dessus du ou des clients master
  • bottom : l'inverse du précédent
  • grid : les clients s'arrangent de manière à former une grille
  • mirror_horizontal : Les clients s'empilent au dessus et en dessous du client master
  • mirror_vertical : Les clients s'empilent à droite et à gauche du client master
  • free : Tous les clients sont libres (se rapproche du floating WM)
  • max : tous le clients sont affichés au maximum (prennent tout l'écran)
  • manuel : Les fenêtres sont placées manuellement (nécessite des keys supplémentaires)

Le mieux pour comprendre ces différents layout est de les essayer et de trouver ceux qui vous correspondent le mieux.

Les layouts déclarés dans cette partie du fichier de conf sont les seuls utilisables dans la partie tag et les seulent qui apparaitront dans la liste de l'infobar et les seuls utilisables.

tags

Les tags sont les bureaux, vous pouvez en mettre à souhait.
Un tag se déclare comme ceci :

[tag]
    name = "Nom du tag"
    client = {"firefox"}
    screen = 1
    mwfact = 0.35
    nmaster = 2
    layout = "tile_left"
    resizehint = false
    infobar_position = "top"
[/tag]


Seul name est obligatoire.
client permet de dire à wmfs de toujours ouvrir le client portant ce nom (en gros toujours ouvrir firefox dans ce tag).
screen permet de dire sur quel écran placé ce tag (les écran commencent à 0).
mwfact est la taille du client master
nmaster est le nombre de client master
layout est le layout appliqué à ce tag
infobar_position est la position de l'infobar : peut être top, bottom ou none

En outre, dans [tags] on peut déclarer les couleurs comme à chaque fois (tout se configure dis donc : les tags occupés, le tag selectionnés, les autres).
tag_round permet d'indiquer si après le dernier tag vous revenez au premier (true) ou si vous rester au dernier (false)

root

Cette section sert à déclarer "background_command", une commande exécutée au démarrage. Je l'utilise uniquement pour faire un nitrogen --restore.
On y déclare aussi les boutons de la souris lorsque vous les utiliser sur un tag vide (par exemple la roulette de la souris me permet de passer d'un tag à un autre et le bouton droit m'affiche un menu déclarer dans [menu]

client

Cette section configure les clients (ou fenêtre).
on y déclare les bordures (couleurs, épaisseurs) la présence ou non d'une bar de titre [titlebar]...[titlebar] (supprimer cette section pour ne pas en avoir).
Le modifier permet de dire sur quel touche appuyer pour modifier (déplacer, redimensionner,...) un client.
et les [mouse]...[/mouse] indiquent les actions de la souris sur le client

menu
Menu est la section ou est déclaré le menu qui apparait lors d'un clique droit (ou ce que vous avez conf pour [mouse] button = "3" func = "menu" cmd = "rootmenu" [/mouse] dans [root]) sur un tag vide (rootmenu) ou sur une titlebar (clientmenu).

launcher

Les launcher sont des "pré-commandes". Le plus utile est le launcher_exec qui permet de lancer depuis la statusbar une commande

keys

Cette partie contient simplement tous les raccourcis clavier de wmfs. Je n'irais pas plus loin dans cette partie car il n'y a rien à comprendre.
Une astuce rapide toute de même : Si vous voulez faire une action qui combine de fonction sur un même raccourcis clavier, c'est possible, il suffit simplement de mettre deux fois le même raccourcis pour deux actions.
Exemple :
Les fonctions pour déplacer un client sur le tag 1 est func = tag_transfer et cmd = 1. Pour aller sur le tag 1, il faut faire func = tag et cmd = 1.
Si vous voulez deplacer un client sur le tag 1 et aller sur le tag en même temps (en gros suivre la fenêtre déplacée) :

[key] mod = {"Control", "Shift"} key = "ampersand" func = "tag_toggle_additional" cmd ="1" [/key]
[key] mod = {"Control", "Shift"} key = "eacute" func = "tag_toggle_additional" cmd ="2" [/key]

Comments

Vu que wmfs.info est down, je

Vu que wmfs.info est down, je voudrais juste connaître la syntaxe dans wmfsrc quand on déclare plusieurs clients dans un même tag ??

Il faut juste les séparer par

Il faut juste les séparer par des virgules :)

clients = {'Browser', 'gimp'}

Et voilà, c'est lu! Merci

Et voilà, c'est lu!
Merci beaucoup, j'en ai appris beaucoup sur ce fichier. J'y allais vraiment à l'arrache avant!

De rien, c'est le but de ce

De rien, c'est le but de ce billet, tant mieux si ça aide des gens ;)

L'idéal ce serait d'inclure

L'idéal ce serait d'inclure ce billet dans le wiki, parce que là, le fichier est forcément très peu lu par les utilisateurs de wmfs.

Le problème est que le wiki

Le problème est que le wiki est en anglais.
A la limite faudrait que je traduise ce billet en anglais et le mette sur le wiki...

Merci bien, je sens que ton

Merci bien, je sens que ton billet me sera très utile demain ( tout à l'heure en fait ), à tête reposée, quand je serais décidé à configurer wmfsrc pas comme un porc. Je posterai alors un second commentaire. Bonne soirée.

N'hésite pas si tu as des

N'hésite pas si tu as des questions, ici ou sur le chan de wmfs (serveur freenode) :-)