avr 03

Après vous avoir fait une brève présentation de WMFS dans un précédent article, voici l’un des premiers « How to » lié à ce tiling manager.

Étant donné que j’utilise WMFS depuis peu, j’ai l’intention de partager mes découvertes concernant celui-ci au fil du temps. Pour faire court, cet article est à considérer comme le premier d’une longue série !

Dans ce premier billet, il sera simplement question d’installer ce gestionnaire de fenêtre et de voir brièvement le fichier de configuration dédié.

En route vers WMFS !

Installation :

Arch Linux :

WMFS est disponible via le dépôt d’utilisateur AUR, celui-ci étant en constante évolution, je vous conseille d’installer la version GIT du paquet :

$ yaourt -S wmfs-git

Ubuntu / Debian :

Des paquets au format .deb pour les architectures 32 et 64 bit sont disponibles, téléchargez tout d’abord le paquet adéquat en vous rendant à l’adresse suivante : http://hramn.icedslash.com/desu/

Installez ensuite le paquet :

# dpkg -i wmfs_*.deb

Merci à engil qui s’occupe de la mise à jour des paquets !

Pour les autres distributions ou par simple curiosité, je vous conseille vivement de vous rendre à la page du wiki dédiée à l’installation de WMFS : http://wmfs.info/projects/wmfs/wiki

Post-installation :

Le fichier de configuration par défaut se situe dans le répertoire : /etc/xdg/wmfs, il sera donc nécessaire de copier celui-ci dans votre /home :

$ mkdir -p ~/.config/wmfs
$ cp /etc/xdg/wmfs/wmfsrc ~/.config/wmfs/wmfsrc

Lancement :

J’ai pour habitude de ne pas utiliser de login manager, il m’a donc suffit de modifier le fichier .xinitrc :

$ nano ~/.xinitrc
#!/bin/sh
 
exec ck-launch-session dbus-launch wmfs

Un simple startx suffit pour lancer la session :

$ startx

Si vous utilisez un gestionnaire de démarrage tel que Slim, GDM ou encore KDM, veuillez vous référer à la documentation adéquate.

Premier contact :

Je vous l’accorde, après le premier lancement on peut qualifier WMFS d’austère… Mais voyons de suite de quoi il se compose :

  • bar : Tableau de bord qui regroupe les fonctionnalités layouts, tags, selbar, launcher, systray et status.
  • Layouts : Nom donné à la mise en page de l’espace de travail.
  • Tags : Espaces de travail, 9 par défaut.
  • Menu : Menu principal de WMFS qui apparaît par défaut via un clic droit.
  • Systray : Zone de notification.
  • Status : Sert à afficher des informations, Conky par exemple.
  • Launcher : Lanceur d’application similaire à Gmrun, la combinaison des touches [ Alt + P ] permet de l’activer.

  • Client : Nom des fenêtres.
  • Titlebar : Barre de « décoration » des fênetres, elle se compose d’un bouton et du titre du client.
  • Selbar : Indique le client qui a le focus, par défaut un clic droit permet d’obtenir la liste de tout les clients.

À présent, voici une liste des principaux raccourcis clavier :

  • Ctrl + Left ] [ Ctrl + Right ] : Passe au tag suivant/précédent.
  • Alt + Tab ] [ Alt + Shift + Tab ] : Passe au client suivant/précédent.
  • [ Alt + Q ] : Quitte le client qui a le focus.
  • [ Alt + P ] : Active le launcher.
  • Alt + space ] : Modifie le type de layout.
  • [ CtrlAlt + R ] : Recharge le fichier de configuration.
  • AltF ] : Active le mode flottant sur la fenêtre qui a le focus.
  • Alt + L ], [ AltH ] : Modifie la taille de la fenêtre en position master.

Bien évidement WMFS vous permet de modifier, d’ajouter ou encore de supprimer des raccourcis clavier.

Configuration :

La configuration de WMFS s’articule autour d’un unique fichier nommé wmfsrc que voici :

#
# This is the default wmfs config file, copy it to
# ~/.config/wmfs/wmfsrc and edit it.
#
 
# Include file to split configuration
# @include "~/.config/wmfs/menu-wmfsrc"
 
[misc]
        font                  = "dejavu-10"
        raisefocus            = true
        raiseswitch           = false
        focus_follow_mouse    = true
        focus_follow_movement = false
        opacity               = 255
 
        # focus_pointer_click: click on unfocused client area:
        # true  -- default, set focus
        # false -- click go to client; including dockapps
        focus_pointer_click = true
        status_timing      = 1     #seconds
        # status_path       = "~/.config/wmfs/status.sh"
[/misc]
 
[bar]
        bg     = "#191919"
        fg     = "#D4D4D4"
        border = true
        #height = "-1"
 
        light_shade =  0.10
        dark_shade  = -0.10
 
        [systray]
                # Enable/disable systray
                active = true
 
                # Screen of systray
                screen = 0
 
                # Spacing between tray icons
                spacing = 3
        [/systray]
 
        # Remove this section to disable the selbar.
        [selbar]
                bg = "#191919"
                fg = "#D4D4ff"
 
                # Cut title length
                # max_length = 25
 
                [mouse] button = "3" func = "clientlist"  [/mouse]
                [mouse] button = "4" func = "client_next" [/mouse]
                [mouse] button = "5" func = "client_prev" [/mouse]
        [/selbar]
 
[/bar]
 
[layouts]
        fg = "#191919"
        bg = "#7E89A2"
 
        # Border around the layout button.
        border = true
 
        # Value menu or switch.
        system = "menu"
 
        # Value left or right.
        placement = "right"
 
        # Keep layout geo for free layout
        keep_layout_geo = false
 
        # Symbol displayed for the selected layout in the list
        selected_layout_symbol = "*"
 
        # Width of layout button
        # layout_button_width = x
 
        # Tiling layouts.
        [layout] type = "tile_right"         symbol = "RIGHT"    [/layout]
        [layout] type = "tile_left"          symbol = "LEFT"     [/layout]
        [layout] type = "tile_top"           symbol = "TOP"      [/layout]
        [layout] type = "tile_bottom"        symbol = "BOTTOM"   [/layout]
        [layout] type = "tile_grid"          symbol = "GRID_H"   [/layout]
        [layout] type = "tile_grid_vertical" symbol = "GRID_V"   [/layout]
        [layout] type = "mirror_vertical"    symbol = "MIRROR_V" [/layout]
        [layout] type = "mirror_horizontal"  symbol = "MIRROR_H" [/layout]
 
        # Other layouts.
        [layout] type = "max"   symbol = "MAX"  [/layout]
        [layout] type = "free"  symbol = "FREE" [/layout]
 
[/layouts]
 
[tags]
        [default_tag]
             name             = "new tag"
             mwfact           = 0.5
             nmaster          = 1
             layout           = "tile_right"
             resizehint       = false
             infobar_position = "top"
        [/default_tag]
 
        # whether client_next on the last tag will send you on the first
        # and client_prev on the first tag will send you on the last one
        tag_round      = false
 
        # Going twice on the same tag will bring you back on the previous one
        tag_auto_prev  = true
 
        occupied_bg    = "#003366"
        occupied_fg    = "#D4D4D4"
        sel_fg         = "#191919"
        sel_bg         = "#7E89A2"
        urgent_bg      = "#DD1111"
        urgent_fg      = "#000000"
 
        # If true, number of the tag will be used for name
        name_count     = false
        #default_name   = "new tag" # deprecated, use [default_tag] instead
        #default_layout = "tile_right" # deprecated, use [default_tag] instead
 
        # Border around the tag buttons.
        border      = true
 
        # Hide empty tags in tag list
        autohide    = false
 
        # Mouse buttons action on tag.
        mouse_button_tag_sel       = "1"
        mouse_button_tag_transfert = "2"
        mouse_button_tag_add       = "3"
        mouse_button_tag_next      = "4"
        mouse_button_tag_prev      = "5"
 
        [tag]
                name             = "one"
                screen           = 0
                mwfact           = 0.65
                nmaster          = 1
                layout           = "tile_right"
                resizehint       = false
                infobar_position = "top"
                above_fc         = false
                #[mouse] [/mouse] Possible multi mouse section
        [/tag]
 
        # clients option is *DEPRECATED* but works, see [rules] section
        [tag] name = "two"  clients = {"Browser"} [/tag]
        [tag] name = "three" [/tag]
        [tag] name = "four"  [/tag]
        [tag] name = "five"  [/tag]
        [tag] name = "six"   [/tag]
        [tag] name = "seven" [/tag]
        [tag] name = "eight" [/tag]
        [tag] name = "nine"  [/tag]
[/tags]
 
[root]
       # Command you can execute to set the background.
        background_command = "xsetroot -solid black"
 
        [mouse] button = "4" func = "tag_next"              [/mouse]
        [mouse] button = "5" func = "tag_prev"              [/mouse]
        [mouse] button = "3" func = "menu" cmd = "rootmenu" [/mouse]
[/root]
 
[client]
        client_round         = true
        client_auto_center   = false
        border_height        = 3
        border_shadow        = true
        border_normal        = "#191919"
        border_focus         = "#003366"
        place_at_mouse       = false
        resize_corner_normal = "#191919"
        resize_corner_focus  = "#003366"
        set_new_win_master   = true
        client_tile_raise    = false
        new_client_get_mouse = false
 
        # send all client that have no tag rule in this default tag
        #default_open_tag     = 4
        # same as above but for the screen
        #default_open_screen  = 1
 
        # Space between tiled clients
        padding = 0
 
        # Modifier for mouse use
        modifier = "Alt"
 
        light_shade =  0.10
        dark_shade  = -0.10
 
        # *DEPRECATED* but works, see [rules] section
        # Set automatic free or max client
        # autofree = "xterm|MPlayer"
        # automax  = "Navigator"
 
        [mouse] button = "1" func = "client_raise" [/mouse]
        [mouse] button = "1" func = "mouse_move"   [/mouse]
        [mouse] button = "3" func = "client_raise" [/mouse]
        [mouse] button = "3" func = "mouse_resize" [/mouse]
 
        # Remove this section to delete the titlebar.
        [titlebar]
                stipple   = false
                height    = 12
                fg_normal = "#7E89A2"
                fg_focus  = "#9F9AB3"
 
                [mouse] button = "1" func = "client_raise" [/mouse]
                [mouse] button = "1" func = "mouse_move"   [/mouse]
                [mouse] button = "3" func = "client_raise" [/mouse]
                [mouse] button = "3" func = "mouse_resize" [/mouse]
 
                [button]
                        # Available "free", "max", "tile" flags or button.
                        flags = "free,max,tile"
                        [mouse] button = "1" func = "client_kill"             [/mouse]
                        [mouse] button = "3" func = "menu" cmd = "clientmenu" [/mouse]
 
                        [line] coord = {1, 1, 4, 1} [/line]
                        [line] coord = {1, 1, 1, 4} [/line]
                        [line] coord = {1, 4, 4, 4} [/line]
                [/button]
        [/titlebar]
[/client]
 
[rules]
       # Example of rule for MPlayer
       [rule]
               instance      = "xv"       # First part of WM_CLASS
               class         = "MPlayer"  # Seconf part of WM_CLASS, not needed if first part is correct
               # role        = ""         # WM_WINDOW_ROLE
               screen        = 0          # Screen to use
               tag           = 2          # Tag number of apps
               free          = true       # Set automatic free client
               max           = false      # Set automatic maximized client
               follow_client = false      # follow the client
               ignore_tags   = false      # ignore tag (free mode)
               follow_client = false      # if the client open in an other tag/screen, follow it.
       [/rule]
[/rules]
 
[menu]
        # Default menu, binded on the root window, button 3.
        [set_menu]
                name = "rootmenu"
 
                # place_at_mouse = false
                # x = 40 y = 50
 
                # Available "center", "left", "right" menu align. Default: "center".
                align = "left"
 
                fg_focus  = "#191919" bg_focus  = "#7E89A2"
                fg_normal = "#9F9AB3" bg_normal = "#191919"
 
                [item] name = "Terminal"        func = "spawn" cmd = "urxvt || xterm || gnome-terminal" [/item]
                [item] name = "Applications" submenu = "appmenu"                   [/item]
                [item] name = "Next tag"        func = "tag_next"                  [/item]
                [item] name = "Previous tag"    func = "tag_prev"                  [/item]
                [item] name = "Next layout"     func = "layout_next"               [/item]
                [item] name = "Previous layout" func = "layout_prev"               [/item]
                [item] name = "Toggle infobar"  func = "toggle_infobar_position"   [/item]
                [item] name = "Quit WMFS"       func = "quit"                      [/item]
        [/set_menu]
 
        [set_menu]
                name = "appmenu"
                align = "left"
 
                fg_focus  = "#191919" bg_focus  = "#7E89A2"
                fg_normal = "#9F9AB3" bg_normal = "#191919"
 
                [item] name = "Browser"         func = "spawn" cmd = "firefox"     [/item]
                [item] name = "Calculator"      func = "spawn" cmd = "xcalc"       [/item]
        [/set_menu]
 
        [set_menu]
                name = "clientmenu"
 
                fg_focus  = "#D4D4D4" bg_focus  = "#003366"
                fg_normal = "#D4D4D4" bg_normal = "#191919"
 
                # Check items: possible 'check_max' or 'check_free'.
                [item] name = "Close"    func = "client_kill"                      [/item]
                [item] name = "Maximize" func = "toggle_max"  check = "check_max"  [/item]
                [item] name = "Free"     func = "toggle_free" check = "check_free" [/item]
        [/set_menu]
[/menu]
 
[launcher]
        [set_launcher]
                # Limit size of the launcher window (px)
                width_limit = 300
 
                name = "launcher_exec"
                prompt = "Exec: "
                command = "exec"
        [/set_launcher]
 
        #ViWMFS : manage wmfs with vi-based command.
        [set_launcher]
                name = "viwmfs"
                prompt = "> "
                command = "wmfs -V"
        [/set_launcher]
[/launcher]
 
[keys]
         # Reload the configuration of wmfs.
        [key] mod = {"Alt", "Control"} key = "r" func = "reload" [/key]
 
        # Open a terminal.
        [key] mod = {"Control"} key = "Return" func = "spawn" cmd = "xterm" [/key]
 
        # Kill the selected client.
        [key] mod = {"Alt"} key = "q" func = "client_kill" [/key]
 
        # Quit wmfs.
        [key] mod = {"Control", "Alt", "Shift"} key = "q" func = "quit" [/key]
 
        # Swap current client with the next.
        [key] mod = {"Alt"} key = "t" func = "client_swap_next" [/key]
 
        # Swap current client with the previous.
        [key] mod = {"Alt", "Shift"} key = "t" func = "client_swap_prev" [/key]
 
        # Toggle maximum the selected client
        [key] mod = {"Alt"} key = "m" func = "toggle_max" [/key]
 
        # Toggle free the selected client.
        [key] mod = {"Alt"} key = "f" func = "toggle_free" [/key]
 
        # Toggle the position of the infobar.
        [key] mod = {"Alt"} key = "b" func = "toggle_infobar_position" [/key]
        [key] mod = {"Alt", "Shift"} key = "b" func = "toggle_infobar_display" [/key]
 
        # Toggle the resizehint of the current tag/screen
        [key] mod = {"Shift", "Control"} key = "r" func = "toggle_resizehint" [/key]
 
        # Toggle the tag_autohide mode
        [key] mod = {"Shift", "Control"} key = "t" func = "toggle_tagautohide" [/key]
 
        # Select the next client.
        [key] mod = {"Alt"} key = "Tab" func = "client_next" [/key]
 
        # Select the previous client.
        [key] mod = {"Alt","Shift"} key = "Tab" func = "client_prev" [/key]
 
        # Select the next tag.
        [key] mod = {"Control"} key = "Right" func = "tag_next" [/key]
 
        # Select the previous tag.
        [key] mod = {"Control"} key = "Left" func = "tag_prev" [/key]
 
        # Select the next visible tag.
        [key] mod = {"Control","Alt"} key = "Right" func = "tag_next_visible" [/key]
 
        # Select the previous visible tag.
        [key] mod = {"Control","Alt"} key = "Left" func = "tag_prev_visible" [/key]
 
        # Set the next layout.
        [key] mod = {"Alt"} key = "space" func = "layout_next" [/key]
 
        # Set the previous layout.
        [key] mod = {"Alt", "Shift"} key = "space" func = "layout_prev" [/key]
 
        # Increase mwfact.
        [key] mod = {"Alt"} key = "l" func = "set_mwfact" cmd = "+0.025" [/key]
 
        # Decrease mwfact.
        [key] mod = {"Alt"} key = "h" func = "set_mwfact" cmd = "-0.025" [/key]
 
        # Increase nmaster.
        [key] mod = {"Alt"} key = "d" func = "set_nmaster" cmd = "+1" [/key]
 
        # Decease nmaster.
        [key] mod = {"Alt", "Shift"} key = "d" func = "set_nmaster" cmd = "-1" [/key]
 
        #Launcher.
        [key] mod = {"Alt"} key = "p" func = "launcher" cmd = "launcher_exec" [/key]
 
        #ViWMFS
        [key] mod = {"Alt"} key = "Escape" func = "launcher" cmd = "viwmfs" [/key]
 
        # Set the tag x.
        [key] mod = {"Alt"} key = "F1" func = "tag" cmd = "1" [/key]
        [key] mod = {"Alt"} key = "F2" func = "tag" cmd = "2" [/key]
        [key] mod = {"Alt"} key = "F3" func = "tag" cmd = "3" [/key]
        [key] mod = {"Alt"} key = "F4" func = "tag" cmd = "4" [/key]
        [key] mod = {"Alt"} key = "F5" func = "tag" cmd = "5" [/key]
        [key] mod = {"Alt"} key = "F6" func = "tag" cmd = "6" [/key]
        [key] mod = {"Alt"} key = "F7" func = "tag" cmd = "7" [/key]
        [key] mod = {"Alt"} key = "F8" func = "tag" cmd = "8" [/key]
        [key] mod = {"Alt"} key = "F9" func = "tag" cmd = "9" [/key]
 
        # Transfert selected client to x.
        [key] mod = {"Alt", "Shift"} key = "F1" func = "tag_transfert" cmd ="1" [/key]
        [key] mod = {"Alt", "Shift"} key = "F2" func = "tag_transfert" cmd ="2" [/key]
        [key] mod = {"Alt", "Shift"} key = "F3" func = "tag_transfert" cmd ="3" [/key]
        [key] mod = {"Alt", "Shift"} key = "F4" func = "tag_transfert" cmd ="4" [/key]
        [key] mod = {"Alt", "Shift"} key = "F5" func = "tag_transfert" cmd ="5" [/key]
        [key] mod = {"Alt", "Shift"} key = "F6" func = "tag_transfert" cmd ="6" [/key]
        [key] mod = {"Alt", "Shift"} key = "F7" func = "tag_transfert" cmd ="7" [/key]
        [key] mod = {"Alt", "Shift"} key = "F8" func = "tag_transfert" cmd ="8" [/key]
        [key] mod = {"Alt", "Shift"} key = "F9" func = "tag_transfert" cmd ="9" [/key]
 
        # Toggle additional tags (x) on the current tag
        [key] mod = {"Alt", "Super"} key = "F1" func = "tag_toggle_additional" cmd ="1" [/key]
        [key] mod = {"Alt", "Super"} key = "F2" func = "tag_toggle_additional" cmd ="2" [/key]
        [key] mod = {"Alt", "Super"} key = "F3" func = "tag_toggle_additional" cmd ="3" [/key]
        [key] mod = {"Alt", "Super"} key = "F4" func = "tag_toggle_additional" cmd ="4" [/key]
        [key] mod = {"Alt", "Super"} key = "F5" func = "tag_toggle_additional" cmd ="5" [/key]
        [key] mod = {"Alt", "Super"} key = "F6" func = "tag_toggle_additional" cmd ="6" [/key]
        [key] mod = {"Alt", "Super"} key = "F7" func = "tag_toggle_additional" cmd ="7" [/key]
        [key] mod = {"Alt", "Super"} key = "F8" func = "tag_toggle_additional" cmd ="8" [/key]
        [key] mod = {"Alt", "Super"} key = "F9" func = "tag_toggle_additional" cmd ="9" [/key]
 
        # change screen
        [key] mod = {"Super"} key = "Tab" func = "screen_next" [/key]
        [key] mod = {"Super", "Shift"} key = "Tab" func = "screen_prev" [/key]
 
        # swap client in the next/prev screen
        [key] mod = {"Super", "Shift"} key = "a" func = "client_screen_next" [/key]
        [key] mod = {"Super", "Shift"} key = "z" func = "client_screen_prev" [/key]
 
        # unlisted fonctions that can be used in [key] func = ""
        # client_focus_{right, left, top, bottom}
        # client_ignore_tag # Toggle the client in ignore_tag (display the client on all tags)
        # tag_prev_sel # go back to the previous selected tag
        # tag_transfert_{next, prev}
        # tag_urgent # go to the urgent tag
        # tag_swap_{next, prev} # swap tag with the previous/next one
        # tag_last # go to the last tag
        # tag_stay_last # toggle the current tag as the last one
        # toggle_abovefc
        # screen_prev_sel # go to the previous screen selected
        # set_layout # set layout. need to be called with cmd = ""
        # ignore_next_client_rules # ignore the rule the next time a rule is called
[/keys]

Comme vous pouvez le voir, celui-ci est parsemé de petits commentaires qui vous aideront à mieux le comprendre.  On peut facilement diviser ce fichier en plusieurs catégories :

  • misc : Configuration générale de WMFS.
  • bar : Cette section permet de modifier tout ce qui est en rapport avec le tableau de bord : Systray, selbar, etc …
  • layouts : Section concernant les divers layouts disponibles.
  • tags : C’est ici que l’on configure les tags : Nombres, noms, fonctions, tout ou presque peut être modifié.
  • root : Vous allez pouvoir indiquer dans cette section un fichier à lancer automatiquement. Pratique si vous voulez lancer un script similaire à l’autostart.sh d’OpenBox.
  • client : Section qui permet de modifier entre autre l’apparence et le comportement des clients.
  • rules : Cette section sert à établir des règles, exemple Mplayer s’ouvrira toujours sur le tag 2 et sera en mode « free ».
  • menu : On y configure ici tout les menus.
  • launcher : Section qui permet de modifier le ou les launcher(s).
  • keys : Section concernant les raccourcis clavier.

WMFS à donc l’avantage de proposer un fichier de configuration unique, ce qui est une bonne chose quand on démarre avec un tiling manager. Cependant, il est difficile de s’y retrouver quand on a configuré plusieurs menus et tout ses raccourcis clavier : Le fichier devient de plus en plus long et par la même occasion, il devient de plus en plus pénible à éditer !

Afin de supprimer ce désagrément, il est possible de diviser en plusieurs parties le fichier wmfsrc. Comme vu précédemment, celui-ci se compose de nombreuses catégories, il suffit donc d’attribuer un fichier de configuration à chaque catégories.

Tout d’abord, créez le répertoire qui accueillera tout les fichiers de configuration :

$ mkdir -p ~/.config/wmfs/conf.d

On va y mettre par exemple le fichier keys qui contiendra la section [keys] de notre wmfsrc:

$ touch ~/.config/wmfs/conf.d/keys
$ nano ~/.config/wmfs/conf.d/keys
[keys]
 
#Vos raccourcis clavier
 
[key] mod = {"Super","Alt"} key = "space" func = "menu" cmd = "rootmenu" [/key]
 
[/keys]

Pour finir, il suffit d’appeler ce fichier dans votre wmfsrc :

$ nano ~/.config/wmfs/wmfsrc

Ajoutez la ligne suivante au début du fichier :

@include "~/.config/wmfs/conf.d/keys"

On peut donc très bien avoir un fichier wmfsrc qui ressemble à ça :

@include "~/.config/wmfs/conf.d/misc"
@include "~/.config/wmfs/conf.d/bar"
@include "~/.config/wmfs/conf.d/layouts"
@include "~/.config/wmfs/conf.d/rules"
@include "~/.config/wmfs/conf.d/tags"
@include "~/.config/wmfs/conf.d/root"
@include "~/.config/wmfs/conf.d/client"
@include "~/.config/wmfs/conf.d/menu"
@include "~/.config/wmfs/conf.d/launcher"
@include "~/.config/wmfs/conf.d/keys"

La configuration de WMFS est une tâche relativement aisée mais qui prend pas mal de temps… Je vous conseille d’abuser du raccourci clavier [ CtrlAltR ] afin de recharger WMFS, cela vous évitera de trop chercher dans le cas d’une mauvaise manipulation !

Pour finir cet article, voici une petite capture d’écran de mon poste de travail ( qui est loin d’être fini ) :

Amusez vous bien et à bientôt pour un autre « how to » concernant WMFS !

Liens :

Dans la même catégorie :

écrit par David Lopes Ferreira

24 commentaires à “WMFS, acte I : Installation”

  1. jpec Dit:

    Excellent article !
    Il m’a donné envie d’essayer ce WM en possible remplacement de DWM (systray intégrée & menu graphique sont les points forts par rapport à DWM).
    :-)

  2. David Lopes Ferreira Dit:

    @ jpec : Le menu de base est uniquement en texte mais comme on peut le voir sur la capture d’écran il est possible d’y joindre des icônes ! D’ailleurs il est possible de mettre des images là où on veut avec WMFS. Merci pour ton commentaire !

  3. WMFS, acte II : Lancement d’applications à l’ouverture d’une session » UbunBloX Dit:

    [...] WMFS, acte I : Installation [...]

  4. WMFS, acte III : Les raccourcis claviers » UbunBloX Dit:

    [...] de votre wmfsrc ou le cas échéant dans le fichier keys passé en @include ( voir ici pour de plus amples informations [...]

  5. jb Dit:

    Bonjour,
    Et effectivement article plaisant et me rappelle un peu fluxbox.
    En comparaison a fluxbox est-il vraiment plus intéressant ?

    Merci

  6. David Lopes Ferreira Dit:

    @jb : Je ne connais que très peu Fluxbox, il est donc impossible pour moi de comparer ces deux WM. Je pense que seul ton expérience pourra répondre à ta question, essaie WMFS tout simplement ;)

  7. WMFS, acte IV : La statusbar » UbunBloX Dit:

    [...] WMFS, acte I : Installation [...]

  8. khaled Dit:

    c bein

  9. Radek411 Dit:

    Ce WMFS me plait bien ! Je vais l’essayer dès maintenant. En tout cas, merci pour cette série de HowTo, qui est bien utile :-)

  10. Distag Dit:

    Chez moi, wmfs ignore mon fichier dans .config/wmfs/ …

  11. David Lopes Ferreira Dit:

    @Distag : Avec de plus amples informations ce serait peut être mieux pour t’aider non ?

  12. Distag Dit:

    Effectivement, j’aurais pu mettre plus d’informations …

    J’ai un archlinux 32bits.

    J’ai fais :
    [code]
    $ yaourt -S wmfs-git
    $ mkdir -p ~/.config/wmfs
    $ cp /etc/xdg/wmfs/wmfsrc ~/.config/wmfs/wmfsrc
    $ echo "exec ck-launch-session dbus-launch wmfs" > ~/.xinitrc
    [/code]
    Le wm marche.
    Mais lorsque je veux le personnaliser :
    wmfs ignore mon fichier de configuration .config/wmfs/wmfsrc
    Il ne prend en compte que celui de /etc/xdg/wmfs/wmfsrc
    [code]
    $ cat .config/wmfs/wmfsrc
    #
    # ~/.config/wmfs/wmfsrc
    #
    @include "~/.config/wmfs/misc"
    @include "~/.config/wmfs/bar"
    @include "~/.config/wmfs/layouts"
    @include "~/.config/wmfs/rules"
    @include "~/.config/wmfs/tags"
    @include "~/.config/wmfs/root"
    @include "~/.config/wmfs/client"
    @include "~/.config/wmfs/menu"
    @include "~/.config/wmfs/launcher"
    @include "~/.config/wmfs/keys"

    $ ls -l .config/wmfs/
    total 48
    -rw-r--r-- 1 distag distag 840 16 avril 18:42 bar
    -rw-r--r-- 1 distag distag 2275 16 avril 17:33 client
    -rw-r--r-- 1 distag distag 5528 16 avril 18:26 keys
    -rw-r--r-- 1 distag distag 267 16 avril 18:25 launcher
    -rw-r--r-- 1 distag distag 1264 16 avril 17:32 layouts
    -rw-r--r-- 1 distag distag 2159 16 avril 17:34 menu
    -rw-r--r-- 1 distag distag 541 16 avril 17:32 misc
    -rw-r--r-- 1 distag distag 404 16 avril 18:27 root
    -rw-r--r-- 1 distag distag 709 16 avril 17:33 rules
    -rw-r--r-- 1 distag distag 2291 16 avril 18:29 tags
    -r--r--r-- 1 distag distag 348 16 avril 18:29 wmfsrc
    [/code]
    J’ai aussi bien découpé .config/wmfs/wmfsrc comme il faut dans les fichiers ci-dessus !

  13. David Lopes Ferreira Dit:

    @Distag : Si il ne prend pas en compte ta config c’est qu’il y a une erreur dans les de tes fichiers de configurations. Pour le départ je te conseille de ne travailler que sur un seul fichier, ça sera bcp plus simple surtout en cas d’erreur… Ne bosse que sur wmfsrc au début, tu le découpera quand tu en sentira le besoin

  14. Distag Dit:

    J’ai refait un :
    cp /etc/xdg/wmfs/wmfsrc ~/.config/wmfs/wmfsrc
    je l’ai modifié directement et cela marche.

    Mais il reste a savoir pourquoi cela ne marche pas quand le fichier est découpée ?

  15. David Lopes Ferreira Dit:

    @Distag : teste @include « ~/.config/wmfs/misc » → @include « $HOME/.config/wmfs/misc »

  16. Intégrer CutMyUrl au launcher de WMFS » UbunBloX Dit:

    [...] WMFS, acte I : Installation [...]

  17. Paille Dit:

    Bonjour,

    J’utilise depuis pas mal de temps le wm : wmii
    Par contre la gestion du wi-fi est un peu galère (si l’on change souvent de réseau)
    Wmfs est-il plus simple a ce niveau ?

    (bon, même si ce n’est pas le cas, j’ai bien envie de tester….)

  18. David Lopes Ferreira Dit:

    @Paille : Concrètement je ne vois pas le rapport entre un wm et la gestion du wifi… Que tu choisis OpenBox, Wmfs ou autres ça ne changera rien à la gestion de ton wi-fi ! Je peux te conseiller wifi-select qui est un bon gestionnaire de connexion… Sinon il y a aussi wifi-select ;) Bon courage !

  19. paille Dit:

    Oui effectivement ma question était plutôt :
    il y a t-il un utilitaire wi-fi qui s’intègre bien à wmfs ?

    J’ai testé Wicd qui ne m’a pas convaincu….
    Je ne connais pas wifi-select, je vais voir ça.
    Merci :)

  20. Erufu Dit:

    Très bon tuto qui m’a donné envie de tester wmfs ;)

    Juste une question : comment peux-t-on changer le theme, genre le gris dans les fenêtre n’ayant pas de thème ?

    Merci :D

  21. ZoR3oL Dit:

    Bon article, envie de voir autre chose, donc à tester !

  22. Rémitaines : Installer le tilling manager WMFS sur Lubuntu. Dit:

    [...] Acte I : Installation [...]

  23. WMFS et Frugalware : Que du bonheur ! » UbunBloX Dit:

    [...] WMFS, acte I : Installation Partager cet article : Recommend on Facebook Buzz it up Share on netvibes Share on identica Share on technorati Tumblr it Tweet about it Subscribe to the comments on this post Bookmark in Browser Tell a friend Comme prévu, j'ai installé depuis peu le gestionnaire de fenêtres WMFS sur Frugalware. Pour dire vrai, mon court passage avec Gnome 3 n'était que pure curiosité… Même si il vrai que celui-ci est relativement agréable à utiliser au quotidien et que la version 3.2 apporte bon nombre de nouveautés, je n'ai pas songé un seul … [...]

  24. Lothar Dit:

    il n’y a pas de souris ?

Laisser une Réponse