Skip to content

configuration_wmfsrc_fr

arpinux edited this page May 3, 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)"
     #client_free_statusline = ""
     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_bg couleur du fond 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é.
    client_free_statusline sequence de la barre de titre du client libre.
    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]

  # enable/disable tag wrapping navigation
  circular = false

  # Use no screen option or screen = -1 to set tag on each screen
  [tag]
      screen = -1
      name = "1"
      # statusline = ""
  [/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]

circular (dés)active la navigation circulaire entre les tags.
screen écran d’affichage des tags: commenter ou mettre -1 pour afficher les tags sur tous les écrans.
name nom affiché du tag.
statusline affiche une statusline spécifique par tag (peut afficher toutes les séquences).
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]

  # padding between clients (default:0)
  padding = 75

  # Give focus to new created client (default = false)
  autofocus = false

  theme = "default"
  key_modifier = "Super"

  # Focus type:
  #  enter : focus follow mouse (default)
  #  click : click to focus
  #  everything-else : disable mouse focus support
  focus = enter

  [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]

padding distance en pixels entre les clients.
autofocus donne le focus au nouveau client (par défaut: false).
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…)
focus détermine le comportement de la souris: enter, le focus suit la souris – click, clic pour donner le focus – everything-else, désactive la souris pour le focus(le focus se donne grâce aux raccoucis clavier)
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
      tab        = false
      ignore_tag = 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).
tab ouvre le client dans un onglet (true/false).
ignore_tag tag le client avec tous les tags (aka “toujours visible”).

[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]

  [key] mod = {"Super"} key = "minus" func = "tag_del" [/key]
  [key] mod = {"Super", "Shift"} key = "minus" func = "tag_new" [/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]

  # Toggle client ignore_tag
  [key] mod = {"Super","Shift"} key = "f" func = "client_toggle_ignore_tag" [/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 clavier à 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