5

I am running DWM under Arch Linux in combination with the urxvt terminal. I have a urxvt daemon running but when I press the key combination for opening a terminal window, nothing happens.

Is there an error log file for DWM?

Any suggestions what I can do to find out why no terminal is opening?

Thanks!

Edit: My config.c file:

/* appearance */
static const char font[]            = "-*-terminus-medium-r-normal-*- 12-*-*-*-*-*-*-*";
static const char normbordercolor[] = "#000000";
static const char normbgcolor[]     = "#3f3f3f";
static const char normfgcolor[]     = "#dfaf8f";
static const char selbordercolor[]  = "#cc0000";
static const char selbgcolor[]      = "#2b2b2b";
static const char selfgcolor[]      = "#f0dfaf";
static const unsigned int borderpx  = 1;        /* border pixel of windows */
static const unsigned int snap      = 0;       /* 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[] = { "term", "work", "www", "mail"};

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 = False; /* 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[]  = { "urxvtc", 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} },
};
5
  • 2
    You can start dwm and log to an error file (dwm 2> ~/dwm.log). Please post your config.h.
    – jasonwryan
    Jul 26, 2014 at 19:51
  • 1
    Your config.h looks good. What keys are you pressing to launch the term? How are you starting urxvtd?
    – jasonwryan
    Jul 26, 2014 at 20:34
  • How do you start your X? If with any *dm see its log. If with startx check your tty's screen. But you can do as jasonwryan said.
    – uzsolt
    Jul 27, 2014 at 11:27
  • I don't know about dwm specifically but the default stderr log file for any program running in an X11 session that does not somehow or other redirect its stderr is ~/.xsession-errors.
    – Celada
    Jul 28, 2014 at 0:41
  • It seems that you've changed the ModKey to be super so just to confirm, are you using super + shift + return key combination? Does it work if you set your terminal emulator to something else like st, gnome-terminal...? If it does then can you check if you have urxvtc installed. Also, can you try to run it via dmenu_run? ie. by super + p key combination and then selecting your terminal. Oct 10, 2020 at 14:37

2 Answers 2

0

can you run urxvtc as mentionned in the line

/* com/* commands */
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
static const char *termcmd[]  = { "urxvtc", NULL };mands */

otherwise use another terminal

0

You are executing as termcmd the urxvtc command:

static const char *termcmd[]  = { "urxvtc", NULL };

Note that this is the command for urxvt daemon control, therefore, the urxvtd daemon must first be running. Do you have the urxvtd command in your .xinitrc (or similar)?

For clarity:

  • urxvt - urxvt terminal emulator.
  • urxvtd - urxvt terminal daemon.
  • urxvtc - control the urxvtd daemon.

Clarifying the question even more, in order to debug this call I consider that your best option is:

  1. Execute with dmenu the command urxvt. If this step has gone well, you will have a terminal emulator open, and the urxvt emulator will work correctly without being demonized, so the problem is in the daemon or the daemon control and not in urxvt.
  2. In that opened terminal, type urxvtc. If urxvt is correctly demonized, another terminal emulator should be opened, if it is not, it will throw an error like:
Unable to connect to the rxvt-unicode daemon: Connection refused
  1. If there is an error, type urxvtd & and repeat step 2 again.
  2. So, try the Mod4+Shift+Enter key shortcut to check that the urxvtc execution is correct with respect to the daemon, as specified in:
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },

However, if all this seems complicated to you and you don't mind using demonization in urxvt, you can simplify the whole process and add the simple urxvt command instead of the daemon control, that is:

static const char *termcmd[]  = { "urxvt", NULL };

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .