[dwm]Problème de raccourcis

Xorg, Compiz, KDE / Gnome / Xfce / Fluxbox / e17 / fvwm ... GDM/KDM/XDM...
Avatar de l’utilisateur
reflets de vert
yeomen
Messages : 295
Inscription : mar. 23 mars 2010, 15:17
Localisation : Strasbourg

[dwm]Problème de raccourcis

Message par reflets de vert »

Salut,

J'aurais dû bloquer la mise à jour de dwm. Du coup une de ses fonctions qui le rendait très rapide ne marche plus! C'est la possibilité de changer facilement de tag (sorte d'équivalent des bureaux virtuels sans être des bureaux virtuels).

Voici ce que me donne les terminaux:

Pour dwm 6.0:

Code : Tout sélectionner

[daniel@vieillerie dwm-6.0]$ make
dwm build options:
CFLAGS   = -std=c99 -pedantic -Wall -Os -I. -I/usr/include -I/usr/X11R6/include -DVERSION="6.0" -DXINERAMA
LDFLAGS  = -s -L/usr/lib -lc -L/usr/X11R6/lib -lX11 -L/usr/X11R6/lib -lXinerama
CC       = cc
[daniel@vieillerie dwm-6.0]$ sudo make clean install
Mot de passe [sudo] de daniel :
cleaning
dwm build options:
CFLAGS   = -std=c99 -pedantic -Wall -Os -I. -I/usr/include -I/usr/X11R6/include -DVERSION="6.0" -DXINERAMA
LDFLAGS  = -s -L/usr/lib -lc -L/usr/X11R6/lib -lX11 -L/usr/X11R6/lib -lXinerama
CC       = cc
CC dwm.c
dwm.c: Dans la fonction ‘keypress’:
dwm.c:1087:2: attention : ‘XKeycodeToKeysym’ is deprecated [-Wdeprecated-declarations]
  keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
  ^
In file included from dwm.c:36:0:
/usr/include/X11/Xlib.h:1687:15: note: declared here
 extern KeySym XKeycodeToKeysym(
               ^
CC -o dwm
installing executable file to /usr/local/bin
installing manual page to /usr/local/share/man/man1
Et pour dwm 6.1, ça donne

Code : Tout sélectionner

[daniel@vieillerie dwm-6.1]$ make
dwm build options:
CFLAGS   = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -I/usr/X11R6/include -I/usr/X11R6/include/freetype2 -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION="6.1" -DXINERAMA
LDFLAGS  = -s -L/usr/X11R6/lib -lX11 -lXinerama -lfontconfig -lXft
CC       = cc
creating config.h from config.def.h
CC drw.c
In file included from /usr/include/stdio.h:27:0,
                 from drw.c:2:
/usr/include/features.h:148:3: attention : #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
 # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
   ^
In file included from drw.c:6:0:
/usr/include/X11/Xft/Xft.h:39:22: erreur fatale: ft2build.h : Aucun fichier ou dossier de ce type
compilation terminée.
Makefile:18 : la recette pour la cible « drw.o » a échouée
make: *** [drw.o] Erreur 1
… et voici mon config.h:

Code : Tout sélectionner

/* See LICENSE file for copyright and license details. */

/* appearance */
static const char font[]            = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
static const char normbordercolor[] = "#444444";
static const char normbgcolor[]     = "#222222";
static const char normfgcolor[]     = "#bbbbbb";
static const char selbordercolor[]  = "#005577";
static const char selbgcolor[]      = "#005577";
static const char selfgcolor[]      = "#eeeeee";
static const unsigned int borderpx  = 1;        /* border pixel of windows */
static const unsigned int snap      = 32;       /* snap pixel */
static const Bool showbar           = True;     /* False means no bar */
static const Bool topbar            = True;     /* False means bottom bar */

/* tagging */
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };

static const Rule rules[] = {
	/* class      instance    title       tags mask     isfloating   monitor */
	{ "Gimp",     NULL,       NULL,       0,            True,        -1 },
	{ "Firefox",  NULL,       NULL,       1 << 8,       False,       -1 },
};

/* layout(s) */
static const float mfact      = 0.55; /* factor of master area size [0.05..0.95] */
static const int nmaster      = 1;    /* number of clients in master area */
static const Bool resizehints = True; /* True means respect size hints in tiled resizals */

static const 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 *termcmd[]  = { "uxterm", NULL };

static Key keys[] = {
	/* modifier                     key        function        argument */
	{ MODKEY,                       XK_p,      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_i,      incnmaster,     {.i = +1 } },
	{ MODKEY,                       XK_d,      incnmaster,     {.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|ShiftMask,             XK_c,      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,             XK_0,      tag,            {.ui = ~0 } },
	{ MODKEY,                       XK_comma,  focusmon,       {.i = -1 } },
	{ MODKEY,                       XK_period, focusmon,       {.i = +1 } },
	{ MODKEY|ShiftMask,             XK_comma,  tagmon,         {.i = -1 } },
	{ MODKEY|ShiftMask,             XK_period, tagmon,         {.i = +1 } },
	TAGKEYS(                        XK_1,                      0)
	TAGKEYS(                        XK_2,                      1)
	TAGKEYS(                        XK_3,                      2)
	TAGKEYS(                        XK_4,                      3)
	TAGKEYS(                        XK_5,                      4)
	TAGKEYS(                        XK_6,                      5)
	TAGKEYS(                        XK_7,                      6)
	TAGKEYS(                        XK_8,                      7)
	TAGKEYS(                        XK_9,                      8)
	{ MODKEY|ShiftMask,             XK_q,      quit,           {0} },
};

/* button definitions */
/* click can be 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} },
};


C'est le truc d'origine, à part Mod4Mask
J'utilise console-tdm, dwm, …
(bon moi aussi j'écris en bépo - même si ça se voit pas)
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [dwm]Problème de raccourcis

Message par bobo »

J'ai jeté un œil à dwm 6.1 quand c'est sorti dans les dépôts. J'ai trouvé une solution pour tous les patches que j'utilise. Mais j'ai bâché parce que le config.h de la 6.1 est différent de celui de 6.0 à certains endroits, et que mon config.h est pas mal modifié : j'ai remis ça à après les vacances de Noël.

Si ton config.h n'est pas trop customisé, je te suggère de le mettre de côté et de repartir de celui de base de la 6.1 pour modifier ton Mod4Mask. Utilises-tu des patches ? Lesquels ?

Qu'utilises-tu comme disposition de clavier ? L'AZERTY (comme le BÉPO) présentent ce soucis que les chiffres ne sont pas accessibles directement… Ton soucis d'accès aux tags peut venir de là. Pour ton cas, j'en doute si tu dis que ça fonctionne pour dwm 6.0, mais ça vaut le coup de poser la question et d'exclure cette possibilité.

Sinon dans tes sorties de compilations concernant le fichier ft2build.h, je pense qu'il te manque une dépendance (freetype2) :

Code : Tout sélectionner

$ pkgfile ft2build.h
extra/freetype2
$ pacman -Qs freetype2
local/freetype2 2.6.2-1
    TrueType font rendering library
local/lib32-freetype2 2.6.2-1
    TrueType font rendering library (32-bit)
$ pacman -Ql freetype2 | grep ft2build.h
freetype2 /usr/include/freetype2/ft2build.h
dwm — BÉPO — vim — “more is less !”
Avatar de l’utilisateur
reflets de vert
yeomen
Messages : 295
Inscription : mar. 23 mars 2010, 15:17
Localisation : Strasbourg

Re: [dwm]Problème de raccourcis

Message par reflets de vert »

Salut,

Je comprends pas le terminal me dit quasiment la même chose pour freetype2, sauf pour la ligne "local/lib32" que j'ai pas.

Je suis en bépo
J'utilise console-tdm, dwm, …
(bon moi aussi j'écris en bépo - même si ça se voit pas)
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [dwm]Problème de raccourcis

Message par bobo »

lib32-freetype2 vient de [multilib] (ça doit être pour wine). Hmm étrange. Il faudrait que je me re-essaye à la compil de dwm 6.1.
dwm — BÉPO — vim — “more is less !”
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [dwm]Problème de raccourcis

Message par bobo »

Ça vient de ton utilisation de make je pense. Dans le PKGBUILD il y a des arguments donnés :

Code : Tout sélectionner

$ yaourt -U dwm
$ grep make dwm/PKGBUILD
  make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11 FREETYPEINC=/usr/include/freetype2
  make PREFIX=/usr DESTDIR=$pkgdir install
Édition : maintenant je fais le grep sur le bon PKGBUILD

Essaie de faire ton make comme ça :

Code : Tout sélectionner

make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11 FREETYPEINC=/usr/include/freetype2
Dernière modification par bobo le ven. 15 janv. 2016, 14:56, modifié 1 fois.
dwm — BÉPO — vim — “more is less !”
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [dwm]Problème de raccourcis

Message par bobo »

Si tu veux avoir une idée de comment j'ai installé le bousin, je viens d'ouvrir un fil pour discuter de mon script d'install de dwm dans le home de l'utilisateur :
viewtopic.php?f=13&t=17807&p=150174#p150171
dwm — BÉPO — vim — “more is less !”
Avatar de l’utilisateur
reflets de vert
yeomen
Messages : 295
Inscription : mar. 23 mars 2010, 15:17
Localisation : Strasbourg

Re: [dwm]Problème de raccourcis

Message par reflets de vert »

J'avoue que j'ai pas tout compris (il va falloir que je me renseigne sur les PKGBUILD, un minimum), mais ça a marché!

Ça marche toujours pas le raccourci pour passer de 1 à 9, mais c'est déjà bien pour la 6.1!
J'utilise console-tdm, dwm, …
(bon moi aussi j'écris en bépo - même si ça se voit pas)
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [dwm]Problème de raccourcis

Message par bobo »

reflets de vert a écrit :J'avoue que j'ai pas tout compris (il va falloir que je me renseigne sur les PKGBUILD, un minimum), mais ça a marché!
:arrow: Explications sur les mécanismes de résolution du problème de compilation

Si j'ai bien compris, la commande suivante

Code : Tout sélectionner

make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11 FREETYPEINC=/usr/include/freetype2
lance make en écrasant les paramètres par défaut du config.mk :

Code : Tout sélectionner

$ grep -e X11INC -e X11LIB -e FREETYPEINC config.mk 
X11INC = /usr/X11R6/include
X11LIB = /usr/X11R6/lib
FREETYPEINC = /usr/include/freetype2
FREETYPEINC = ${X11INC}/freetype2
INCS = -I${X11INC} -I${FREETYPEINC}
LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS}
On voit que les paths déclarés par défaut ne correspondent pas avec notre système Archlinux :
— /usr/X11R6 n'existe pas, pose soucis pour $X11INC et $X11LIB
— il y a deux déclarations de $FREETYPEINC, la seconde doit écraser la première et s'appuyant sur un $X11INC daubé => c'est ça qui provoquait l'erreur de compilation que tu voyais

Ce fichier config.mk est inclu en tout début de Makefile :

Code : Tout sélectionner

cat Makefile
# dwm - dynamic window manager
# See LICENSE file for copyright and license details.

include config.mk

SRC = drw.c dwm.c util.c
OBJ = ${SRC:.c=.o}

all: options dwm

options:
	@echo dwm build options:
	@echo "CFLAGS   = ${CFLAGS}"
	@echo "LDFLAGS  = ${LDFLAGS}"
	@echo "CC       = ${CC}"

.c.o:
	@echo CC $<
	@${CC} -c ${CFLAGS} $<

${OBJ}: config.h config.mk

config.h:
	@echo creating $@ from config.def.h
	@cp config.def.h $@

dwm: ${OBJ}
	@echo CC -o $@
	@${CC} -o $@ ${OBJ} ${LDFLAGS}

clean:
	@echo cleaning
	@rm -f dwm ${OBJ} dwm-${VERSION}.tar.gz

dist: clean
	@echo creating dist tarball
	@mkdir -p dwm-${VERSION}
	@cp -R LICENSE TODO BUGS Makefile README config.def.h config.mk \
		dwm.1 drw.h util.h ${SRC} dwm.png transient.c dwm-${VERSION}
	@tar -cf dwm-${VERSION}.tar dwm-${VERSION}
	@gzip dwm-${VERSION}.tar
	@rm -rf dwm-${VERSION}

install: all
	@echo installing executable file to ${DESTDIR}${PREFIX}/bin
	@mkdir -p ${DESTDIR}${PREFIX}/bin
	@cp -f dwm ${DESTDIR}${PREFIX}/bin
	@chmod 755 ${DESTDIR}${PREFIX}/bin/dwm
	@echo installing manual page to ${DESTDIR}${MANPREFIX}/man1
	@mkdir -p ${DESTDIR}${MANPREFIX}/man1
	@sed "s/VERSION/${VERSION}/g" < dwm.1 > ${DESTDIR}${MANPREFIX}/man1/dwm.1
	@chmod 644 ${DESTDIR}${MANPREFIX}/man1/dwm.1

uninstall:
	@echo removing executable file from ${DESTDIR}${PREFIX}/bin
	@rm -f ${DESTDIR}${PREFIX}/bin/dwm
	@echo removing manual page from ${DESTDIR}${MANPREFIX}/man1
	@rm -f ${DESTDIR}${MANPREFIX}/man1/dwm.1

.PHONY: all options clean dist install uninstall
N'étant pas très fort en syntaxe Makefile, je ne vois pas quel mécanisme permet d'écraser les paramètres par défaut définis par config.mk, mais l'idée est là.

:arrow: Explications et pistes sur les PKGBUILDs

Pour les PKGBUILDs, je te renverrais bien vers cette page du wiki : https://wiki.archlinux.fr/PKGBUILD#Fonctions
Une autre page intéressante est celle de makepkg : https://wiki.archlinux.org/index.php/makepkg

dwm pose soucis par rapport à la distribution de paquet binaire via des dépôts, parce que la configuration se fait en modifiant des variables avant compilation. Ça devient vite compliqué de discuter d'installation de dwm, chacun trouvant se petites astuces, et appliquant ses propres recettes. C'est comme un jeu, c'est pour ça que je reste attaché à ce morceau de hack minimaliste. Mais c'est aussi pour ça que j'ai planché sur mon script d'install dans le $HOME utilisateur : viewtopic.php?f=13&t=17807 Il faut que je le peaufine, et que je fasse un paquet AUR.

reflets de vert a écrit :Ça marche toujours pas le raccourci pour passer de 1 à 9, mais c'est déjà bien pour la 6.1!
:arrow: Questions sur ta méthode d'installation

Ça me mène à te demander comment tu installes dwm, car visiblement tu changes cette ligne

Code : Tout sélectionner

#define MODKEY Mod1Mask
– Comment récupères-tu les sources ? (téléchargement direct ? « makepkg -o » sur le PKGBUILD ? ABS ?)
– Crées -tu un package ? ou installes-tu ça autrement ?
– Installes-tu des patches à dwm ?

Sinon quelle disposition de clavier utilises-tu ? Parce qu'en cas de AZERTY, ou de BÉPO, on est confronté au problème que résoud ce patche : http://dwm.suckless.org/patches/azertykey , ça a l'air de correspondre.

Plus d'explications sur le soucis :
https://wiki.archlinux.fr/DWM#Clavier_AZERTY
http://bepo.fr/wiki/Dwm
dwm — BÉPO — vim — “more is less !”
Répondre