[SOLVED]dwm bars

I have some questions about dwm configuration. First of all how can I move the dwm bar to the bottom and make a new bar at the top where I can put my conky system monitor.
Like how this guy did it with his nice plain desktop:
Last edited by zowki (2009-06-19 15:55:55)

I got conky to be rendered as a window thanks to your .conkyrc tip but I still can't get dwm to make that bottom gap.
I tried "sh = DisplayHeight(dpy, screen) - BOTTOM_BAR_HEIGHT;" and defined BOTTOM_BAR_HEIGHT to 15 in config.h but it still didnt work.
Edit:
I have been doing some more hunting. Could any of these be the right variable?
static int sx, sy, sw, sh; /* X display screen geometry x, y, width, height */
static int by, bh, blw; /* bar geometry y, height and layout symbol width */
static int wx, wy, ww, wh; /* window area geometry x, y, width, height, bar excluded */
Edit 2:
I FINALLY DID IT! It was in the updategeom() function. I did this:
wh = showbar ? info[i].height - bh - BOTTOM_BAR_HEIGHT : info[i].height;
Thank you guys for all your help!
Last edited by zowki (2009-06-19 14:22:11)

Similar Messages

  • [Solved] dwm status bar

    I am learning about DWM...slowly...
    So, I have conky piped to dzen2 as per the screenshot;
    But how do I now remove the 'dwm-6.0' from the status bar?
    Thanks for your patience.
    Last edited by ancleessen4 (2013-04-13 11:05:17)

    dzconky;
    #!/bin/sh
    FG='#aaaaaa'
    BG='#333333'
    FONT='-*-inconsolata-*-r-normal-*-*-90-*-*-*-*-iso8859-*'
    conky | dzen2 -e - -h '14' -w '1100' -ta r -x '750' -fg $FG -bg $BG -fn $FONT &
    conky;
    out_to_console yes
    #out_to_x no
    background no
    update_interval 2
    total_run_times 0
    use_spacer none
    TEXT
    #Arch 64 :: $kernel :: $uptime_short :: ^fg(\#60B48A)$mpd_smart ^fg():: ${cpu cpu1}% / ${cpu cpu2}% :: cpu0 ${execi 5 sensors | grep "Core 0" | cut -d "+" -f2 | cut -c1-2}C cpu1 ${execi 5 sensors | grep "Core 1" | cut -d "+" -f2 | cut -c1-2}C :: ^fg(\#DC8CC3)$memperc% ($mem) ^fg():: ${downspeed enp0s20} ${upspeed enp0s20} :: ${time %a %b %d %H:%M}
    $kernel :: Updates: ${if_match ${execi 1800 (checkupdates | wc -l)} == 0}${color2}up to date${color}${else}${color3}${execi 1800 (checkupdates | wc -l)} new packages${color}${endif} :: ^fg(\#60B48A)$mpd_smart ^fg():: ^fg(\#DC8CC3)$memperc% = $mem ^fg():: ${time %H:%M} :: ^fg(\#8CD0D3)${execi 300 /home/neil/bin/weather.sh "EUR|LU|LU001|Luxembourg"}
    I have tried changing '-x' and '-w' but no change to the layout...
    Just tried to recompile with '-x=850'...to try and push dzen output to the right but no change...
    makepkg -efi --skipinteg
    I am sure this is a simple solution that I am missing...

  • [SOLVED]dwm-sprinkles: can't right click

    Just installed dwm-sprinkles (compiled from source grabbed using svn because there's nothing in AUR or ABS for it), and I can no longer right click in firefox or use the drop-down menus.  Drop downs on websites work fine, but I can't use anything in the firefox toolbar.  ie, File, Edit, address bar history, ABP menu, etc.  These things all work fine in gftp and goggles, which are the only other gui apps that I really use.
    It worked fine in vanilla dwm, which I built from the package in AUR.  Switched to dwm sprinkles because patching was a pain in the ass and sprinkles already has pretty much everything I need.  I'm guessing there is something in config.h that is causing this but I haven't changed anything except colors and terminal command. 
    Sorry if this has been posted/solved before, but there's just not much in-depth documentation on DWM out there (which is why I switched to a pre-patched version of it in the first place).
    Last edited by clutch (2010-06-04 22:08:28)

    ok, it works now after a reboot.  No idea. 

  • [SOLVED] dwm config

    [SOLVED]
    Hi,
    I am asking for help with my dwm config. What I want it to do is, instead of snapping directly to the edge of the screen, I want it to snap a certain distance away from it (and maybe other windows). Can someone point me in the right direction?
    Also, this is less relevant, but I want to include the system time in the title bar of dwm. Any help there?
    Last edited by latenitekid (2013-03-12 00:43:30)

    The time is included in the example status bar on the wiki page: https://wiki.archlinux.org/index.php/Dw … _statusbar
    The snapping thing sounds like a variant of useless gaps...

  • [SOLVED] [dwm] Can't start dwm

    Hi!
    I've recently entered the world of tiling WM and started with dwm.
    Since I'm kinda insecure, and wanted to keep gnome as well, I've followed every single step in the wiki article and used the ~/.Xclients way, so I could start dwm from gdm (I've followed also the steps in the discussion page as well).
    Then, when I tried to startup dwm from gdm, it doesn't start, and goes back again to gdm.
    My ~/.Xclients file is the following:
    setxkbmap -layout pt
    #relogio
    while true; do
    xsetroot -name "$( date +"%F %R" )"
    sleep 1m # Update time every minute
    done &
    # #estado da bateria
    # while true; do
    # batt=$(LC_ALL=C acpi -b)
    # case $batt in
    # *Discharging*)
    # batt="${batt#* * * }"
    # batt="${batt%%, *} "
    # batt=""
    # esac
    # xsetroot -name "$batt$(date +%R)"
    # sleep 60
    # done &
    #conky bar
    conky | while read -r; do xsetroot -name "$REPLY"; done &
    #executar o dwm
    exec dwm
    It's all things copied from the wiki page, just for testing if everything was fine...
    My /usr/share/xsessions/dwm.desktop file is:
    [Desktop Entry]
    Encoding=UTF-8
    Name=Dwm
    Comment=Dynamic window manager
    Exec=/usr/local/bin/dwm
    Icon=dwm
    Type=XSession
    And I've created a /usr/share/xsessions/user.desktop file that looks like this:
    [Desktop Entry]
    Encoding=UTF-8
    Name=User XSession script
    Comment=Runs your ~./Xsession script
    Exec=/etc/X11/Xsession
    Type=Application
    Thanks in advance for any help, I've searched the forums and used google and couldn't find any answer to this problem :S
    Last edited by Aeriel (2011-09-01 17:19:02)

    haxit, thanks I've managed to solve the problem!
    I've installed SLiM and set up everything in .xinitrc.
    The dwm.desktop doesn't match with yours because I've changed somethings and because I didn't backup the file (I know, it's super dumb and stupid) I had to paste the defaults I found in the web.
    Thanks.
    Fellow gdm and dwm users, an advice, put everything in .xinitrc. It's easier.
    Last edited by Aeriel (2011-09-01 17:19:30)

  • [SOLVED] dwm + dzen2 + conky-cli misconfigured

    I have been trying to pipe conky status to dzen2 and it is doing my head in.
    My .xinitrc
    #!/bin/sh
    # ~/.xinitrc
    setxkbmap -option terminate:ctrl_alt_bksp &
    eval `cat ~/.fehbg` &
    numlockx &
    xscreensaver -no-splash &
    # Dzen & conky
    conky | dzen2 -fg '#dcdcdc' -bg '#3f3f3f' -ta r -fn '-*-terminus-*-r-normal-*-*-120-*-*-*-*-iso8859-*' &
    # Start dwm
    exec ck-launch-session ~/Scripts/dwm-start
    .conkyrc
    background no
    out_to_console yes
    update_interval 2
    total_run_times 0
    use_spacer none
    double_buffer yes
    TEXT
    ${if_existing /sys/class/power_supply/BAT0/present}^fg(#999999)BAT^fg()${battery_percent}%${else}AC${endif} * CPU ${cpu cpu1}% RAM ${memperc}% * / ${fs_used_perc /}% /home ${fs_used_perc /home}% * PKG ${execpi 900 ~/Scripts/pacman-up.pl} * ${if_existing /proc/net/route ra0}Down ${downspeedf ra0}K/s Up ${upspeedf ra0}K/s ${else} ${if_existing /proc/net/route eth0} Down ${downspeedf ra0}K/s Up ${upspeedf ra0}K/s${endif} ${endif}* ${time %I:%M%P}
    Start dwm script
    conky | while read line; do
    xsetroot -name "$line";
    done | while true; do
    dwm > /dev/null; done;
    Could anyone point me at what I am doing wrong? I have tried following examples in the forums, including this one and this one -- but I either end up with dwm 5.7.2 in the corner, or conky prints out the ^fg etc...
    Any help would be appreciated at this point...
    Last edited by jasonwryan (2009-11-20 06:11:51)

    Thanks for the suggestions Skanky. The broken line in conky was a copy/paste error into the browser - it is a single line conky (I've edited the OP to reflect that).
    I think it is a problem with the way conky-cli and dzen work together. If I run:
    echo "testing" | dzen2 -fg '#dcdcdc' -bg '#3f3f3f' -ta r -fn '-*-terminus-*-r-normal-*-*-120-*-*-*-*-iso8859-*' -p
    it prints as expected.
    Similarly, if I comment the conky | dzen2 line in .xinintrc and just run conky-cli from the start script it works...
    Trying to get then to work together, however, is another matter.
    /edit
    Some progress: it seems that it is being drawn - if I Mod-Shift-q the dwm status bar briefly disappears and I can see conky momentarily. I tried starting conky | dzen2 after dwm but that didn't work.
    I have also added some options, which seem to have helped, my .xinintrc entry now looks like:
    conky | dzen2 -x '500' -e '' -fg '#dcdcdc' -bg '#3f3f3f' -ta r -fn '-*-terminus-*-r-normal-*-*-120-*-*-*-*-iso8859-*' -p &
    Last edited by jasonwryan (2009-11-19 16:57:13)

  • [solved]DWM apply systray patch

    [solved]I am trying to appply the systray6.1 patch to dwm. The "patch" goes fine but when I make I get the below errors:
        dwm build options:
        CFLAGS   = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -I/usr/X11R6/include -I/usr/include/freetype2 -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=2     -DVERSION="6.1" -DXINERAMA
        LDFLAGS  = -s -L/usr/X11R6/lib -lX11 -lXinerama -lfontconfig -lXft
        CC       = cc
        CC drw.c
        CC dwm.c
        dwm.c: In function ‘clientmessage’:
        dwm.c:589:26: error: incompatible types when assigning to type ‘long unsigned int’ from type ‘XftColor’
        swa.background_pixel  = scheme[SchemeNorm].bg->rgb;
                              ^
        dwm.c: In function ‘updatesystray’:
        dwm.c:2221:18: error: incompatible type for argument 9 of ‘XCreateSimpleWindow’
       systray->win = XCreateSimpleWindow(dpy, root, x, m->by, w, bh, 0, 0, scheme[SchemeSel].bg->rgb);
                      ^
        In file included from dwm.c:36:0:
        /usr/include/X11/Xlib.h:1621:15: note: expected ‘long unsigned int’ but argument is of type ‘XftColor’
        extern Window XCreateSimpleWindow(
                   ^
        dwm.c:2224:24: error: incompatible types when assigning to type ‘long unsigned int’ from type ‘XftColor’
        wa.background_pixel  = scheme[SchemeNorm].bg->rgb;
                            ^
        dwm.c:2244:24: error: incompatible types when assigning to type ‘long unsigned int’ from type ‘XftColor’
        wa.background_pixel  = scheme[SchemeNorm].bg->rgb;
                            ^
        dwm.c:2263:2: error: incompatible type for argument 3 of ‘XSetForeground’
        XSetForeground(dpy, drw->gc, scheme[SchemeNorm].bg->rgb);
        ^
        In file included from dwm.c:36:0:
        /usr/include/X11/Xlib.h:3227:12: note: expected ‘long unsigned int’ but argument is of type ‘XftColor’
         extern int XSetForeground(
                ^
        Makefile:18: recipe for target 'dwm.o' failed
        make: *** [dwm.o] Error 1
    I haven't applied any other patches. Any idea what I am doing wrong? I can go into dwm.c and see the lines the error is refering to but I am not sure what the problem is.
    Thanks
    Last edited by derrickcope (2015-05-01 02:30:45)

    I just got the latest one off of the repo at git.suckless.org/dwm. the page says 6.0 but my config.mk says version 6.1. I did try the 6.0 version but the patch had errors. I am a little confused. The other patches come back with errors too. I am using an unpatched version at the moment so I would think most patches should work.
    What should I do?

  • [SOLVED] DWM+pertag+bstack error

    hi
    i'm trying to compile dwm with pertag diff patch and bstack.c
    i get an error while compiling it:
    CC dwm.c
    In file included from config.h:42,
    from dwm.c:254:
    bstack.c: En la función 'bstack':
    bstack.c:7: error: puntero deferenciado a tipo de dato incompletoº
    bstack.c:11:error:puntero..
    make: *** [dwm.o] Error 1
    ==> ERROR: Falló la compilación.ª
    Abortando...
    º means: dereference pointer to incomplete data type
    ª means: Compilation failed.
    it sucks 'cos i want to read pdf on top of my 10" screen and write documents at bottom, without the problem of change to another desktop and have to move to another layout, i.e., floating for gimp
    another thing: for write this post i must to write the code manually, 'cos a don't know how to copy from urxvt and paste it to firefox.. yep, that's a newbie question
    Edit: solved here
    Last edited by kismet010 (2010-02-08 05:51:09)

    Looks like this workaround isn't enough to get it to compile on the latest hg clone.
    dwm build options:
    CFLAGS = -std=c99 -pedantic -Wall -Os -I. -I/usr/include -I/usr/include/X11 -DVERSION="5.8" -DXINERAMA
    LDFLAGS = -s -L/usr/lib -lc -L/usr/lib/X11 -lX11 -L/usr/lib/X11 -lXinerama
    CC = cc
    CC dwm.c
    dwm.c: In function 'gaplessgrid':
    dwm.c:262: error: dereferencing pointer to incomplete type
    dwm.c:276: error: dereferencing pointer to incomplete type
    dwm.c:276: error: dereferencing pointer to incomplete type
    dwm.c:279: error: dereferencing pointer to incomplete type
    dwm.c:282: error: dereferencing pointer to incomplete type
    dwm.c:282: error: dereferencing pointer to incomplete type
    dwm.c:283: error: dereferencing pointer to incomplete type
    dwm.c:284: error: dereferencing pointer to incomplete type
    make: *** [dwm.o] Error 1
    Line 262 for me is:
    for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next))
    I've tried many things and maybe i'm missing something very simple here.

  • [SOLVED] dwm doesn't compile with moveresize function

    I'am trying to compile dwm with moveresize function but I get this error:
    dwm build options:
    CFLAGS = -std=c99 -pedantic -Wall -Os -I. -I/usr/include -I/usr/include/X11 -DVERSION="5.7.2" -DXINERAMA
    LDFLAGS = -s -L/usr/lib -lc -L/usr/lib/X11 -lX11 -L/usr/lib/X11 -lXinerama
    CC = cc
    CC dwm.c
    In file included from dwm.c:254:0:
    config.h: In function 'moveresize':
    config.h:23:7: error: dereferencing pointer to incomplete type
    config.h:23:34: error: dereferencing pointer to incomplete type
    config.h:26:9: error: dereferencing pointer to incomplete type
    config.h:26:17: error: dereferencing pointer to incomplete type
    config.h:27:6: error: dereferencing pointer to incomplete type
    config.h:28:6: error: dereferencing pointer to incomplete type
    config.h:29:6: error: dereferencing pointer to incomplete type
    make: *** [dwm.o] Error 1
    Here's my config.h
    /* See LICENSE file for copyright and license details. */
    /* appearance */
    static const char font[] = "-*-terminus-*-*-*-*-12-*-*-*-*-*-*-*";
    static const char normbordercolor[] = "#454545";
    static const char normbgcolor[] = "#454545";
    static const char normfgcolor[] = "#C0C0C0";
    static const char selbordercolor[] = "#C0C0C0";
    static const char selbgcolor[] = "#454545";
    static const char selfgcolor[] = "#FFFFFF";
    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 */
    /* moveresize */
    static void moveresize(const Arg *arg) {
    XEvent ev;
    Monitor *m = selmon;
    if(!(m->sel && arg && arg->v && m->sel->isfloating))
    return;
    resize(m->sel, m->sel->x + ((int *)arg->v)[0],
    m->sel->y + ((int *)arg->v)[1],
    m->sel->w + ((int *)arg->v)[2],
    m->sel->h + ((int *)arg->v)[3],
    True);
    while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
    /* tagging */
    static const char *tags[] = { "term", "web", "fm", "im", "media", "float" };
    static const Rule rules[] = {
    /* class instance title tags mask isfloating monitor */
    { "Gimp", NULL, NULL, 1 << 5, True, -1 },
    { "Chromium", NULL, NULL, 1 << 1, True, -1 },
    { "MPlayer", NULL, NULL, 0, True, -1 },
    { "Wine", NULL, NULL, 1 << 5, True, -1 },
    { "Gpicview", NULL, NULL, 0, True, -1 },
    { "Pcmanfm", NULL, NULL, 1 << 2, True, -1 },
    { "Xarchiver", NULL, NULL, 0, True, -1 },
    { "Amsn", NULL, NULL, 1 << 3, True, -1 },
    /* layout(s) */
    static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
    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 *tdmenucmd[] = { "tdmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
    static const char *termcmd[] = { "roxterm", NULL };
    static const char *mutecmd[] = { "amixer", "-q", "sset", "Master", "toggle", NULL };
    static const char *volupcmd[] = { "amixer", "-q", "sset", "Master", "5-", "unmute", NULL };
    static const char *voldowncmd[] = { "amixer", "-q", "sset", "Master", "5+", "unmute", NULL };
    static const char *bgltupcmd[] = { "xbacklight", "-inc", "15", NULL };
    static const char *bgltdowncmd[] = { "xbacklight", "-dec", "1", NULL };
    static const char *displayoff[] = { "xset", "dpms", "force", "off", NULL };
    static const char *suspend[] = { "sudo", "pm-suspend", NULL };
    static Key keys[] = {
    /* modifier key function argument */
    { 0, 0x1008ff12, spawn, {.v = mutecmd } },
    { 0, 0x1008ff11, spawn, {.v = volupcmd } },
    { 0, 0x1008ff13, spawn, {.v = voldowncmd } },
    { 0, 0x1008ff02, spawn, {.v = bgltupcmd } },
    { 0, 0x1008ff03, spawn, {.v = bgltdowncmd } },
    { 0, 0x1008ff59, spawn, {.v = displayoff } },
    { 0, 0x1008ff2f, spawn, {.v = suspend } },
    { MODKEY, XK_p, spawn, {.v = dmenucmd } },
    { MODKEY, XK_r, spawn, {.v = tdmenucmd } },
    { MODKEY, 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|ShiftMask, XK_Return, zoom, {0} },
    { MODKEY, XK_Tab, view, {0} },
    { MODKEY, 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 } },
    { MODKEY|ShiftMask, XK_q, quit, {0} },
    { MODKEY, XK_Down, moveresize, {.v = (int []){ 0, 25, 0, 0 }}},
    { MODKEY, XK_Up, moveresize, {.v = (int []){ 0, -25, 0, 0 }}},
    { MODKEY, XK_Right, moveresize, {.v = (int []){ 25, 0, 0, 0 }}},
    { MODKEY, XK_Left, moveresize, {.v = (int []){ -25, 0, 0, 0 }}},
    { MODKEY|ShiftMask, XK_Down, moveresize, {.v = (int []){ 0, 0, 0, 25 }}},
    { MODKEY|ShiftMask, XK_Up, moveresize, {.v = (int []){ 0, 0, 0, -25 }}},
    { MODKEY|ShiftMask, XK_Right, moveresize, {.v = (int []){ 0, 0, 25, 0 }}},
    { MODKEY|ShiftMask, XK_Left, moveresize, {.v = (int []){ 0, 0, -25, 0 }}},
    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)
    /* 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|ShiftMask, Button1, resizemouse, {0} },
    { ClkTagBar, 0, Button1, view, {0} },
    { ClkTagBar, 0, Button3, toggleview, {0} },
    { ClkTagBar, MODKEY, Button1, tag, {0} },
    { ClkTagBar, MODKEY, Button3, toggletag, {0} },
    Last edited by Aakko (2010-05-30 18:21:30)

    ber_t wrote:A vanilla dwm compiles fine with your config.h. So I guess you're using other patches that rearrange the #include directive for config.h in dwm.c, e.g. pertag. If that's the case, you have to put the moveresize function in dwm.c and declare it before config.h get's included, just like any other function in dwm.c.
    Yes I had dwm.c patched with pertag. Vanilla compiles fine. Thanks!

  • [SOLVED] dwm: cannot open mixer

    I've been setting up dwm through the last hours and I had an issue with sound playback. Firstly, I can play any sound from the console or any other wm. The problem appears when I start dwm by using xinit but loading it through gdm seems to solve the problem but still I'm not satisfied with that solution. I think that gdm do something in order to grant access to the sound card but on the other hand I still have another problem with multiple running applications that playback sound, only the first opened application can.
    After starting dwm with xinit I get "amixer: Mixer attach default error: No such file or directory" and by running alsamixer I get "cannot open mixer: No such file or directory".
    Thanks in advance
    Last edited by russo (2011-06-20 04:01:15)

    Well, I checked those posts.
    /dev/mixer exists
    I tried to load the snd-pcm-oss but nothing changed.
    However I noticed that I can run alsamixer as root. I'm not sure but maybe having to run gdm as root while running xinit as user made the difference but still it doesn't make sense since I can run openbox with xinit and everything works fine. I'll keep trying
    EDIT: Finally, I tried to load openbox through xinit and had the same problem. Next I tried to reboot removing gdm from the daemons and start dwm directly with the xinitrc options. Now it seems to work fine. Maybe gdm blocked the sound card once it opened.
    Last edited by russo (2011-06-20 04:00:56)

  • [Solved] DWM and extra key's.

    Hello.
    I'm using DWM and now I have new keyboard with extra kyes Audio Mute, Raise or Lower volume you know
    I tried:
    showkey
    And I have my key in .Xmodmap , I typed:
    /path/to/.Xmodmap
    and all was ok
    And typed xmodmap and my keys was in mod4 section , this is the output of xmodmap:
    xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
    shift Shift_L (0x32), Shift_R (0x3e)
    lock Caps_Lock (0x42)
    control Control_L (0x25), Control_R (0x6d)
    mod1 Alt_L (0x40), Meta_L (0x9c)
    mod2 Num_Lock (0x4d)
    mod3
    mod4 XF86AudioRaiseVolume (0x73), XF86AudioRaiseVolume (0x74), Super_L (0x7f), Hyper_L (0x80)
    mod5 Mode_switch (0x5d), ISO_Level3_Shift (0x71), ISO_Level3_Shift (0x7c)
    Now I care to play with config.h of my DWM.
    Here is part of it:
    { MODKEY, XF86AudioRaiseVolume, spawn, SHCMD("exec mpc volume -5")}
    And when I tried to compile it with that config I got following errors:
    In file included from dwm.c:271:
    config.h:41: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Key'
    config.h:65: warning: ISO C does not allow extra ';' outside of a function
    config.h:69: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Button'
    config.h:80: warning: ISO C does not allow extra ';' outside of a function
    dwm.c: In function 'buttonpress':
    dwm.c:440: error: 'buttons' undeclared (first use in this function)
    dwm.c:440: error: (Each undeclared identifier is reported only once
    dwm.c:440: error: for each function it appears in.)
    dwm.c: In function 'grabbuttons':
    dwm.c:929: error: 'buttons' undeclared (first use in this function)
    dwm.c: In function 'grabkeys':
    dwm.c:952: error: 'keys' undeclared (first use in this function)
    dwm.c: In function 'keypress':
    dwm.c:1020: error: 'keys' undeclared (first use in this function)
    make: *** [dwm.o] Errpr 1
    And building stop's :(
    Is someone use extra keys with DWM.
    Thanks for any help
    Last edited by SpeedVin (2009-08-12 18:33:25)

    SpeedVin wrote:
    Tillotson wrote:/* See LICENSE file for copyright and license details. */
    /* appearance */
    static const char font[] = "-*-fixed-medium-r-*-*-18-*-*-*-*-*-iso8859-*";
    static const char normbordercolor[] = "#C7C7C7";
    static const char normbgcolor[] = "#000000";
    static const char normfgcolor[] = "#888888";
    static const char selbordercolor[] = "#1793D1";
    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[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
    static Rule rules[] = {
    /* class instance title tags mask isfloating */
    { "Thunar", NULL, NULL, 0, True },
    { "VirtualBox", NULL, NULL, 0, True },
    { "MPlayer", NULL, NULL, 0, True },
    { "Vlc", NULL, NULL, 0, True },
    { "XCalc", NULL, NULL, 0, True },
    /* layout(s) */
    static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
    static const Bool resizehints = True; /* False 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 const char *browsercmd[] = { "firefox", NULL };
    static const char *musiccmd[] = { "urxvtc", "-e", "ncmpcpp", NULL };
    static const char *talkcmd[] = { "urxvtc", "-e", "weechat-curses", NULL };
    static const char *shutcmd[] = { "sudo", "shutdown", "-h", "now", NULL };
    static const char *filebrowse[] = { "thunar", NULL };
    static const char *mutecmd[] = { "amixer", "-q", "sset", "Master", "toggle", NULL };
    static const char *volupcmd[] = { "amixer", "-q", "sset", "PCM", "5-", "unmute", NULL };
    static const char *voldowncmd[] = { "amixer", "-q", "sset", "PCM", "5+", "unmute", NULL };
    static const char *calccmd[] = { "xcalc", NULL };
    static Key keys[] = {
    /* modifier key function argument */
    { 0, 0x1008ff12, spawn, {.v = mutecmd } },
    { 0, 0x1008ff11, spawn, {.v = volupcmd } },
    { 0, 0x1008ff13, spawn, {.v = voldowncmd } },
    { 0, 0x1008ff1d, spawn, {.v = calccmd } },
    { MODKEY, XK_p, spawn, {.v = dmenucmd } },
    { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
    { MODKEY|ShiftMask, XK_b, spawn, {.v = browsercmd } },
    { MODKEY|ShiftMask, XK_m, spawn, {.v = musiccmd } },
    { MODKEY|ShiftMask, XK_f, spawn, {.v = filebrowse } },
    { MODKEY|ShiftMask, XK_t, spawn, {.v = talkcmd } },
    { MODKEY|ShiftMask, XK_Delete, spawn, {.v = shutcmd } },
    { 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|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 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} },
    Thank you very much I will see what I can do .
    Sadly still no reaction

  • [SOLVED] dwm + gkrellm. gkrellm in all tags + apps not over it

    hi! i'm using dwm right now, and it's here to stay in my config, but i'm a convert from fluxbox, and on it, i used to run gkrellm, it was beautifull to have it showed in every desktop, so right now i think if it's posible to have gkrellm in dwm, in the exact same behavior, so it shows in every tag, and the opened apps, dont get over it, like the slit in fluxbox...
    here's my config.h, i've added gkrellm to the floating apps list, but don't know how to edit it so gkrellm show in every tag
    /* See LICENSE file for copyright and license details. */
    /* appearance */
    /* static const char font[] = "-*-terminus-medium-r-normal-*-18-*-*-*-*-*-*-*"; */
    static const char font[] = "-*-fixed-medium-r-*-*-18-*-*-*-*-*-iso8859-*";
    static const char normbordercolor[] = "#111111";
    static const char normbgcolor[] = "#000000";
    static const char normfgcolor[] = "#ffffff";
    static const char selbordercolor[] = "#777777";
    static const char selbgcolor[] = "#222222";
    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 = False; /* False means bottom bar */
    /* tagging */
    static const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
    static Rule rules[] = {
    /* class instance title tags mask isfloating */
    { "Gimp", NULL, NULL, 0, True },
    { "Firefox", NULL, NULL, 1 << 8, True },
    { "MPlayer", NULL, "MPlayer", 0, True },
    { "feh", NULL, "feh", 0, True },
    { "glxgears", "glxgears", "glxgears", 0, True },
    { "vlc", NULL, "vlc", 0, True },
    { "xine", NULL, "xine", 0, True },
    { "gkrellm", NULL, "gkrellm", 0, True },
    { "galculator", NULL, NULL, 0, True },
    { "xcalc", NULL, NULL, 0, True },
    { "winff", NULL, "winff", 0, True },
    { "snes9x", NULL, "snes9x", 0, True },
    /* layout(s) */
    static float mfact = 0.55;
    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 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 const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
    static const char *termcmda[] = { "urxvt", NULL };
    static const char *termcmdb[] = { "urxvt", "-sh", "50", NULL };
    static const char *amixcmdua[] = { "amixer", "-q", "set", "PCM", "20+", NULL };
    static const char *amixcmdda[] = { "amixer", "-q", "set", "PCM", "20-", NULL };
    static const char *amixcmdub[] = { "amixer", "-q", "set", "Front", "10+", NULL };
    static const char *amixcmddb[] = { "amixer", "-q", "set", "Front", "10-", NULL };
    static Key keys[] = {
    /* modifier key function argument */
    { MODKEY, XK_p, spawn, {.v = dmenucmd } },
    { MODKEY, XK_Return, spawn, {.v = termcmda } },
    { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmdb } },
    { MODKEY, XK_z, spawn, {.v = amixcmdda } },
    { MODKEY, XK_x, spawn, {.v = amixcmdua } },
    { MODKEY|ShiftMask, XK_z, spawn, {.v = amixcmddb } },
    { MODKEY|ShiftMask, XK_x, spawn, {.v = amixcmdub } },
    { 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|ControlMask, XK_Return, zoom, {0} },
    { MODKEY, XK_Tab, view, {0} },
    { MODKEY, XK_q, 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 } },
    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 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 = termcmda } },
    { 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} },
    THANKS!!
    Last edited by leo2501 (2008-08-08 11:01:14)

    i will answer myself, someone get me the "key" in the ML. lol...
    On 8/4/08, Anselm R Garbe <[EMAIL PROTECTED]> wrote:
    > Also you might patch dwm.c to leave some space on the right for the
    > window, e.g. in updategeom:
    >
    > wh-=200;
    decreasing window area height would leave space at the _bottom_
    ww-=200;
    is probably what you meant
    Anselm R Garbe
    Mon, 04 Aug 2008 04:29:45 -0700
    You need to define a rule to make it floating and tag it with all tags.
    { "gkrellm",  NULL,       "gkrellm",  ~0,            True },
    Also you might patch dwm.c to leave some space on the right for the
    window, e.g. in updategeom:
    wh-=200;
    Kind regards,
    Anselm
    Rickard Gustafsson
    Mon, 04 Aug 2008 04:28:39 -0700
    { "gkrellm",  NULL,       "gkrellm",  (1 << 9) - 1,            True },
    or you could just replace (1 << 9) - 1 with 511.

  • [SOLVED] dwm Compiling Error

    Hello,
    I am running dwm, and I love how simple and light it is. I edited my config.h few times and compiled it and it was fine. The last time I tried, it gave me an error. I could not figure that out. I tried to use a valid config.h from the internet in case I missed my config.h up, and I tried to re-install it. Nothing worked. This is the error that I get when I run the command makepkg -efi --noconfirm:
    dwm build options:
    CFLAGS = -std=c99 -pedantic -Wall -Os -I. -I/usr/include -I/usr/include/X11 -D_FORTIFY_SOURCE=2 -DVERSION="6.0" -DXINERAMA
    LDFLAGS = -s -L/usr/lib -lc -L/usr/lib/X11 -lX11 -L/usr/lib/X11 -lXinerama
    CC = cc
    CC dwm.c
    In file included from dwm.c:288:0:
    config.h:18:19: error: ‘MAXTAGLEN’ undeclared here (not in a function)
    const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "w" };
    ^
    In file included from dwm.c:288:0:
    config.h: In function ‘focusstackf’:
    config.h:132:9: error: ‘sel’ undeclared (first use in this function)
    if(!sel)
    ^
    config.h:132:9: note: each undeclared identifier is reported only once for each function it appears in
    config.h:134:8: error: ‘lt’ undeclared (first use in this function)
    if(lt[sellt]->arrange) {
    ^
    config.h:134:11: error: ‘sellt’ undeclared (first use in this function)
    if(lt[sellt]->arrange) {
    ^
    config.h:138:25: error: ‘clients’ undeclared (first use in this function)
    for(c = clients; c && (!ISVISIBLE(c) || c->isfloating == sel->isfloating); c = c->next);
    ^
    config.h:152:9: error: too few arguments to function ‘restack’
    restack();
    ^
    dwm.c:213:13: note: declared here
    static void restack(Monitor *m);
    ^
    In file included from dwm.c:288:0:
    config.h: In function ‘setltor1’:
    config.h:162:16: error: ‘lt’ undeclared (first use in this function)
    setlayout((lt[sellt] == arg->v) ? &a : arg);
    ^
    config.h:162:19: error: ‘sellt’ undeclared (first use in this function)
    setlayout((lt[sellt] == arg->v) ? &a : arg);
    ^
    config.h: In function ‘toggletorall’:
    config.h:169:8: error: ‘sel’ undeclared (first use in this function)
    if(sel && ((arg->ui & TAGMASK) == sel->tags)) {
    ^
    config.h: In function ‘togglevorall’:
    config.h:181:8: error: ‘sel’ undeclared (first use in this function)
    if(sel && ((arg->ui & TAGMASK) == tagset[seltags])) {
    ^
    config.h:181:39: error: ‘tagset’ undeclared (first use in this function)
    if(sel && ((arg->ui & TAGMASK) == tagset[seltags])) {
    ^
    config.h:181:46: error: ‘seltags’ undeclared (first use in this function)
    if(sel && ((arg->ui & TAGMASK) == tagset[seltags])) {
    ^
    config.h: In function ‘vieworprev’:
    config.h:193:34: error: ‘tagset’ undeclared (first use in this function)
    view(((arg->ui & TAGMASK) == tagset[seltags]) ? &a : arg);
    ^
    config.h:193:41: error: ‘seltags’ undeclared (first use in this function)
    view(((arg->ui & TAGMASK) == tagset[seltags]) ? &a : arg);
    ^
    config.h: In function ‘warptosel’:
    config.h:200:8: error: ‘sel’ undeclared (first use in this function)
    if(sel)
    ^
    config.h: In function ‘zoomf’:
    config.h:208:8: error: ‘sel’ undeclared (first use in this function)
    if(sel && (lt[sellt]->arrange != tile || sel->isfloating))
    ^
    config.h:208:16: error: ‘lt’ undeclared (first use in this function)
    if(sel && (lt[sellt]->arrange != tile || sel->isfloating))
    ^
    config.h:208:19: error: ‘sellt’ undeclared (first use in this function)
    if(sel && (lt[sellt]->arrange != tile || sel->isfloating))
    ^
    config.h: At top level:
    config.h:213:2: error: expected identifier or ‘(’ before ‘{’ token
    { MODKEY, KEY, view, {.ui = 1 << TAG} }, \
    ^
    config.h:213:78: error: expected identifier or ‘(’ before ‘,’ token
    { MODKEY, KEY, view, {.ui = 1 << TAG} }, \
    ^
    config.h:214:78: error: expected identifier or ‘(’ before ‘,’ token
    { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
    ^
    config.h:215:78: error: expected identifier or ‘(’ before ‘,’ token
    { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
    ^
    config.h:216:78: error: expected identifier or ‘(’ before ‘,’ token
    { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
    ^
    config.h:222:145: warning: ISO C does not allow extra ‘;’ outside of a function [-Wpedantic]
    static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
    ^
    config.h:223:20: error: redefinition of ‘termcmd’
    static const char *termcmd[] = { "uxterm", NULL };
    ^
    config.h:63:20: note: previous definition of ‘termcmd’ was here
    static const char *termcmd[] = { "uxterm", NULL };
    ^
    config.h:225:12: error: redefinition of ‘keys’
    static Key keys[] = {
    ^
    config.h:65:12: note: previous definition of ‘keys’ was here
    static Key keys[] = {
    ^
    config.h:264:15: error: redefinition of ‘buttons’
    static Button buttons[] = {
    ^
    config.h:96:15: note: previous definition of ‘buttons’ was here
    static Button buttons[] = {
    ^
    dwm.c: In function ‘createmon’:
    dwm.c:654:15: error: ‘nmaster’ undeclared (first use in this function)
    m->nmaster = nmaster;
    ^
    dwm.c: In function ‘keypress’:
    dwm.c:1087:2: warning: ‘XKeycodeToKeysym’ is deprecated (declared at /usr/include/X11/Xlib.h:1695) [-Wdeprecated-declarations]
    keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
    ^
    In file included from dwm.c:288:0:
    dwm.c: At top level:
    config.h:15:13: warning: ‘readin’ defined but not used [-Wunused-variable]
    static Bool readin = True; /* False means do not read stdin */
    ^
    In file included from dwm.c:288:0:
    config.h:65:12: warning: ‘keys’ defined but not used [-Wunused-variable]
    static Key keys[] = {
    ^
    config.h:96:15: warning: ‘buttons’ defined but not used [-Wunused-variable]
    static Button buttons[] = {
    ^
    make: *** [dwm.o] Error 1
    ==> ERROR: A failure occurred in build().
    Aborting...
    And this is my config.h
    /* See LICENSE file for copyright and license details. */
    /* appearance */
    static const char font[] = "-*-terminus-bold-r-normal-*-14-*-*-*-*-*-*-*";
    static const char normbordercolor[] = "#cccccc";
    static const char normbgcolor[] = "#eeeeee";
    static const char normfgcolor[] = "#000000";
    static const char selbordercolor[] = "#0066ff";
    static const char selbgcolor[] = "#eeeeee";
    static const char selfgcolor[] = "#0066ff";
    static unsigned int borderpx = 3; /* 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 */
    static Bool readin = True; /* False means do not read stdin */
    /* tagging */
    const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "w" };
    static Rule rules[] = {
    /* class instance title tags mask isfloating monitor */
    { "acme", NULL, NULL, 1 << 2, False, -1 },
    { "Acroread", NULL, NULL, 0, True, -1 },
    { "Gimp", NULL, NULL, 0, True, -1 },
    { "GQview", NULL, NULL, 0, True, -1 },
    { "MPlayer", NULL, NULL, 0, True, -1 },
    { "Navigator", NULL, NULL, 1 << 5, False, -1 },
    /* layout(s) */
    static float mfact = 0.65;
    static Bool resizehints = False; /* 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 */
    { "[ ]", monocle },
    /* custom functions declarations */
    static void focusstackf(const Arg *arg);
    static void setltor1(const Arg *arg);
    static void toggletorall(const Arg *arg);
    static void togglevorall(const Arg *arg);
    static void vieworprev(const Arg *arg);
    static void warptosel(const Arg *arg);
    static void zoomf(const Arg *arg);
    /* key definitions */
    #define MODKEY Mod1Mask
    #define TAGKEYS(KEY,TAG) \
    { MODKEY, KEY, vieworprev, {.ui = 1 << TAG} }, \
    { MODKEY|ControlMask, KEY, togglevorall, {.ui = 1 << TAG} }, \
    { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
    { MODKEY|ControlMask|ShiftMask, KEY, toggletorall, {.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, focusstackf, {.i = +1 } },
    { MODKEY, XK_j, warptosel, {0} },
    { MODKEY, XK_k, focusstackf, {.i = -1 } },
    { MODKEY, XK_k, warptosel, {0} },
    { MODKEY, XK_h, setmfact, {.f = -0.05} },
    { MODKEY, XK_l, setmfact, {.f = +0.05} },
    { MODKEY, XK_Return, zoomf, {0} },
    { MODKEY, XK_Return, warptosel, {0} },
    { MODKEY, XK_Tab, view, {0} },
    { MODKEY|ShiftMask, XK_c, killclient, {0} },
    { MODKEY, XK_space, setltor1, {.v = &layouts[0]} },
    { MODKEY|ShiftMask, XK_space, setltor1, {.v = &layouts[2]} },
    { MODKEY, XK_0, vieworprev, {.ui = ~0 } },
    { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
    TAGKEYS( XK_1, 0)
    TAGKEYS( XK_2, 1)
    TAGKEYS( XK_3, 2)
    TAGKEYS( XK_4, 3)
    TAGKEYS( XK_5, 4)
    TAGKEYS( XK_w, 5)
    { MODKEY|ShiftMask, XK_q, quit, {0} },
    /* button definitions */
    /* click can ClkTagBar, ClkTagButton,
    * ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
    static Button buttons[] = {
    /* click event mask button function argument */
    { ClkLtSymbol, 0, Button1, setltor1, {.v = &layouts[0]} },
    { ClkLtSymbol, 0, Button2, setmfact, {.f = 1.65} },
    { ClkLtSymbol, 0, Button3, setltor1, {.v = &layouts[2]} },
    { ClkLtSymbol, 0, Button4, setmfact, {.f = +0.05} },
    { ClkLtSymbol, 0, Button5, setmfact, {.f = -0.05} },
    { ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
    { ClkStatusText, Button3Mask, Button1, killclient, {0} },
    { ClkWinTitle, 0, Button1, warptosel, {0} },
    { ClkWinTitle, 0, Button1, movemouse, {0} },
    { ClkWinTitle, 0, Button2, zoomf, {0} },
    { ClkWinTitle, 0, Button3, resizemouse, {0} },
    { ClkWinTitle, 0, Button4, focusstackf, {.i = -1 } },
    { ClkWinTitle, 0, Button5, focusstackf, {.i = +1 } },
    { ClkRootWin, 0, Button1, warptosel, {0} },
    { ClkRootWin, 0, Button1, movemouse, {0} },
    { ClkRootWin, 0, Button3, resizemouse, {0} },
    { ClkRootWin, 0, Button4, focusstackf, {.i = -1 } },
    { ClkRootWin, 0, Button5, focusstackf, {.i = +1 } },
    { ClkClientWin, MODKEY, Button1, movemouse, {0} },
    { ClkClientWin, MODKEY, Button2, zoomf, {0} },
    { ClkClientWin, MODKEY, Button3, resizemouse, {0} },
    { ClkTagBar, 0, Button1, vieworprev, {0} },
    { ClkTagBar, 0, Button3, togglevorall, {0} },
    { ClkTagBar, 0, Button4, focusstackf, {.i = -1 } },
    { ClkTagBar, 0, Button5, focusstackf, {.i = +1 } },
    { ClkTagBar, Button2Mask, Button1, tag, {0} },
    { ClkTagBar, Button2Mask, Button3, toggletorall, {0} },
    /* custom functions */
    void
    focusstackf(const Arg *arg) {
    Client *c = NULL, *i;
    if(!sel)
    return;
    if(lt[sellt]->arrange) {
    if (arg->i > 0) {
    for(c = sel->next; c && (!ISVISIBLE(c) || c->isfloating != sel->isfloating); c = c->next);
    if(!c)
    for(c = clients; c && (!ISVISIBLE(c) || c->isfloating == sel->isfloating); c = c->next);
    else {
    for(i = clients; i != sel; i = i->next)
    if(ISVISIBLE(i) && i->isfloating == sel->isfloating)
    c = i;
    if(!c)
    for(i = sel; i; i = i->next)
    if(ISVISIBLE(i) && i->isfloating != sel->isfloating)
    c = i;
    if(c) {
    focus(c);
    restack();
    else
    focusstack(arg);
    void
    setltor1(const Arg *arg) {
    Arg a = {.v = &layouts[1]};
    setlayout((lt[sellt] == arg->v) ? &a : arg);
    void
    toggletorall(const Arg *arg) {
    Arg a;
    if(sel && ((arg->ui & TAGMASK) == sel->tags)) {
    a.ui = ~0;
    tag(&a);
    else
    toggletag(arg);
    void
    togglevorall(const Arg *arg) {
    Arg a;
    if(sel && ((arg->ui & TAGMASK) == tagset[seltags])) {
    a.ui = ~0;
    view(&a);
    else
    toggleview(arg);
    void
    vieworprev(const Arg *arg) {
    Arg a = {0};
    view(((arg->ui & TAGMASK) == tagset[seltags]) ? &a : arg);
    void
    warptosel(const Arg *arg) {
    XEvent ev;
    if(sel)
    XWarpPointer(dpy, None, sel->win, 0, 0, 0, 0, 0, 0);
    XSync(dpy, False);
    while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
    void
    zoomf(const Arg *arg) {
    if(sel && (lt[sellt]->arrange != tile || sel->isfloating))
    togglefloating(NULL);
    else
    zoom(NULL);
    { 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} },
    Any suggestions?
    Last edited by husainaloos (2013-05-07 16:31:16)

    No, you were not missing "some graphical libraries that you didn't incluce in the config.h file". It looks like, as jasonwryan said, you copied functions into your config.h without checking how they work. Thus, you ended up having functions that use variables you never define in config.h (and there's alot of those!)
    Next time, either stick to already working patches found at suckless.org, or give some effort and at least try to figure out what is wrong with the code you randomly copied.

  • [SOLVED] dwm react strangely - azerty keycodes error

    Hi,
    I'm trying dwm after some time on Spectrwm, but i'm facing a strange behaviour it is impossible at all to switch to n tag with ModKey + n or put client to desired tag.
    Also dmenu wont spawn with ModKey + p. It spawn perfectly with  "$: dmenu_run" in a terminal but not with dwm shortcut.
    Other things seems to works fine.
    is anyone already had the same behaviour ?
    here is my config.h the only things that have changed from the config.def.h template is the termcmd (st replaced with terminology) and the modkey which I have change from "Alt" to "WindowsKey"
    /* 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[] = {
    /* xprop(1):
    * WM_CLASS(STRING) = instance, class
    * WM_NAME(STRING) = title
    /* 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 char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
    static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
    static const char *termcmd[] = { "terminology", 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} },
    Last edited by core_sum (2013-10-03 18:23:05)

    It was in fact the 6.0.1 so I presum this the 6.0 version.
    I have try to recompile with and without modification in config.h switching tags or sending clien to specified tag still not working.
    Also I have try with 
    #define MODKEY Mod4
    but it wont compile.
    All others keybiding works well like toggling the status bar with ModKey4 + b, increase client size, switching layout...but not the dmenu and tags functions.
    I have try on my laptop and on my workstation and it does the same behaviour so it should be an error from me
    Last edited by core_sum (2013-09-30 18:59:51)

  • [SOLVED] dwm-status.sh, possible to include scripts within the script?

    I have 'dwm-status.sh' printing some basic info (mpd, vol, date) into the status bar. Is it possible to make it include eg. gmail, weather, and battery scripts in a similar way that conky would? (execpi 60 python ~/.scripts/gmail.py)
    Also, off topic: How can I see which other special characters represent which icons in Ohsnap font? e.g. "Ñ" "Î" "¨" "¹" "ê" "í" "È represent cpu, memory, hdd, vol, clock.... how about the rest?
    dwm-status.sh:
    #!/bin/sh
    icons=("Ñ" "Î" "¨" "¹" "ê" "í" "È")
    getMusic() {
    msc="$(ncmpcpp --now-playing '{%a - %t}|{%f}')"
    if [ ! $msc ]; then
    echo -ne "\x0A${icons[4]}\x01 music off"
    else
    echo -ne "\x0A${icons[4]}\x01 ${msc}"
    fi
    getVolume() {
    vol="$(amixer get Master | egrep -o "[0-9]+%" | head -1 | egrep -o "[0-9]*")"
    echo -ne "\x0A${icons[5]}\x01 ${vol}"
    getDate() {
    dte="$(date '+%b %d %a')"
    echo -ne "\x0A${icons[1]}\x01 ${dte}"
    getTime() {
    tme="$(date '+ %H:%M')"
    echo -ne "\x0A${icons[6]}\x01 ${tme}"
    while true; do
    xsetroot -name "$(getMusic) $(getVolume) $(getDate) $(getTime)"
    sleep 1
    done
    Last edited by Winston-Wolfe (2013-06-26 13:10:11)

    Thanks guys, I've managed to get my notification scripts printing by simply not using execpi:
    getMail() {
    mai="$(~/.scripts/gmail.py)"
    echo -ne "\x0A${icons[3]}\x01 ${mai}"
    But like you said, I now have a calling frequency challenge.
    Trilby, that looks great. I've got it partially working, but I'm at a loss on how to go about printing the variables in the loop for those blocks that happen periodically.
    otherwise your email indicator (for example) will only pop up for one second every 5 minutes.
    ^ exactly what's currently happening.
    Is there something that just prints the variable without calling for an update like $(getMail) does that I could put into the loop?
    let loop=0
    while true; do
    # stuff that happens every second here
    xsetroot -name "$(getMusic) $(getVolume) $(getDate) $(getTime)"
    if [[ $loop%60 -eq 0 ]]; then
    #stuff that happens every minute here
    xsetroot -name "$(getMusic) $(getMail) $(getVolume) $(getDate) $(getTime)"
    fi
    if [[ $loop%300 -eq 0 ]]; then
    # stuff that happens every 5 minutes here
    xsetroot -name "$(getMusic) $(getMail) $(getWeather) $(getVolume) $(getDate) $(getTime)"
    let loop=0 #this prevents an eventual overflow
    fi
    let loop=$loop+1
    sleep 1
    done
    Last edited by Winston-Wolfe (2013-06-26 08:54:47)

Maybe you are looking for

  • With reference to which document Delivery is created in Sub contract

    Hi Friends With Reference to  which document delivery document is created in subcontract process . through which T code I can see this reference  document . Suppose , there are 10 quantity in delivery document , where can I see this 10 numbers  are f

  • DRQ: down payments & sales analysis per sales employee

    Our client sells projects which last from 2 to 8 weeks. A down payment invoice is issued before the start of the project and the remaining amount is invoiced upon completion. Sometimes due to the fast pace of the project and the payment terms, the do

  • Monitor Calibration question

    Hi, I sarted a new job and they have an Apple 23" cinema HD monitor and a 12" Sony Triniton PVM-14N5U NTSC monitor. The computer screen looks fine but everything in the NTSC monitor looks aweful green. Is there any kind of service for monitor calibra

  • Workflow Start "Failed But Not Blocking Correlation" - Project Server workflow for Demand Management

    Hi, I'm trying to "Create a Project Server workflow for Demand Management" with project server 2013 just like is explained here. But when I try to create a new project the implemented workflow failed to start with the follow state message in the job

  • PU12 wrong export file structure

    Hello Implementation of PU12 runs successfully for a long time. Now I had to change  one of the event ("Interface format"). Instead of exporting data from Infotype 0041 it, now, extracts additional field from another infotype (PA0002-Konfe). All step