LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Desktop (https://www.linuxquestions.org/questions/linux-desktop-74/)
-   -   Seeking opinion: Xmonad (& Hask-hell deps), or AwesomeWM ? (https://www.linuxquestions.org/questions/linux-desktop-74/seeking-opinion-xmonad-and-hask-hell-deps-or-awesomewm-785860/)

GrapefruiTgirl 01-30-2010 01:59 PM

Seeking opinion: Xmonad (& Hask-hell deps), or AwesomeWM ?
 
I'm working toward getting rid of XFCE & KDE from my Slack13-64 eventually, so have (for the dozenth time) been looking at the other WM's available.

Possibilities:

1) Openbox (currently something wrong with their download server; won't download)

2) Xmonad (requires Haskell stuff)

3) AwesomeWM (looks nice, no Haskell, and it downloads)

I thought to post this thread, because of looking through the Haskell documentation and finding it confusing. Not so much the Haskell itself, but the process of getting a working Haskell compiler and dependencies build and installed. Though the Haskell doc pages are pretty well written, I still am unsure what-all is required to be installed, to build or use the Haskell compiler.
If I'm understanding what I'm reading, I need a ready-made binary Haskell compiler installed FIRST, before I can build a Haskell compiler. Is this right? Is it worth going through the process of building my own Haskell compiler and installing whatever other Haskell stuff I need, to ultimately try out Xmonad? What's the easiest way to BUILD what I need, to BUILD and try Xmonad?

Which WM would you guys who have tried these 3 WM's recommend?

Thanks!
Sasha

hw-tph 01-30-2010 02:13 PM

Openbox is clean, no-nonsense and very easy to use and configure. I love it.

I have used Awesome but was not very awed by it. Perhaps I just don't "get" the tiling WM idea, but if you're keen on trying one I suggest you browse the helpful Comparison of tiling window managers from the Arch Wiki.

GrapefruiTgirl 01-30-2010 02:17 PM

Thanks hw-tph, I will check that Arch page. I am interested in trying out this 'tiling' stuff. And, I'd like to use more keyboard, and less mouse; that's one of the goals of this project (although yes, I realize that one can almost configure just about anything with keyboard shortcuts).

brianL 01-30-2010 02:21 PM

Never used it, but there are SlackBuilds for Xmonad and whatever else it needs.

evo2 01-30-2010 02:46 PM

I've used all three and have now settled on awesome. One thing to be aware of with awesome is that it is still under heavy development and there seems to be little priority on not breaking configuration syntax between versions. The other point is that although awesome does do tiling, it is does conventional floating window management too - which is in fact the default.

Cheers,

Evo2.

Mol_Bolom 01-30-2010 09:48 PM

Quote:

Originally Posted by GrapefruiTgirl (Post 3846410)
Thanks hw-tph, I will check that Arch page. I am interested in trying out this 'tiling' stuff. And, I'd like to use more keyboard, and less mouse; that's one of the goals of this project (although yes, I realize that one can almost configure just about anything with keyboard shortcuts).

You might try dwm first. It's easy to configure, no dependencies, and I believe you know c well enough, ;). However, the one thing I wouldn't do is use the slackbuild, instead just get the source, modify config.h and compile, then you can either use trackinstall, I'm sure it would work for that, or just leave it in that directory to test it for a while.

You can check it out at http://suckless.org/.

GrapefruiTgirl 01-30-2010 11:56 PM

Hi Mol, thanks for the tips about DWM :)

I've been to suckless.org (and currently have near a dozen tabs open from there) since there are a couple tools there that I'm looking at: dzen2 toolbar, and dmenu to name two; and there are a whack of other gizmos linked from the suckless site that I'm also looking at.

After a lot of screwing around with fonts, I currently have i3 ( http://i3.zekjur.net/ ) window manager installed, and it works well!
As you can see, it's very small at < 200K:
Code:

bash-3.1# ls -la /usr/bin/i3
-rwxr-xr-x 1 root root 196088 2010-01-30 20:07 /usr/bin/i3

and it is nice and responsive, as is expected :)

I plan on trying a few others in time, but I may skip over Xmonad because of the Haskell stuff. Seems a lot to go through, when there are so many others to choose from.

If I tried DWM (which I just might) I would likely build it with src2pkg. What exactly needs to be fixed in the config.h file? My C skills are good enough to fix stuff usually, but not enough to write anything from scratch!

Cheers!
Sasha

PS - in case anyone wonders what inspired me to try moving to a little tiny WM, here's a couple reasons:

1-- want something smaller + lighter.
2-- want to try tiling; I think I like it.
3-- want less mouse involved. Using mouse is beginning to bother me.
4-- when I upgrade packages (such as GTK+) to build other apps (like Firefox) against the newer version, I don't like that it f***s up my window manager (XFCE). I want my WM to be as isolated as possible from a lot of system dependencies. I upgraded GTK+ and GLib and some other stuff, and XFCE went all to hell :p in some really weird ways. Rather than rebuild XFCE, I'd rather just replace it.

Mol_Bolom 01-31-2010 12:58 AM

Quote:

Originally Posted by GrapefruiTgirl (Post 3846821)
After a lot of screwing around with fonts, I currently have i3 ( http://i3.zekjur.net/ ) window manager installed, and it works well!
As you can see, it's very small at < 200K:

I'll have to look into that tomarrow...

Quote:

If I tried DWM (which I just might) I would likely build it with src2pkg. What exactly needs to be fixed in the config.h file? My C skills are good enough to fix stuff usually, but not enough to write anything from scratch!
Well, it doesn't need a geek programmer to configure, hell, I'm as far from c guru as one can get, :D...However, I mentioned that because if you want to change something later on, while learning how to configure it, it's much much easier just to have it in the home directory to mess around with.

Here's my config.h file to give you and idea, and you can find others around the net as well. Also, the arch forums were a big help while learning how to configure it...

Code:

static const char font[]            = "-zevv-peep-medium-r-normal--16-140-75-75-c-80-iso8859-1";
static const char normbordercolor[] = "#cccccc";
static const char normbgcolor[]    = "#cccccc";
static const char normfgcolor[]    = "#000000";
static const char selbordercolor[]  = "#0066ff";
static const char selbgcolor[]      = "#0066ff";
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 */

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

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

/* 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 */

#include "bstack.c"

static const Layout layouts[] = {
        /* symbol    arrange function */
        { "TTT",      bstack},
        { "[]=",      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 *urxvt[] = { "urxvt", "-bg", "black", "-fg", "white", "-fn", "-zevv-peep-medium-r-normal--16-140-75-75-c-80-iso8859-1", "+sb", "-fb", "-zevv-peep-medium-r-normal--16-140-75-75-c-80-iso8859-1", NULL };
static const char *xterm[] = { "urxvtc" , "-bg", "black", "-fg", "white", "-fn", "-zevv-peep-medium-r-normal--16-140-75-75-c-80-iso8859-1", "+sb", "-fb", "-zevv-peep-medium-r-normal--16-140-75-75-c-80-iso8859-1", NULL };
static const char *dillo[] = {"dillo", NULL};
static const char *firefox[] = { "firefox", NULL};
static const char *gvim[] = {"gvim", NULL};
static const char *glade[] = {"glade-3", NULL};
static const char *kazehakase[] = { "kazehakase", NULL};
static const char *owriter[] = { "swriter", NULL};
static const char *fbrun[] = { "fbrun", NULL};

static Key keys[] = {
        /* modifier                    key        function        argument */
        { MODKEY,                        XK_F1,          spawn,          {.v = urxvt}},
        { MODKEY|ShiftMask,                XK_F1,    spawn,          {.v = xterm}},
        { MODKEY,                        XK_F2,          spawn,          {.v = kazehakase}},
        { MODKEY|ShiftMask,            XK_F2,    spawn,          {.v = dillo}},
        { MODKEY,                        XK_F3,          spawn,          {.v = firefox}},
        { MODKEY|ShiftMask,                XK_F3,          spawn,          {.v = fbrun}},
        { MODKEY,                        XK_F4,          spawn,          {.v = glade}},
        { MODKEY,                        XK_F5,          spawn,          {.v = gvim}},
        { MODKEY|ShiftMask,                XK_F5,          spawn,          {.v = owriter}},
        { 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|ShiftMask,                XK_b,          setlayout,          {.v = &layouts[0]} },
        { MODKEY,                      XK_t,      setlayout,      {.v = &layouts[1]} },
        { MODKEY,                      XK_f,      setlayout,      {.v = &layouts[2]} },
        { MODKEY,                      XK_m,      setlayout,      {.v = &layouts[3]} },
        { 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} },
};

Quote:

1-- want something smaller + lighter.
2-- want to try tiling; I think I like it.
3-- want less mouse involved. Using mouse is beginning to bother me.
4-- when I upgrade packages (such as GTK+) to build other apps (like Firefox) against the newer version, I don't like that it f***s up my window manager (XFCE).
1. It's quite small...Though I'm still using the older 5.2 version, I'm not interested in the newer versions.
Code:

-rwxr-xr-x 1 charles users 28032 2010-01-27 09:45 dwm
I do have 5.7.2 compiled, just haven't used it but a few times, and it is...
Code:

-rwxr-xr-x 1 charles users 28200 2009-12-12 18:25 dwm
2. Tiling is excellent, though if you want the windows to tile on the bottom, then you would need to add bstack.c to it, which can be found at suckless.

3. Less mouse involvement? Hell, if you like vim, you'll love dwm. :D...

4. dwm doesn't use gtk or anything like that. So there'd be no problem.

H_TeXMeX_H 01-31-2010 05:30 AM

Quote:

Originally Posted by GrapefruiTgirl (Post 3846821)
PS - in case anyone wonders what inspired me to try moving to a little tiny WM, here's a couple reasons:

1-- want something smaller + lighter.
2-- want to try tiling; I think I like it.
3-- want less mouse involved. Using mouse is beginning to bother me.
4-- when I upgrade packages (such as GTK+) to build other apps (like Firefox) against the newer version, I don't like that it f***s up my window manager (XFCE). I want my WM to be as isolated as possible from a lot of system dependencies. I upgraded GTK+ and GLib and some other stuff, and XFCE went all to hell :p in some really weird ways. Rather than rebuild XFCE, I'd rather just replace it.

Well, my recommendations are:
http://www.nongnu.org/ratpoison/
http://modeemi.cs.tut.fi/~tuomov/ion/
http://wmii.suckless.org/

Personally, I use fluxbox, but I see that you want even lighter and with tileing.

estabroo 01-31-2010 06:36 PM

I'm going to go against the grain a little and suggest compiz. It's not light in a traditional sense (especially since you need a decent graphics card to use it), but if you are running it as the window manager and something like emerald for window decoration without any of the stuff a session manager brings in, it is very snappy and responsive and completely non-intrusive. Everything in it can be keyboard driven and you can choose from a variety of window management styles (including tiling I believe).

Personally I'd been switching to lighter and lighter window managers, I ended up with fluxbox for a couple of years and on a suggestion from a friend tried compiz (after the re-merge with beryl) and absolutely loved it. The only extra thing I use beyond compiz/emerald for window and desktop management is the xcfe4-panel.

jpdamigaman 02-15-2010 08:30 PM

Vmware player 3.0 works for me!

joe f. 03-01-2010 05:21 AM

Fluxbox
 
I don't know why you passed Fluxbox by on your list, but you should give it a couple of days study and a week or two of use. For me, it's just enough WM that it helps me use the machine and the applications, but otherwise gets out of my way. If you configure the menu and keys files, you can really customize its functionality. It sounds like the keys file might be the important one for you. The fiels really are very logical and easy to work with. And, of course, there are a ton of styles out there to give you the look you want.

I like setting up the different DEs and WMs that come with Slackware, or those I can get from slackbuilds, etc., but keep coming back to Fluxbox. Sometimes I set up fbpanel, but I don't often use it, truth be told. A good menu, keys and init file (along with the scroll wheel on my mouse) and the Fluxbox toolbar are all I need.

The other great thing about Fluxbox is that you can configure it to use every pixel of the screen. I live on a 13.3 inch laptop, and I really appreciate that. With the toolbar on the top layer and on top of the screen I can maximize windows under the toolbar so part of the useless title bar is covered. It's only 20 or 30 pixels, but every pixel counts.

Openbox is a nice alternative, but I always find myself needing a toolbar of some kind, and they usually end up less flexible than Fluxbox's.

Have fun.

x-nc 03-01-2010 11:42 AM

Xfce for two reasons
 
First, Xfce's default setup is very much like Win/KDE/etc so that the initial learning curve would be the same as with most of the other environments. Second, and this is the best part (IMNSHO), it is fast and has an incredible amount of flexibility/comparability. It is a full Desktop Environment and has the same power as GNOME and KDE but it's very fast and light on resources like a typical window manager. Best of both worlds, I think.

MTK358 03-01-2010 12:00 PM

Personally I like PekWM. It's nice and simple, and has this neat window grouping feature.

GrapefruiTgirl 03-01-2010 12:03 PM

Hi everyone,

first, thanks to everyone who has given suggestions; I'm still listening, so feel free to keep adding stuff!

@ joe f. -- I passed over Fluxbox in this thread, only because I have tried it a few times already, and was/am looking for something "new" again, and specifically wanted feedback on those WM's mentioned in the OP. There are things I like about Fluxbox, and things I didn't seem to like (it's been quite a while since I logged into Fluxbox so I can't recall all that I didn't like, at this moment). Regardless, I appreciate your input about Fluxbox. There's always a good chance I'll play with it again, and maybe next time will be the "lucky day" for Flux, and it'll jive with me.

@ x-nc -- thanks for your feedback about XFCE. I have (had) been using XFCE exclusively since moving away from KDE after the release of Slackware13. Unfortunately, a few of the things you point out about XFCE, are precisely the things I really don't like. While it *is* somewhat faster/lighter than KDE, it still isn't really all that light (in fact, it isn't light at all, compared to the WM's mentioned in the OP); and like KDE, a full XFCE desktop environment comes with all the background luggage, daemons, services, etc. And the LAST thing I want, is something that in any way resembles an OS from Redmond. Blech! Also as I mentioned, one of the drawbacks of XFCE (for me anyhow) is its dependency on so much other junk from around my system. When I go about upgrading or otherwise changing some stuff elsewhere in the system, I expect my WM to still work. With KDE or XFCE, there are so many dependencies, that this often not the case.

Current Situation: For about the last month, I've been using i3 tiling WM and am really liking it. For the first few days, I really had to MAKE myself stick at it, to get used to my keybindings and whatnot, but as of today, I haven't logged into another WM in about 3-4 weeks or more. i3 is so minimal, it's like it almost isn't there! I've got Dmenu configured as a launcher, and a Dzen2 statusbar which I'm still working on but liking it so far. Other than these 2 items, plus the WM itself, there are no other processes running. And it's (as would be expected) super fast!

Thanks again to everyone -- more feedback is of course welcome :)

Sasha


All times are GMT -5. The time now is 07:44 AM.