You are not logged in.

#351 2012-02-24 07:37:57

Cloudef
Member
Registered: 2010-10-12
Posts: 636

Re: monsterwm! ~ yet another tiny wm

I've merged the fix to monsterwm_xcb, seems to work fine.

Offline

#352 2012-02-24 14:07:44

whooper
Member
From: Germany
Registered: 2008-12-24
Posts: 37

Re: monsterwm! ~ yet another tiny wm

Tested it and it's fixed, no problem with gparted neither exfalso. Thanks!

Offline

#353 2012-02-24 20:23:00

david.ptm56
Member
Registered: 2009-11-21
Posts: 15

Re: monsterwm! ~ yet another tiny wm

Hello. Trying to update here but:


==> Using your config.h
monsterwm build options:
CFLAGS   = -std=c99 -pedantic -Wall -Wextra -Os -I. -I/usr/include -I/usr/include/X11 -DVERSION="cookies-git" -DWMNAME="monsterwm"
LDFLAGS  = -s -L/usr/lib -lc -L/usr/lib/X11 -lX11
CC       = cc
CC monsterwm.c
In file included from monsterwm.c:160:0:
config.h:59:41: error: ‘rotate_desktop’ no se declaró aquí (no en una función)
config.h:59:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:59:5: aviso: (cerca de la inicialización de ‘keys[9].func’) [-Wmissing-field-initializers]
config.h:60:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:60:5: aviso: (cerca de la inicialización de ‘keys[10].func’) [-Wmissing-field-initializers]
config.h:61:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:61:5: aviso: (cerca de la inicialización de ‘keys[11].arg’) [-Wmissing-field-initializers]
config.h:62:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:62:5: aviso: (cerca de la inicialización de ‘keys[12].arg’) [-Wmissing-field-initializers]
config.h:63:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:63:5: aviso: (cerca de la inicialización de ‘keys[13].arg’) [-Wmissing-field-initializers]
config.h:64:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:64:5: aviso: (cerca de la inicialización de ‘keys[14].arg’) [-Wmissing-field-initializers]
config.h:65:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:65:5: aviso: (cerca de la inicialización de ‘keys[15].arg’) [-Wmissing-field-initializers]
config.h:66:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:66:5: aviso: (cerca de la inicialización de ‘keys[16].arg’) [-Wmissing-field-initializers]
config.h:67:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:67:5: aviso: (cerca de la inicialización de ‘keys[17].arg’) [-Wmissing-field-initializers]
config.h:68:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:68:5: aviso: (cerca de la inicialización de ‘keys[18].arg’) [-Wmissing-field-initializers]
config.h:69:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:69:5: aviso: (cerca de la inicialización de ‘keys[19].arg’) [-Wmissing-field-initializers]
config.h:70:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:70:5: aviso: (cerca de la inicialización de ‘keys[20].arg’) [-Wmissing-field-initializers]
config.h:71:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:71:5: aviso: (cerca de la inicialización de ‘keys[21].arg’) [-Wmissing-field-initializers]
config.h:72:5: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:72:5: aviso: (cerca de la inicialización de ‘keys[22].arg’) [-Wmissing-field-initializers]
config.h:73:2: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:73:2: aviso: (cerca de la inicialización de ‘keys[23].arg’) [-Wmissing-field-initializers]
config.h:74:8: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:74:8: aviso: (cerca de la inicialización de ‘keys[24].arg’) [-Wmissing-field-initializers]
config.h:74:8: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:74:8: aviso: (cerca de la inicialización de ‘keys[25].arg’) [-Wmissing-field-initializers]
config.h:75:8: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:75:8: aviso: (cerca de la inicialización de ‘keys[26].arg’) [-Wmissing-field-initializers]
config.h:75:8: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:75:8: aviso: (cerca de la inicialización de ‘keys[27].arg’) [-Wmissing-field-initializers]
config.h:76:8: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:76:8: aviso: (cerca de la inicialización de ‘keys[28].arg’) [-Wmissing-field-initializers]
config.h:76:8: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:76:8: aviso: (cerca de la inicialización de ‘keys[29].arg’) [-Wmissing-field-initializers]
config.h:77:8: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:77:8: aviso: (cerca de la inicialización de ‘keys[30].arg’) [-Wmissing-field-initializers]
config.h:77:8: aviso: falta el inicializador [-Wmissing-field-initializers]
config.h:77:8: aviso: (cerca de la inicialización de ‘keys[31].arg’) [-Wmissing-field-initializers]
monsterwm.c:758:6: aviso: se define ‘rotate’ pero no se usa [-Wunused-function]
monsterwm.c:763:6: aviso: se define ‘rotate_filled’ pero no se usa [-Wunused-function]
make: *** [monsterwm.o] Error 1
==> ERROR: Se produjo un error en build().
    Cancelando...

It's in Spanish but I think it's understandable. Can anyone help me to address this compiling error? Thank you.

Last edited by david.ptm56 (2012-02-24 20:23:43)

Offline

#354 2012-02-24 20:28:09

c00kiemon5ter
Member
From: Greece
Registered: 2010-06-01
Posts: 562
Website

Re: monsterwm! ~ yet another tiny wm

You're missing a '}' in the config file in the keys[] array probably.
Check that, or paste the config so I can have a look wink


.:[ git me! ] :.

Offline

#355 2012-02-24 21:04:53

david.ptm56
Member
Registered: 2009-11-21
Posts: 15

Re: monsterwm! ~ yet another tiny wm

Thank you c00kiemons5ter. I haven't found that missing '}'. I figured there can be a problem with the MOD1+CONTROL+p line so I commented it. But still getting the same compiling error. Please, help me to find what errors you can find on my config.h smile

/* see LICENSE for copyright and license */

#ifndef CONFIG_H
#define CONFIG_H

/** buttons **/
#define MOD1            Mod1Mask    /* ALT key */
#define MOD4            Mod4Mask    /* Super/Windows key */
#define CONTROL         ControlMask /* Control key */
#define SHIFT           ShiftMask   /* Shift key */

/** generic settings **/
#define MASTER_SIZE     0.52
#define SHOW_PANEL      True      /* show panel by default on exec */
#define TOP_PANEL       True      /* False mean panel is on bottom */
#define PANEL_HEIGHT    18        /* 0 for no space for panel, thus no panel */
#define DEFAULT_MODE    TILE      /* TILE MONOCLE BSTACK GRID */
#define ATTACH_ASIDE    True      /* False means new window is master */
#define FOLLOW_MOUSE    False     /* Focus the window the mouse just entered */
#define FOLLOW_WINDOW   False     /* Follow the window when moved to a different desktop */
#define CLICK_TO_FOCUS  False     /* Focus an unfocused window when clicked */
#define BORDER_WIDTH    2         /* window border width */
#define FOCUS           "#ff950e" /* focused window border color   */
#define UNFOCUS         "#444444" /* unfocused window border color */
#define DESKTOPS        4         /* number of desktops - edit DESKTOPCHANGE keys to suit */
#define DEFAULT_DESKTOP 0         /* the desktop to focus on exec */
#define MINWSZ          50        /* minimum window size in pixels */

/** open applications to specified desktop **/
static const AppRule rules[] = { \
    /*  class     desktop  follow  float */  /* desktop index starts from 0 */
    { "MPlayer",     2,    True,   False },  /* if there are 4 desktops, 3 is the  */
    { "Gimp",        3,    False,  True  },  /* last desktop, 0 is always the fist */
};

/* helper for spawning shell commands */
#define SHCMD(cmd) {.com = (const char*[]){"/bin/sh", "-c", cmd, NULL}}

/** commands **/
static const char *termcmd[]  = { "urxvt", NULL };
static const char *dmenucmd[] = { "dmenu_run", NULL };

#define DESKTOPCHANGE(K,N) \
    {  MOD1,             K,              change_desktop, {.i = N}}, \
    {  MOD1|ShiftMask,   K,              client_to_desktop, {.i = N}},

/** Shortcuts **/
static key keys[] = {
    /* modifier          key            function           argument */
    {  MOD1,             XK_b,          togglepanel,       {NULL}},
    {  MOD1,             XK_BackSpace,  focusurgent,       {NULL}},
    {  MOD1|SHIFT,       XK_c,          killclient,        {NULL}},
    {  MOD1,             XK_j,          next_win,          {NULL}},
    {  MOD1,             XK_k,          prev_win,          {NULL}},
    {  MOD1,             XK_h,          resize_master,     {.i = -10}}, /* decrease */
    {  MOD1,             XK_l,          resize_master,     {.i = +10}}, /* increase */
    {  MOD1,             XK_o,          resize_stack,      {.i = -10}}, /* shrink */
    {  MOD1|SHIFT,       XK_p,          resize_stack,      {.i = +10}}, /* grow   */
    {  MOD1|SHIFT,       XK_Left,       rotate_desktop,    {.i = -1}},  /* prev */
    {  MOD1|SHIFT,       XK_Right,      rotate_desktop,    {.i = +1}},  /* next */
    {  MOD1,             XK_Tab,        last_desktop,      {NULL}},
    {  MOD1|SHIFT,       XK_Return,     swap_master,       {NULL}},
    {  MOD1|SHIFT,       XK_j,          move_down,         {NULL}},
    {  MOD1|SHIFT,       XK_k,          move_up,           {NULL}},
    {  MOD1|SHIFT,       XK_t,          switch_mode,       {.i = TILE}},
    {  MOD1|SHIFT,       XK_m,          switch_mode,       {.i = MONOCLE}},
    {  MOD1|SHIFT,       XK_b,          switch_mode,       {.i = BSTACK}},
    {  MOD1|SHIFT,       XK_g,          switch_mode,       {.i = GRID}},
    {  MOD1|CONTROL,     XK_r,          quit,              {.i = 0}}, /* quit with exit value 0 */
    {  MOD1|CONTROL,     XK_q,          quit,              {.i = 1}}, /* quit with exit value 1 */
    {  MOD1,             XK_Return,     spawn,             {.com = termcmd}},
    {  MOD1,             XK_p,          spawn,             {.com = dmenucmd}},
    {  MOD1|CONTROL,     XK_p,             spawn,                SHCMD("import -window root ~/Desktop/`date '+%Y%m%d-%H%M%S'`.png")},
       DESKTOPCHANGE(    XK_1,                             0)
       DESKTOPCHANGE(    XK_2,                             1)
       DESKTOPCHANGE(    XK_3,                             2)
       DESKTOPCHANGE(    XK_4,                             3)
};

static Button buttons[] = {
    {  MOD1,    Button1,     mousemotion,   {.i = MOVE}},
    {  MOD1,    Button3,     mousemotion,   {.i = RESIZE}},
    {  MOD4,    Button3,     spawn,         {.com = dmenucmd}},
};
#endif

Offline

#356 2012-02-24 21:46:24

c00kiemon5ter
Member
From: Greece
Registered: 2010-06-01
Posts: 562
Website

Re: monsterwm! ~ yet another tiny wm

ah, I see the error,

{  MOD1|SHIFT,       XK_Left,       rotate_desktop,    {.i = -1}},  /* prev */
{  MOD1|SHIFT,       XK_Right,      rotate_desktop,    {.i = +1}},  /* next */

rotate_desktop is now 'rotate'.
and now there's also rotate_filled which jumps only to desktops with windows open.

the new default is

{  MOD1|CONTROL,     XK_h,          rotate,            {.i = PREV}},
{  MOD1|CONTROL,     XK_l,          rotate,            {.i = NEXT}},
{  MOD1|SHIFT,       XK_h,          rotate_filled,     {.i = PREV}},
{  MOD1|SHIFT,       XK_l,          rotate_filled,     {.i = NEXT}},

Last edited by c00kiemon5ter (2012-02-24 21:47:03)


.:[ git me! ] :.

Offline

#357 2012-02-24 22:06:50

whooper
Member
From: Germany
Registered: 2008-12-24
Posts: 37

Re: monsterwm! ~ yet another tiny wm

There should be a wiki page for this wm! I think it would get more visibility

Offline

#358 2012-02-24 22:30:50

moetunes
Member
From: A comfortable couch
Registered: 2010-10-09
Posts: 1,033

Re: monsterwm! ~ yet another tiny wm

The config.h.def, which gets updated if necessary with each git pull, should be used as a reference for any changes in the core functions or usage. It's one of the reasons it is included in the git pull. A part of going lightweight with a window manager is a little bit of work keeping on top of things, kinda similar to using Archlinux.


You're just jealous because the voices only talk to me.

Offline

#359 2012-02-24 22:39:06

david.ptm56
Member
Registered: 2009-11-21
Posts: 15

Re: monsterwm! ~ yet another tiny wm

moetunes wrote:

The config.h.def, which gets updated if necessary with each git pull, should be used as a reference for any changes in the core functions or usage. It's one of the reasons it is included in the git pull. A part of going lightweight with a window manager is a little bit of work keeping on top of things, kinda similar to using Archlinux.

I agree. I should had just start over with a new config.h. But the thing is I did actually spent quite a time looking into the new config.def.h comparing with mine to see if there was any difference and I couldn't see the new rotation rules. I suppose I didn't pay enough attention. I think this is actually the first time I've had to ask for active help from other users on this forum since I started using Arch more than two years ago, though. Amazing distro to learn to do things by yourself.

Thank you very much for your help c00kiemon5ter. It worked, of course smile

Offline

#360 2012-02-24 23:21:58

whooper
Member
From: Germany
Registered: 2008-12-24
Posts: 37

Re: monsterwm! ~ yet another tiny wm

https://wiki.archlinux.org/index.php/Monsterwm

Don't know if its good or not but it's a start wink

Offline

#361 2012-02-24 23:42:54

c00kiemon5ter
Member
From: Greece
Registered: 2010-06-01
Posts: 562
Website

Re: monsterwm! ~ yet another tiny wm

heh, thanks, that's great! I may write more to it tommorow big_smile

edit: I already added more info,
also added some info to the comparison of wms and the listing of wms pages on the wiki
feel free to spread the word to other distros/groups smile

I also mentioned and added links to monsterwm-xcb, cloudef feel free to change/add anything you want based wink


bah, now I have to update the README - documentation is so boring tongue

Last edited by c00kiemon5ter (2012-02-25 04:35:09)


.:[ git me! ] :.

Offline

#362 2012-02-25 05:18:33

stlarch
Member
From: hell
Registered: 2010-12-25
Posts: 1,265

Re: monsterwm! ~ yet another tiny wm

Snapwm deserves a wiki page too! Maybe I'll give it a go over the weekend or at least get it started and then moe can correct it tongue

Offline

#363 2012-02-26 13:50:19

Shinryuu
Member
From: /dev/urandom
Registered: 2010-02-27
Posts: 339

Re: monsterwm! ~ yet another tiny wm

Hey! I have a few questions that are bothering me but not that much wink Let's make it simple, if I'm on _whatever_ tiling mode and I'll open an application which is in float mode.. application starts but tiling makes an empty space for it too which I find really strange. Also is it possible to use something similiar like "static const Bool resizehints = False;" with monsterwm to avoid having 2px empty spaces in some cases (especially when using fibonacci layout)

Here's a quick'n'made screenshot:
tY3Z0bQ

I find this window manager really flexible and light, also it's been under my eyes for a while and I've been tweaking it from time to time. Pretty much going to replace my dwm setup, thanks!

Offline

#364 2012-02-26 15:43:01

c00kiemon5ter
Member
From: Greece
Registered: 2010-06-01
Posts: 562
Website

Re: monsterwm! ~ yet another tiny wm

Hi there,

Gaps with floating clients should happen only with fibonacci layout, I pushed a fix for that.

Resize hints are ignored. That is the default behavior, so all apps will take all the available space they can.
The gaps you see is because you have 'x' windows open (for example 3) and your screen is 'y' pixels tall (for example 100 pixels height), so 'y'/'x' is not an accurate division, 'y'%'x' != 0 (% is mod), in our example that'd be 100/3=33.3333... , so each window will get 33 pixels height, and thus one pixel is missing from the bottom. That can be 2 pixels on some cases, etc.  Same goes for width.

This is only fixed in the usual stacking layouts, bstack and tile where that remaining space is given to the first stack window, which can grow and shrink. Grid suffers from this too. I might patch this in the future (that is if I come up with something, maybe tomorrow, either way it can't be in the past!).

tongue have fun


.:[ git me! ] :.

Offline

#365 2012-02-26 16:36:13

Shinryuu
Member
From: /dev/urandom
Registered: 2010-02-27
Posts: 339

Re: monsterwm! ~ yet another tiny wm

Thanks for the quick and informative answer wink Thumbs up!

Offline

#366 2012-03-01 04:09:27

c00kiemon5ter
Member
From: Greece
Registered: 2010-06-01
Posts: 562
Website

Re: monsterwm! ~ yet another tiny wm

hey all, does going through/traversing windows in monocle layout work ?
I've been playing here with the code, and seems it's not (except if I've messed my code here tongue).
It seems I introduced this bug while trying to keep all floating clients on top.

I will push tomorrow a fix for this, and some more stuff.
I've fixed the flickering whith multiple floating windows but that introduced a new behavior with fullscreen windows. The difference is that now, having a fullscreen window and traversing windows, the fullscreen window will flicker, but I don't know if anyone actually does that (looks at other windows when he's opened a fullscreen window).
Also, I've fixed the bug with the border of the active window getting hidden (under the borders of the other windows) when a floating client was present.
I also minized some more code.

Anyway, I'll inform you tomorrow, when the new code is up. If you find anything annoying, just report wink

Last edited by c00kiemon5ter (2012-03-01 04:13:47)


.:[ git me! ] :.

Offline

#367 2012-03-02 21:44:48

el mariachi
Member
Registered: 2007-11-30
Posts: 595

Re: monsterwm! ~ yet another tiny wm

not sure if anyone complained about this before:
201203022141221280x800s.png

started xbmc from a terminal and that happened (starting from dmenu has an even worse effect).
I can see some error messages in tty1 "RenderBadPicture", "BadDrawable", etc (in which log are those? I startx).

Last edited by el mariachi (2012-03-02 21:46:11)

Offline

#368 2012-03-02 22:57:07

moetunes
Member
From: A comfortable couch
Registered: 2010-10-09
Posts: 1,033

Re: monsterwm! ~ yet another tiny wm

el mariachi wrote:

not sure if anyone complained about this before:
http://img9.imageshack.us/img9/6623/201203022141221280x800s.png

started xbmc from a terminal and that happened (starting from dmenu has an even worse effect).
I can see some error messages in tty1 "RenderBadPicture", "BadDrawable", etc (in which log are those? I startx).

From here - http://wiki.xbmc.org/index.php?title=HO … Arch_Linux - xbmc needs its' own xsession. I'd think it would check for a running wm first but appently not...


You're just jealous because the voices only talk to me.

Offline

#369 2012-03-02 23:15:00

el mariachi
Member
Registered: 2007-11-30
Posts: 595

Re: monsterwm! ~ yet another tiny wm

I see. Some games like EDGE, when played in fullscreen, also *used* to do this. Odd. If it's a xbmc, leave this issue, there must be more pressing matters around wink

Offline

#370 2012-03-03 01:30:13

c00kiemon5ter
Member
From: Greece
Registered: 2010-06-01
Posts: 562
Website

Re: monsterwm! ~ yet another tiny wm

I just installed and run xbmc, it seems fine here. What's your setup (branch, patches, config) ?
I'm using some new code, though, that I haven't pushed yet. Give me those ^ and I'll look into it.


.:[ git me! ] :.

Offline

#371 2012-03-03 15:06:23

Cloudef
Member
Registered: 2010-10-12
Posts: 636

Re: monsterwm! ~ yet another tiny wm

PrOyxs.png
Something from my bloated personal branch, that I've been experiementing with.
ATM it has opengl compositing similar to compiz (redirects all windows to pixmaps), and uses cairo for drawing panel.
However, I'm thinking of using cairo only as a fallback when OpenGL isn't used.

Offline

#372 2012-03-03 16:35:25

el mariachi
Member
Registered: 2007-11-30
Posts: 595

Re: monsterwm! ~ yet another tiny wm

flickerfree? count me in wink
Cookiemonster:
Master branch, no patches, config.h http://pastebin.ca/2123848

Offline

#373 2012-03-03 19:24:02

Cloudef
Member
Registered: 2010-10-12
Posts: 636

Re: monsterwm! ~ yet another tiny wm

el mariachi wrote:

flickerfree? count me in wink

Should be easy to do. (well in theory, in pratice there might be tearing) The current GL code is totally seperated from monsterwm itself and acts as kind of sub system actually, which is quite nice since I could easily integrate this to vanilla monsterwm too. And since XCB has no OpenGL support itself (need x11-xcb which then again needs to link against x11) so it would make much more sense for this code to be in vanilla monsterwm in the end.

There was also problem that none nested X servers (Xephyr, Xnest) supported the stuff I use well, Xephyr actually had GLX_TEXTURE_FROM_PIXMAP extension, but it din't work like it should've. And since I'm using blob nvidia driver, it freezes computer often when creating multiple X sessions. So I added simple standalone mode to monsterwm-xcb (-t option), that launches monsterwm in window. However, it's only useful for composition testing atm.

Last edited by Cloudef (2012-03-03 19:30:52)

Offline

#374 2012-03-03 19:28:32

el mariachi
Member
Registered: 2007-11-30
Posts: 595

Re: monsterwm! ~ yet another tiny wm

I'm using the intel driver and vanilla monsterwm (why xcb? I used the xcb port of dminiwm but didn't find it much different, powerformance wise).
If it's faster I have loooads of interest hehe don't know a thing about coding, but I'll play with it wink

Offline

#375 2012-03-03 19:32:52

Cloudef
Member
Registered: 2010-10-12
Posts: 636

Re: monsterwm! ~ yet another tiny wm

el mariachi wrote:

I'm using the intel driver and vanilla monsterwm (why xcb? I used the xcb port of dminiwm but didn't find it much different, powerformance wise).
If it's faster I have loooads of interest hehe don't know a thing about coding, but I'll play with it wink

Dunno about faster, but it uses less memory on Xorg process and itself. But yeah this can be backported back to monsterwm itself without much hassle.
Anyways, this is something I'm just experiementing with, no quarntees it turns into nice product that could be the "compiz for tiling wms" (I already see the irony here).

Offline

Board footer

Powered by FluxBB