Skip to content

configuration_wmfsrc_fr

arpinux edited this page Feb 2, 2012 · 17 revisions

configuration de wmfs²

WMFS se configure depuis son fichier principal en mode texte: $XDG_CONFIG_HOME/wmfs/wmfsrc. lors d’une nouvelle installation de wmfs, vous devez copier le fichier par défaut dans votre dossier de configuration (~/.config/wmfs/) depuis le fichier source (géneralement /usr/local/etc/xdg/wmfs/wmfsrc). vous pouvez aussi trouver la dernière version de ce fichier sur le [dépôt git](https://github.com/xorg62/wmfs).
pour modifier votre configuration, il suffit d’éditer ce fichier puis de ralancer wmfs.
cette page reprend et détaille le fichier wmfsrc par sections. pour une liste complète des fonctions uicb, visitez la page dédiée.

include

wmfsrc permet l’inclusion de fichier afin de scinder le fichier principal pour plus de lisibilité.
ex:

# Possible file inclusion:
@include ~/.config/wmfs/wmfs_themes
@include ~/.config/wmfs/wmfs_rules

[themes]

wmfs² intègre la possibilité d’utiliser un ou plusieurs thèmes. cette section configure le(s) thème(s).

# Multi theme section
[themes]

  [theme]
     # No name mean default
     # name = "default"

     font = "fixed"
     # Bars
     bars_width = 14
     bars_fg = "#AABBAA"
     bars_bg = "#223322"

     # Element tags
     tags_normal_fg = "#AABBAA"
     tags_normal_bg = "#223322"
     # tags_normal_statusline = ""
     tags_sel_fg    = "#223322"
     tags_sel_bg    = "#AABBAA"
     # tags_sel_statusline = ""
     tags_occupied_fg = "#AABBAA"
     tags_occupied_bg = "#445544"
     tags_occupied_statusline = "\R[0;0;3;3;#AABBAA]"
     tags_urgent_fg    = "#223322"
     tags_urgent_bg    = "#CC5544"
     # tags_urgent_statusline = ""
     tags_border_color = "#112211"
     tags_border_width = 1

     # Frame / Client
     client_normal_fg = "#AABBAA"
     client_normal_bg = "#223322"
     client_normal_statusline = "\s[3;9;#121212;x] \s[2;8;#ff0000;x](1;client_close)"
     client_sel_fg = "#223322"
     client_sel_bg = "#AABBAA"
     client_sel_statusline = "\s[3;9;#121212;x] \s[2;8;#ff0000;x](1;client_close)"
     frame_bg = "#555555"
     client_titlebar_width = 12
     client_border_width = 1
   [/theme]

[/themes]
  • name nom du thème: sera utiliser dans les sections suivantes.
  • font police du theme, au format XLFD (X Logical Font Description). ex "-*-terminus-medium-*-*-*-12-*-*-*-*-*-*-*"
  • bars
    bars_width hauteur de la barre d’info en pixels.
    bars_fg couleur du texte de la barre d’info.
    bars_bg couleur du fond de la barre d’info.
  • tags
    tags_normal_fg couleur du texte des tags par defaut.
    tags_normal_bg couleur du fond des tags par defaut.
    tags_normal_statusline sequence du tag par defaut.
    tags_sel_fg couleur du texte du tag sélectionné.
    tags_sel_statusline sequence du tag sélectionné.
    tags_occupied_fg couleur du texte des tags occupés.
    tags_occupied_bg couleur du fond des tags occupés.
    tags_occupied_statusline sequence des tags occupés.
    tags_urgent_fg couleur du texte des tags ‘urgents’.
    tags_urgent_bg couleur du fond des tags ‘urgents’.
    tags_urgent_statusline sequence des tags ‘urgents’.
    tags_border_color couleur de la bordure des tags.
    tags_border_width epaisseur de la bordure des tags en pixels.
  • clients
    client_normal_fg couleur du texte de la barre de titre des clients.
    client_normal_bg couleur du fond de la barre de titre des clients.
    client_normal_statusline sequence de la barre de titre des clients.
    client_sel_fg couleur du texte de la barre de titre du client sélectionné.
    client_sel_bg couleur du fond de la barre de titre du client sélectionné.
    client_sel_statusline sequence de la barre de titre du client sélectionné.
    frame_bg couleur de la bordure des clients.
    client_titlebar_width hauteur de la barre de titre en pixels.
    client_border_width épaisseur des bordures des clients.

[bars]

wmfs² permet de créer plusieurs barre d’infos contenant chacune des informations spécifiques et ayant leur propre thème.

[bars]

  # Position:
  #
  # 0  Top
  # 1  Bottom
  # 2  Hide

  # Element type:
  #
  # t  Tags
  # s  Statustext (will take available space)
  # y  Systray (can be set only ONE time among all element)
  # l  Launcher (will be expended at launcher use)

  [bar]
     position = 0
     screen = 0
     elements = "tlsy"   # element order in bar
     theme = "default"
  [/bar]

# [bar]
#    position = 0
#    screen = 1
#    elements = "ts"
#    theme = "default"
# [/bar]

[/bars]

positon placement de la barre sur l’écran. 0:haut, 1:bas, 2:masqué.
screen écran où s’affiche la barre(commence à 0), metrre -1 pour afficher sur tous les écrans.
elements ordre d’affichage des composants de la barre. t:tags, s:statustext, y:systray(ne faire apparaitre qu’une fois), l:launcher.
theme thème utilisé pour la barre. doit correspondre à un thème existant.

[tags]

configuration des tags: nombre, nom, écran d’affichage, actions de la souris sur les boutons des tags.

[tags]

  # Use no screen option or screen = -1 to set tag on each screen
  [tag]
      screen = -1
      name = "1"
  [/tag]

  [tag] name = "2" [/tag]
  [tag] name = "3" [/tag]
  [tag] name = "4" [/tag]
  [tag] name = "5" [/tag]
  [tag] name = "6" [/tag]
  [tag] name = "7" [/tag]

  # Mousebinds associated to Tags element button
  [mouse] button = "1" func = "tag_click" [/mouse]
  [mouse] button = "4" func = "tag_next"  [/mouse]
  [mouse] button = "5" func = "tag_prev"  [/mouse]

[/tags]

screen écran d’affichage des tags: commenter ou mettre -1 pour afficher les tags sur tous les écrans.
name nom affiché du tag.
mousebinds actions de la souris sur les boutons des tags: ici clic-gauche(bouton1) affiche le tag, scrollup(b4) affiche le tag suivant et scrolldown(b5) affiche le tag précédent.

[client]

configuration de l’apparence des clients et de leur comportement.

[client]

  theme = "default"
  key_modifier = "Super"

  [mouse] button = "1" func = "client_focus_click"    [/mouse]
  [mouse] button = "1" func = "mouse_swap"            [/mouse]
  [mouse] button = "2" func = "mouse_tab"             [/mouse]
  [mouse] button = "3" func = "mouse_resize"          [/mouse]
  [mouse] button = "4" func = "client_focus_next_tab" [/mouse]
  [mouse] button = "5" func = "client_focus_prev_tab" [/mouse]

[/client]

theme thème appliqué aux clients par défaut.
key_modifier touche de modification utilisée pour agir sur les clients. (Alt, Super, Control, Shift…)
mousebinds actions de la souris sur les clients. voir la liste des fonctions.

[rules]

les règles scpécifiques appliquées aux clients. pour identifier une application, utiliser xprop.

[rules]

  [rule]
      instance = "chromium"
      # class = ""
      # role   = ""
      # name   = ""
      # theme  = "default"

      tag    = 1  # 2nd tag
      screen = 0

      free       = false
  [/rule]

[/rules]

instance première partie de WM_CLASS.
class seconde partie de WM_CLASS.
role WM_WINDOW_ROLE
name _NET_WM_NAME
theme thème appliqué au client.
tag tag d’affichage du client (commence à 0).
screen écran d’affichage du client.
free le client est en mode libre (true/false).

[launchers]

wmfs² dispose d’un prompt qui supporte l’autocompletion.

[launchers]

  # command can be an uicb function or an uicb function + extension (see example)
  [launcher]
     name = "exec"
     prompt = "Run:"

     # Example of uicb + ext:
     #   command = "spawn xterm -e"
     command = "spawn"

     width = 150
  [/launcher]

[/launchers]

name nom du lanceur. sera utilisé dans la section [keys].
prompt texte affiché au début du lanceur.
command type de commande utilisé par le lanceur. cette commande peut-être de type uicb (spawn) ou uicb + extension afin de créer des lanceurs personnalisés.

[keys]

les racourcis clavier sont définis dans cette section.

[keys]

  [key] mod = {"Super"} key = "Return" func = "spawn" cmd = "urxvt || xterm" [/key]

  [key] mod = {"Control", "Alt"} key = "q" func = "quit" [/key]
  [key] mod = {"Control", "Alt"} key = "r" func = "reload" [/key]

  # Tag manipulation
  [key] mod = {"Super"} key = "F1" func = "tag_set" cmd = "0" [/key]
  [key] mod = {"Super"} key = "F2" func = "tag_set" cmd = "1" [/key]
  [key] mod = {"Super"} key = "F3" func = "tag_set" cmd = "2" [/key]
  [key] mod = {"Super"} key = "F4" func = "tag_set" cmd = "3" [/key]
  [key] mod = {"Super"} key = "F5" func = "tag_set" cmd = "4" [/key]
  [key] mod = {"Super"} key = "F6" func = "tag_set" cmd = "5" [/key]
  [key] mod = {"Super"} key = "F7" func = "tag_set" cmd = "6" [/key]
  [key] mod = {"Super"} key = "F8" func = "tag_set" cmd = "7" [/key]

  [key] mod = {"Super", "Shift"} key = "F1" func = "tag_client" cmd = "0" [/key]
  [key] mod = {"Super", "Shift"} key = "F2" func = "tag_client" cmd = "1" [/key]
  [key] mod = {"Super", "Shift"} key = "F3" func = "tag_client" cmd = "2" [/key]
  [key] mod = {"Super", "Shift"} key = "F4" func = "tag_client" cmd = "3" [/key]
  [key] mod = {"Super", "Shift"} key = "F5" func = "tag_client" cmd = "4" [/key]
  [key] mod = {"Super", "Shift"} key = "F6" func = "tag_client" cmd = "5" [/key]
  [key] mod = {"Super", "Shift"} key = "F7" func = "tag_client" cmd = "6" [/key]
  [key] mod = {"Super", "Shift"} key = "F8" func = "tag_client" cmd = "7" [/key]

  # tag function: cmd = nameofthetag
  #[key] mod = {"Super"} key = "z" func = "tag" cmd = "2" [/key]

  [key] mod = {"Control"} key = "Right" func = "tag_next" [/key]
  [key] mod = {"Control"} key = "Left"  func = "tag_prev" [/key]

  [key] mod = {"Control"} key = "Up"  func = "screen_next" [/key]
  [key] mod = {"Control"} key = "Down" func = "screen_prev" [/key]

  [key] mod = {"Super"} key = "q" func = "client_close" [/key]

  # Focus next / prev client and next / prev tabbed client
  [key] mod = { "Alt" }            key = "Tab" func = "client_focus_next" [/key]
  [key] mod = { "Alt", "Shift" }   key = "Tab" func = "client_focus_prev" [/key]
  [key] mod = { "Super" }          key = "Tab" func = "client_focus_next_tab" [/key]
  [key] mod = { "Super", "Shift" } key = "Tab" func = "client_focus_prev_tab" [/key]

  # Focus next client with direction
  [key] mod = {"Alt"} key = "h" func = "client_focus_left"   [/key]
  [key] mod = {"Alt"} key = "l" func = "client_focus_right"  [/key]
  [key] mod = {"Alt"} key = "k" func = "client_focus_top"    [/key]
  [key] mod = {"Alt"} key = "j" func = "client_focus_bottom" [/key]

  # swap next client with direction:
  [key] mod = {"Control", "Shift"} key = "h" func = "client_swap_left"   [/key]
  [key] mod = {"Control", "Shift"} key = "l" func = "client_swap_right"  [/key]
  [key] mod = {"Control", "Shift"} key = "k" func = "client_swap_top"    [/key]
  [key] mod = {"Control", "Shift"} key = "j" func = "client_swap_bottom" [/key]

  # Resize selected tiled client with direction
  [key] mod = {"Super"} key = "h" func = "client_resize_left"   cmd = "20" [/key]
  [key] mod = {"Super"} key = "l" func = "client_resize_left"   cmd = "-20" [/key]
  [key] mod = {"Super"} key = "k" func = "client_resize_top"    cmd = "20" [/key]
  [key] mod = {"Super"} key = "j" func = "client_resize_top"    cmd = "-20" [/key]
  [key] mod = {"Super", "Control"} key = "h" func = "client_resize_right"  cmd = "-20" [/key]
  [key] mod = {"Super", "Control"} key = "l" func = "client_resize_right"  cmd = "20" [/key]
  [key] mod = {"Super", "Control"} key = "k" func = "client_resize_bottom" cmd = "-20" [/key]
  [key] mod = {"Super", "Control"} key = "j" func = "client_resize_bottom" cmd = "20" [/key]

  # Tabbing command
  [key] mod = {"Alt", "Shift"} key = "h" func = "client_tab_left"   [/key]
  [key] mod = {"Alt", "Shift"} key = "l" func = "client_tab_right"  [/key]
  [key] mod = {"Alt", "Shift"} key = "k" func = "client_tab_top"    [/key]
  [key] mod = {"Alt", "Shift"} key = "j" func = "client_tab_bottom" [/key]
  [key] mod = {"Alt", "Shift"} key = "u" func = "client_untab" [/key]

  # Layout manipulation
  [key] mod = {"Super"}          key = "m" func = "layout_vmirror" [/key]
  [key] mod = {"Super", "Shift"} key = "m" func = "layout_hmirror" [/key]
  [key] mod = {"Super"}          key = "r" func = "layout_rotate_right" [/key]
  [key] mod = {"Super", "Shift"} key = "r" func = "layout_rotate_left" [/key]

  [key] mod = {"Control", "Super", "Alt"} key = "h" func = "layout_integrate_left" [/key]
  [key] mod = {"Control", "Super", "Alt"} key = "j" func = "layout_integrate_bottom" [/key]
  [key] mod = {"Control", "Super", "Alt"} key = "k" func = "layout_integrate_top" [/key]
  [key] mod = {"Control", "Super", "Alt"} key = "l" func = "layout_integrate_right" [/key]

  # Layout set historic travelling function (TESTING)
  [key] mod = {"Super"} key = "o" func = "layout_prev_set" [/key]
  [key] mod = {"Super", "Shift"} key = "o" func = "layout_next_set" [/key]

  # Toggle client free/tile
  [key] mod = {"Super"} key = "f" func = "client_toggle_free" [/key]

  # Launcher
  [key] mod = {"Super"} key = "p" func = "launcher" cmd = "exec" [/key]

[/keys]

la syntaxe de la section [keys]: chaque raccourcis est encadré par [key] … [/key]
mod touche(s) de modification. ex:{"Control", "Alt"}
key touche du claier à presser.
func fonction uicb à lancer.
cmd si func = spawn, détermine la commande externe à lancer. ex:func = "spawn" cmd = "cream-browser"

Clone this wiki locally