Configuration dwm,wmii,xmonad, et autres tiling WM

[quote=“thuban”]edit : voilà, c’est fait, j’ai un joli .o, et maintenant?[/quote] Si tu as regardé les quelques lignes qui sont sorties de la console ou du terminal à la compilation, tu as pu lire que tu as maintenant un dwm maison dans ton /usr/local/bin/.
Enjoy!

à vrai dire, lorsque je compile, j’ai un .o de créé, mais pas un éxécutable. Lorsque j’essaie de construire le projet, et non le compiler (je le fais dans geany, ce n’est peut-être pas la meilleure façon), j’ai ici des erreurs…

Sinon, j’ai posté sur le site de wmii à propos du redimensionnement des fenêtres, je ne suis pas sûr de bien comprendre la réponse donnée :

code.google.com/p/wmii/issues/detail?id=111

Je ne connais pas geany, j’édite juste mon config.h et lance # make clean install et il y a jamais eu de soucis.

wahou, énorme, ça marche tout seul! Super! En plus, il n’y avait pas vraiment besoin de connaissance en C du tout! Merci beaucoup!

Il n’y a pas de quoi, n’hésite pas à regarder le README, quand il y a des soucis de ce genre :wink: .

merci eol pour ta doc sur xmonad. Elle m’aura bien servi ne serais-ce que pour les codes des touches “à chiffre”, car il faut les changer aussi dans le config.h.

Je poste le mien, si ça peut servir à quelqu’un ensuite. Il faudra aussi que j’aille voir ceux du site officiel, ne serais-ce que pour ajouter des infos sur la barre du haut, ou des programmes au démarrage!

Il y a scrotwm qui est arrivé dans les dépots. Il a l’air vraiment pas mal. Si quelqu’un a testé…

[code]/* See LICENSE file for copyright and license details. */

/* appearance /
static const char font[] = "-
-Zekton--14-------";
static const char normbordercolor[] = “#CCCCCC”;
static const char normbgcolor[] = “#000000”;
static const char normfgcolor[] = “#ffffff”;
static const char selbordercolor[] = “#0066FF”;
static const char selbgcolor[] = “#000000”;
static const char selfgcolor[] = “#ffffff”;
static unsigned int borderpx = 1; /* border pixel of windows /
static unsigned int snap = 32; /
snap pixel /
static Bool showbar = True; /
False means no bar /
static Bool topbar = True; /
False means bottom bar */

/* tagging /
static const char tags[][MAXTAGLEN] = { “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9” };
static unsigned int tagset[] = {1, 1}; /
after start, first tag is selected */

static Rule rules[] = {
/* class instance title tags mask isfloating */
{ “Gimp”, NULL, NULL, 0, True },
{ “MPlayer”, NULL, NULL, 0, True },
};

/* layout(s) /
static float mfact = 0.55; /
factor of master area size [0.05…0.95] /
static Bool resizehints = True; /
False means respect size hints in tiled resizals */

static Layout layouts[] = {
/* symbol arrange function /
{ “[]=”, tile }, /
first entry is default /
{ “><>”, NULL }, /
no layout function means floating behavior */
{ “[M]”, monocle },
};

/* key definitions */
#define MODKEY Mod4Mask
#define TAGKEYS(KEY,TAG)
{ MODKEY, KEY, view, {.ui = 1 << TAG} },
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} },
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} },
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },

/* helper for spawning shell commands in the pre dwm-5.0 fashion /
#define SHCMD(cmd) { .v = (const char
[]){ “/bin/sh”, “-c”, cmd, NULL } }

/* commands */
static const char *dmenucmd[] = { “dmenu_run”, “-fn”, font, “-nb”, normbgcolor, “-nf”, normfgcolor, “-sb”, selbgcolor, “-sf”, selfgcolor, NULL };
static const char *iceweasel[] = { “iceweasel”, NULL };
static const char *termcmd[] = { “urxvt”, NULL };
static const char *icedove[] = { “icedove”, NULL };
static const char *thunar[] = { “thunar”, NULL };
static const char *transmission[] = { “transmission”, NULL };
static const char *pidgin[] = { “pidgin”, NULL };
static const char *sonata[] = { “sonata”, NULL };
static const char *gmplayer[] = { “gmplayer”, NULL };
static const char *sonplus[] = { “amixer”, “set”, “Master”, “2dB+”, “unmute”, NULL };
static const char *sonmoins[] = { “amixer”, “set”, “Master”, “2dB-”, “unmute”, NULL };
static const char *sontoggle[] = { “amixer”, “-q”, “set”, “Master”, “toggle”, NULL };
static const char *veille[] = { “xscreensaver-command”, “-activate”, NULL };
static const char *fondecran[] = { “/home/xavier/sauvegarde/wallpaper.sh”, NULL };
static const char *mpcnext[] = { “mpc”, “next”, NULL };
static const char *mpcprev[] = { “mpc”, “prev”, NULL };
static const char *mpctoggle[] = { “mpc”, “toggle”, NULL };
static const char *scrot[] = { “scrot”, NULL };

static Key keys[] = {
/* modifier key function argument */
{ Mod1Mask, XK_F2, spawn, {.v = dmenucmd } },
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY, XK_Return, zoom, {0} },
{ MODKEY, XK_Tab, view, {0} },
{ MODKEY|Mod1Mask, XK_f, spawn, {.v = iceweasel } },
{ MODKEY|Mod1Mask, XK_m, spawn, {.v = icedove } },
{ MODKEY|Mod1Mask, XK_i, spawn, {.v = pidgin } },
{ MODKEY|Mod1Mask, XK_h, spawn, {.v = thunar } },
{ MODKEY|Mod1Mask, XK_s, spawn, {.v = sonata } },
{ MODKEY|Mod1Mask, XK_v, spawn, {.v = gmplayer } },
{ MODKEY, XK_F8, spawn, {.v = sonplus } },
{ MODKEY, XK_F7, spawn, {.v = sonmoins } },
{ MODKEY, XK_F9, spawn, {.v = sontoggle } },
{ MODKEY|Mod1Mask, XK_t, spawn, {.v = transmission } },
{ MODKEY, XK_F12, spawn, {.v = veille } },
{ MODKEY|Mod1Mask, XK_n, spawn, {.v = fondecran } },
{ MODKEY, XK_Print, spawn, {.v = scrot } },
{ ShiftMask, 0xff53, spawn, {.v = mpcnext } },
{ ShiftMask, 0xff51, spawn, {.v = mpcprev } },
{ ShiftMask, 0xff54, spawn, {.v = mpctoggle } },
{ Mod1Mask, XK_F4, killclient, {0} },
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, 0xe0, tag, {.ui = ~0 } },
TAGKEYS( 0x26, 0)
TAGKEYS( 0xe9, 1)
TAGKEYS( 0x22, 2)
TAGKEYS( 0x27, 3)
TAGKEYS( 0x28, 4)
TAGKEYS( 0x2d, 5)
TAGKEYS( 0xe8, 6)
TAGKEYS( 0x5f, 7)
TAGKEYS( 0xe7, 8)
{ MODKEY|ShiftMask, XK_q, quit, {0} },

};

/* button definitions /
/
click can be a tag number (starting at 0),

  • ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin /
    static Button buttons[] = {
    /
    click event mask button function argument */
    { ClkLtSymbol, 0, Button1, setlayout, {0} },
    { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
    { ClkWinTitle, 0, Button2, zoom, {0} },
    { ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
    { ClkClientWin, MODKEY, Button1, movemouse, {0} },
    { ClkClientWin, MODKEY, Button2, togglefloating, {0} },
    { ClkClientWin, MODKEY, Button3, resizemouse, {0} },
    { ClkTagBar, 0, Button1, view, {0} },
    { ClkTagBar, 0, Button3, toggleview, {0} },
    { ClkTagBar, MODKEY, Button1, tag, {0} },
    { ClkTagBar, MODKEY, Button3, toggletag, {0} },
    };

[/code]

@ thuban, si veux butiner dans ta playlist mpc avec dmenu, va voir ici. :wink:

merci pour le lien. ça a l’air sympa. Cependant, avec mes 6 jours de musique, tout parcourir ne sera peut-être pas pratique. J’essaierais à l’occasion!

ps : que trouves-tu de plus à xmonad comparé à dwm?

[quote=“thuban”]avec mes 6 jours de musique, tout parcourir ne sera peut-être pas pratique.[/quote]Tu connais le principe de dmenu? À moins que tu n’aies donné des titres à peu près similaires à toute ta playlist, il devrait te faire ça tranquillement, il n’est pas forcément fait pour “parcourir” toute ta playlist (quoique…) mais est imbattable quand tu as déjà une petite idée de ce que tu veux écouter.

[quote=“thuban”]ps : que trouves-tu de plus à xmonad comparé à dwm?[/quote]Si je devais comparer dwm à xmonad-core, je ne pourrais pas les départager, ils ont des caractéristiques similaires et j’aime bien les deux, mais la bibliothèque d’extensions d’xmonad me permet de faire des trucs qui me plaisent vraiment, alors je creuse dans cette direction, là par exemple, je suis train de voir comment me faire un prompt pour la playlist, avec autocompletion à la xmonad, c’est à dire, sans même avoir besoin d’appuyer sur tab :smiley:, associé avec le prompt “répertoire par défaut pour le workspace”, ça peut être sympa.

@ thuban, si jamais tu changes d’avis sur xmobar, tu trouveras ici une manière simple d’y afficher le titre lu par mpc.

je viens juste de lire ce petit post justement! :wink: Merci pour ces explications! je me dis que j’utiliserais peut-être xmonad lorsque j’aurais plus de temps pour m’impliquer, et comme tu fais une documentation tout belle en plus!
Cependant, dwm fait vraiment tout ce dont j’ai besoin! c’est vrai que les modules de xmonad font envie, mais je n’ai pas les idées pour l’instant.
Si j’arrive à changer le contenu de la barre de dwm déja, je serais content. Ensuite je me pencherais peut-être plus sur le haskell.
En ce qui concerne dmenu pour mpc, tu le lance normalement, ou bien il y a une commande spéciale pour dire que c’est pour utiliser mpc? Ce lien me sera peut-être utile un de ces jours!

J’ai assigné un raccourci clavier au script de ce post et je le lance avec.

Si dans ton ~/.xsession, avant la ligne dwm tu écris : while true do xsetroot -name "`les différentes commandes` `dont tu souhaites` `voir la sortie dans la barre`" sleep 1 done &
ça devrait marcher.

Si dans ton ~/.xsession, avant la ligne dwm tu écris : while true do xsetroot -name "`les différentes commandes` `dont tu souhaites` `voir la sortie dans la barre`" sleep 1 done &
ça devrait marcher.[/quote]

Beh non ça marche pas. En même temps, xsetroot ne sert pas à définir le fond d’écran? enfin je connais sûrement pas tout!
ma ligne ressemblait à ça :

xsetroot -name "acpi -b date
pour un premier test

et avec " à la fin de la ligne?
relancer la session X bien sûr :wink:

oui, avec le " à la fin ^^. Et j’ai relancé X (étant donné que je démarre avec le startx pour le coup).

Tu penses pas qu’il faudrait renommer le fil?

oui, sûrement!

Je pense plutôt pour la bare de dwm qu’il faut que j’édite les sources. J’ai déja retiré le numéro de version de dwm qu’il m’affichait tout le temps.

Oui, on peut, mais pas avec la version debian de wmii, même pas la Sid!
Il faut pour ça utiliser la dernière version que l’on trouve sur le site de l’auteur (édit: ou n’importe lequel des snapshots d’après le 18/05/2008) et ajouter

Key $MODKEY-Control-$LEFT wmiir xwrite /tag/sel/ctl grow sel sel right -1 Key $MODKEY-Control-$RIGHT wmiir xwrite /tag/sel/ctl grow sel sel right 1 Key $MODKEY-Control-$DOWN wmiir xwrite /tag/sel/ctl grow sel sel down 1 Key $MODKEY-Control-$UP wmiir xwrite /tag/sel/ctl grow sel sel down -1
au wmiirc (pour ceux qui utilise le wmiirc)

C’est ce qui marche chez moi en tout cas.

le snapshot en question, il faut le compiler soi-même, non?

J’ai regardé dans les fichiers de wmii, mais je n’ai pas trouvé ce que je cherchais.
Quelqu’un aurait-il vu quelque part la possibilité de désactiver la bordure de fenêtre avec le titre de celle ci que wmii ajoute à chacune d’entre elle?