You are not logged in.

#1 2020-06-17 11:32:34

leo2501
Member
From: Buenos Aires, Argentina
Registered: 2007-07-07
Posts: 658

Some commands don't work in dwm

Hi! i was using dwm for several years from 2007/2008, but the last years I used i3wm more. Now i wanted to go back to dwm and i found that for whatever reason some commands don't work while most others do.


Here is my dwm config.h file:

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

/* appearance */
static const unsigned int borderpx  = 1;        /* border pixel of windows */
static const unsigned int snap      = 32;       /* snap pixel */
static const int showbar            = 1;        /* 0 means no bar */
static const int topbar             = 1;        /* 0 means bottom bar */
static const char *fonts[]          = { "monospace:size=10" };
static const char dmenufont[]       = "monospace:size=10";
static const char col_gray1[]       = "#222222";
static const char col_gray2[]       = "#444444";
static const char col_gray3[]       = "#bbbbbb";
static const char col_gray4[]       = "#eeeeee";
static const char col_cyan[]        = "#005577";
static const char col_violet[]	    = "#8f00ff";
static const char *colors[][3]      = {
	/*               fg         bg         border   */
	[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
	[SchemeSel]  = { col_gray4, col_violet,  col_violet  },
};

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

static const Rule rules[] = {
	/* xprop(1):
	 *	WM_CLASS(STRING) = instance, class
	 *	WM_NAME(STRING) = title
	 */
	/* class		instance    title       tags mask     isfloating   monitor */
	{ "mpv",		NULL,       NULL,       0,            1,           -1 },
	{ "firefox",		NULL,       NULL,       1 << 1,       0,           -1 },
	{ "Google-chrome",	NULL,       NULL,       1 << 2,       0,           -1 },
	{ "TelegramDesktop",	NULL,       NULL,       1 << 3,       0,           -1 },
	{ "jetbrains-idea-ce",	NULL,       NULL,       1 << 4,       0,           -1 },
	{ "Apache JMeter",	NULL,       NULL,       1 << 4,       0,           -1 },
	{ "JDownloader",	NULL,       NULL,       1 << 6,       0,           -1 },
	{ "Transmission-gtk",	NULL,       NULL,       1 << 6,       0,           -1 },
	{ "Amule",		NULL,       NULL,       1 << 6,       0,           -1 },
	{ "Pcmanfm",		NULL,       NULL,       1 << 7,       0,           -1 },
	{ "xfreerdp",		NULL,       NULL,       1 << 8,       0,           -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 int resizehints = 1;    /* 1 means respect size hints in tiled resizals */

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

/* key definitions */
#define MODKEY Mod1Mask
#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 char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_violet, "-sf", col_gray4, NULL };
static const char *termcmd[]  = { "st", NULL };
static const char *termcmdalt[]  = { "st", "-f", "Bitstream vera sans mono:pixelsize=24:antialias=true:autohint=false", NULL };

static Key keys[] = {
	/* modifier                     key        function        argument */
	{ MODKEY,                       XK_p,      spawn,          {.v = dmenucmd } },
	{ MODKEY,			XK_Return, spawn,          {.v = termcmd } },
        { MODKEY|ShiftMask,             XK_Return, spawn,          {.v = termcmdalt } },
	{ 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_q,      killclient,     {0} },
	{ MODKEY,                       XK_t,      setlayout,      {.v = &layouts[1]} },
	{ MODKEY,                       XK_f,      setlayout,      {.v = &layouts[2]} },
	{ MODKEY,                       XK_m,      setlayout,      {.v = &layouts[0]} },
	{ 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_x,      quit,           {0} },
};

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

Some of them that are not working are

        { MODKEY|ShiftMask,             XK_Return, spawn,          {.v = termcmdalt } },
	{ MODKEY|ShiftMask,             XK_q,      killclient,     {0} },
	{ MODKEY,                       XK_space,  setlayout,      {0} },
	{ MODKEY|ShiftMask,             XK_x,      quit,           {0} },

While others do work, for example:

	{ MODKEY,                       XK_p,      spawn,          {.v = dmenucmd } },
	{ MODKEY,			XK_Return, spawn,          {.v = termcmd } },

I already tried, adding or removing the "ShiftMask" key but the effect is the same, like its the command that its not working, whatever keys i add.

Thanks in advance!


Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
-- Antoine de Saint-Exupery

Offline

#2 2020-06-17 15:20:59

Head_on_a_Stick
Member
From: London
Registered: 2014-02-20
Posts: 7,680
Website

Re: Some commands don't work in dwm

Are you sure that your custom dwm version is being run?

type dwm

How did you go about compiling and installing the binary?

Offline

#3 2020-06-17 15:46:09

leo2501
Member
From: Buenos Aires, Argentina
Registered: 2007-07-07
Posts: 658

Re: Some commands don't work in dwm

Head_on_a_Stick wrote:

Are you sure that your custom dwm version is being run?

type dwm

How did you go about compiling and installing the binary?

For compiling i made the standard aur procedure, like this:

$ mkdir -p ~/aur
$ cd ~/aur
$ git clone [url]https://aur.archlinux.org/dwm.git[/url]
$ cd dwm
<made my customizations in config.h file>
$ makepkg -fsi

and in my ~/.xinitrc i have:

#!/bin/sh

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then
    xrdb -merge "$userresources"
fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

# start some nice programs
picom -b --config ~/.picom.conf
#volumeicon &
xsetroot -solid '#9400D3' &
feh --bg-scale ~/Pictures/lea/wallpapers/680-summer-forest-after-the-rain_dark.jpg &
#feh --bg-scale ~/Pictures/lea/wallpapers/8f00ff.png &
#xbindkeys &

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 done
 unset f
fi

# dwm statusbar
#dwmstatus 2>&1 >/dev/null &
slstatus 2>&1 >/dev/null &

# dwm status
# Statusbar loop
#while true; do
#   xsetroot -name "$( date +"%Y-%m-%d %H:%M" )"
#   sleep 1m    # Update time every minute
#done &

# Fixing misbehaving Java applications
wmname compiz
export AWT_TOOLKIT=MToolkit

#exec startxfce4
#exec startlxde
#exec i3
#exec ~/bin/startdwm
exec dwm

Edit:
Weird thing, is that i tried to remove the package with pacman and then install directly from source (without AUR) and it didn't seem to take in account my customizations, so weird.

$ mkdir ~/src
$ git clone [url]https://git.suckless.org/dwm[/url]
$ cd dwm
<made my customizations in config.def.h file>
$ sudo make clean install

with same ~/.xinit file

Edit2:
Now i'm remembering that many years ago, i installed in this computer using the zen installer iso here https://sourceforge.net/projects/revenge-installer/ instead of installing manually, maybe is something related to that i am now thinking.

Last edited by leo2501 (2020-06-17 16:21:31)


Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
-- Antoine de Saint-Exupery

Offline

#4 2020-06-17 19:22:57

seth
Member
Registered: 2012-09-03
Posts: 49,996

Re: Some commands don't work in dwm

didn't seem to take in account my customizations

Try altering the colors and as HoaS pointed out, check "type dwm" to see what's actually executed.

Now i'm remembering that many years ago, i installed in this computer using the zen installer iso here https://sourceforge.net/projects/revenge-installer/ instead of installing manually

You're aware that this is technically disqualifiying?

Check what binary (path) is actually executed.
Check whether you can change any configuration (colors)
Check whether your config.h.in changes remain in the generated config.h
Check whether it's rather the commands or the shortcuts that fail you (binding the disfunctional commands to working shortcuts and working commands to failing shortcuts)

Online

Board footer

Powered by FluxBB