Splitting into xmonad-core/xmonad/xmonad-contrib; WAS Small announce about the completion of the bluetile merge

On Mon, Dec 7, 2009 at 7:27 PM, Gwern Branwen
On Mon, Dec 7, 2009 at 4:34 PM, Wirt Wolff
wrote: A bluetileConfig could also play a role similar to the template config in providing a reference for people picking and choosing parts of the bluetile configuration, or wanting to activate them all plus a few customizations.
Thanks for bearing with the long-winded saying of: * Yes I agree they should continue as synced separate projects. * Some of the bluetile server commands should be available from contrib. * There should be a bluetileConfig providing all but the dock and greeter bits from bluetile. As much as possible normal Config.Foo customization methods should work, and any deviations be well documented and include integration helper functions if needed.
regards, -- wmw
Here's something I've been thinking. What if we came up with an xmonad.hs that included all the stuff everybody asks for and the obvious newbie aids like a first-run xmesage prompt? (Let's call this a standardConfig, as opposed to barebonesConfig or pimpedOutConfig.)
Then we could take the current xmonad package, rename it 'xmonad-core'*; the new 'xmonad' would be basically a cabal file depending on xmonad-core and xmonad-contrib, and an executable reading 'Main.hs...importXMonad...import XMonadContrib.StandardConfig...main = xmonad standardConfig'. (xmonad-core's executable would be left alone of course.)
If we get ambitious, the new xmonad main could do more. Perhaps we could check for XineRama in main and then modify our standardConfig to use SmartBorders or not?
This, I think, could make everyone happy:
- The people concerned about keeping the core minimal and pure can tell anyone suggesting 'hey, let's make SmartBorders the default layout' to change the standardConfig and leave the core alone. The tension between a default that is on par with TWM or raw X and a bloated failing awesome-like core goes away. - People who really want the stripped down xmonad have a name which makes it very clear which one of 'xmonad', 'xmonad-core', and 'xmonad-contrib' they want. - Distro & package maintainers bear very small costs since the package is really small and simple. Quite possibly it may not need updating for years or indefinitely once we get dynamic linking. (Since, if I understand the idea right, the compiled program would not hardwire the xmonad libraries but point to libxmonad.so or something, and would get new versions of 'xmonad' and 'standardConfig' everytime the respective libraries were changed.) - The majority of our users' lives will be easier: by installing 'xmonad', they get the core and -contrib as dependencies, and they don't have to struggle to get a comfortable setup. Sane defaults. I think we could make a standardConfig which is competitive with fluxbox or ratpoison. Even if a user doesn't want the spartan -core, but dislikes the standardConfig, they could still be better off, since it's unlikely they dislike the entire thing or even most of it. It seems to me that most people tend to dislike 1 or 2 things; if a person dislikes only 1 thing, they ideally will only have to change one thing. - People with existing configs are entirely unaffected. Because module names are split from package names, their xmonad.hs will never know the difference. (Presumably the new xmonad executable will see the xmonad.hs and recompile/run it rather than continue with standardConfig.) - This idea is better than some separate 'bluetile' executable package. dons and others have spent years publicizing xmonad. People who want xmonad install 'xmonad'. The people who would benefit from it are almost by definition the people who would not know about it until too late. Nor can we add an executable section to XMonadContrib for exactly the same reason. Someone just trying out XMonad may well never install -contrib or even know about it until they begin complaining. If you knew little about Xmonad and saw the Debian description at http://packages.debian.org/sid/xmonad would you be able to instantly infer 100% of the time that "Xmonad is configured in Haskell, and custom layout algorithms may be implemented by the user in config files" implies that there is an enormous collection of extensions & customizations called xmonad-contrib? I mean, -contrib isn't even a recommended or suggests!
The major downsides I can think of:
- hardcore minimalists might complain that they have to relearn to 'install xmonad-core' rather than 'install xmonad', lest they pull in -contrib as well. But then, these tend to be the people best able to bear the costs; I cannot weep for them. - the documentation might become misleading in places. Perhaps not majorly; many problems will be averted by the fact that the old 'xmonad' executable could always be reached as 'xmonad-core', and to do anything programming-wise would require using module names, and since the new xmonad depends on xmonad-core, there'd be no breakage. To be consistent, we might want to rename the darcs repo to .../xmonad-core; but then, the new 'xmonad' is so small we could just tuck it away in its own directory, or make the repo have 2 top-level folders, xmonad-core & xmonad. - this requires effort and approval from many people. (How many distro maintainers do we have? 3 or 4? Toss in another 3 for the -core devs, and then maybe a few more for people in favor of the general idea of a default userfriendly config but really couldn't we just make it another XMC module or something. Hard to have a consensus or get anything done with 10 people complaining, and this doesn't work if the official xmonad package doesn't change. It can't be done as a fork, as I covered above.)
* this is what everybody in #xmonad seems to say to distinguish the core package from contrib, anyway
Has anyone thought about it since? It's not at all uncommon in #xmonad to see people having issues with adding common config options that I think this proposal would address. -- gwern

I for one am strongly in favor of sane defaults, and I don't think
current xmonad can really claim that seriously. Breaking up the
packages this way could enable that.
~d
Quoting Gwern Branwen
On Mon, Dec 7, 2009 at 7:27 PM, Gwern Branwen
wrote: On Mon, Dec 7, 2009 at 4:34 PM, Wirt Wolff
wrote: A bluetileConfig could also play a role similar to the template config in providing a reference for people picking and choosing parts of the bluetile configuration, or wanting to activate them all plus a few customizations.
Thanks for bearing with the long-winded saying of: * Yes I agree they should continue as synced separate projects. * Some of the bluetile server commands should be available from contrib. * There should be a bluetileConfig providing all but the dock and greeter bits from bluetile. As much as possible normal Config.Foo customization methods should work, and any deviations be well documented and include integration helper functions if needed.
regards, -- wmw
Here's something I've been thinking. What if we came up with an xmonad.hs that included all the stuff everybody asks for and the obvious newbie aids like a first-run xmesage prompt? (Let's call this a standardConfig, as opposed to barebonesConfig or pimpedOutConfig.)
Then we could take the current xmonad package, rename it 'xmonad-core'*; the new 'xmonad' would be basically a cabal file depending on xmonad-core and xmonad-contrib, and an executable reading 'Main.hs...importXMonad...import XMonadContrib.StandardConfig...main = xmonad standardConfig'. (xmonad-core's executable would be left alone of course.)
If we get ambitious, the new xmonad main could do more. Perhaps we could check for XineRama in main and then modify our standardConfig to use SmartBorders or not?
This, I think, could make everyone happy:
- The people concerned about keeping the core minimal and pure can tell anyone suggesting 'hey, let's make SmartBorders the default layout' to change the standardConfig and leave the core alone. The tension between a default that is on par with TWM or raw X and a bloated failing awesome-like core goes away. - People who really want the stripped down xmonad have a name which makes it very clear which one of 'xmonad', 'xmonad-core', and 'xmonad-contrib' they want. - Distro & package maintainers bear very small costs since the package is really small and simple. Quite possibly it may not need updating for years or indefinitely once we get dynamic linking. (Since, if I understand the idea right, the compiled program would not hardwire the xmonad libraries but point to libxmonad.so or something, and would get new versions of 'xmonad' and 'standardConfig' everytime the respective libraries were changed.) - The majority of our users' lives will be easier: by installing 'xmonad', they get the core and -contrib as dependencies, and they don't have to struggle to get a comfortable setup. Sane defaults. I think we could make a standardConfig which is competitive with fluxbox or ratpoison. Even if a user doesn't want the spartan -core, but dislikes the standardConfig, they could still be better off, since it's unlikely they dislike the entire thing or even most of it. It seems to me that most people tend to dislike 1 or 2 things; if a person dislikes only 1 thing, they ideally will only have to change one thing. - People with existing configs are entirely unaffected. Because module names are split from package names, their xmonad.hs will never know the difference. (Presumably the new xmonad executable will see the xmonad.hs and recompile/run it rather than continue with standardConfig.) - This idea is better than some separate 'bluetile' executable package. dons and others have spent years publicizing xmonad. People who want xmonad install 'xmonad'. The people who would benefit from it are almost by definition the people who would not know about it until too late. Nor can we add an executable section to XMonadContrib for exactly the same reason. Someone just trying out XMonad may well never install -contrib or even know about it until they begin complaining. If you knew little about Xmonad and saw the Debian description at http://packages.debian.org/sid/xmonad would you be able to instantly infer 100% of the time that "Xmonad is configured in Haskell, and custom layout algorithms may be implemented by the user in config files" implies that there is an enormous collection of extensions & customizations called xmonad-contrib? I mean, -contrib isn't even a recommended or suggests!
The major downsides I can think of:
- hardcore minimalists might complain that they have to relearn to 'install xmonad-core' rather than 'install xmonad', lest they pull in -contrib as well. But then, these tend to be the people best able to bear the costs; I cannot weep for them. - the documentation might become misleading in places. Perhaps not majorly; many problems will be averted by the fact that the old 'xmonad' executable could always be reached as 'xmonad-core', and to do anything programming-wise would require using module names, and since the new xmonad depends on xmonad-core, there'd be no breakage. To be consistent, we might want to rename the darcs repo to .../xmonad-core; but then, the new 'xmonad' is so small we could just tuck it away in its own directory, or make the repo have 2 top-level folders, xmonad-core & xmonad. - this requires effort and approval from many people. (How many distro maintainers do we have? 3 or 4? Toss in another 3 for the -core devs, and then maybe a few more for people in favor of the general idea of a default userfriendly config but really couldn't we just make it another XMC module or something. Hard to have a consensus or get anything done with 10 people complaining, and this doesn't work if the official xmonad package doesn't change. It can't be done as a fork, as I covered above.)
* this is what everybody in #xmonad seems to say to distinguish the core package from contrib, anyway
Has anyone thought about it since? It's not at all uncommon in #xmonad to see people having issues with adding common config options that I think this proposal would address.
-- gwern _______________________________________________ xmonad mailing list xmonad@haskell.org http://www.haskell.org/mailman/listinfo/xmonad

I don't see the point of adding another package, what problem does it really solve? Some of the arguments for adding a third package border on intellectual dishonesty: we can't claim that xmonad is the same minimal window manager if we quadruple the lines of code used in the default configuration. I'd like to see concrete suggestions of what ought to be added if we made this xmonad/core/contrib split. Regarding "sane defaults", I think there are just a few things that need to be added to xmonad proper: - Full screen windows - ICCCM focus protocol/make Java work - Handling of a few window types: dock, desktop, etc. - Status bar without editing xmonad.hs (current plan is to do this via EWMH) Each of these could be added to the xmonad we know now without changing packaging policy. Cheers, Spencer Janssen

Quoting Spencer Janssen
(1) Full screen windows (2) ICCCM focus protocol/make Java work (3) Handling of a few window types: dock, desktop, etc. (4) Status bar without editing xmonad.hs (current plan is to do this via EWMH)
These are a good start. I assume (1) means (isFullscreen -> doFullFloat), and (3) means sticking avoidStruts/manageDocks in the core. To those, I would add smartBorders, modMask = mod4Mask, something to address http://www.reddit.com/r/xmonad/comments/aaexm/gnome_do_in_xmonad/c0glyav (not sure if there's even anything in contrib right now for this), and perhaps switching the default layouts to one of the hinted ones (can't count how many people complain about urxvt's, emacs' and vim's misbehavior in #xmonad). I think gwern's suggestion to have some kind of welcome-message for first-time users should also be considered part of the proposal. 2 cents, etc. etc. ~d

Spencer Janssen
I don't see the point of adding another package, what problem does it really solve? Some of the arguments for adding a third package border on intellectual dishonesty: we can't claim that xmonad is the same minimal window manager if we quadruple the lines of code used in the default configuration.
Agreed; if anything, I would think that merging xmonad and xmonad-contrib makes more sense than another split (seeing how many new users don't realise that xmonad by itself is rather boring). -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

On Fri, Feb 12, 2010 at 04:54:56AM EST, Ivan Lazar Miljenovic wrote:
Spencer Janssen
writes:
[..]
(seeing how many new users don't realise that xmonad by itself is rather boring).
.. which for a _user_ is exactly what a good window manager should be: I don't it to be 'interesting' like compiz and such.. so I'm not distracted and can focus on whatever I have to do. Obviously not for me to have a say in this, but I'd much prefer folks who have mastered this stuff wrote a detailed manual on xmonad configuration. CJ

* On Monday, February 15 2010, Chris Jones wrote:
[..]
Obviously not for me to have a say in this, but I'd much prefer folks who have mastered this stuff wrote a detailed manual on xmonad configuration.
CJ
Hello Chris, What is missing from the present documentation that you would like to see in this detailed manual? -- Adam

On Mon, Feb 15, 2010 at 01:38:16PM EST, Adam Vogt wrote:
* On Monday, February 15 2010, Chris Jones wrote:
[..]
Obviously not for me to have a say in this, but I'd much prefer folks who have mastered this stuff wrote a detailed manual on xmonad configuration.
CJ
Hello Chris,
Hello Adam,
What is missing from the present documentation that you would like to see in this detailed manual?
I think that if I was able to provide a useful answer to your question, I should already be on my way to writing the manual. :-) Seriously.. here's the context: Over the years, I have toned down my current window manager of choice's functionalities to a barebones environment that does what I need and nothing else.. namely: 1. provide multiple workspaces 2. let me bind a few keyboard actions to launching frequently used applications, mainly 256-color xterms and differently configured instances of GNU screen 3. binding keys to navigating workspaces Naturally, I wanted to do the same thing in xmonad, which once I had tried it out of the box basically amounted to changing default workspace navigation keybindings and adjusting the terminal definition. One additional requirement, something I do not have in my current window manager setup was to have xmonad display stuff I like to keep an eye on at all times, such as CPU temperature, CPU%, mem%, swap%, network RX/TX, as well as the current date and time and outside temperature as recorded by my local weather station. I was not planning on anything fancy, just numbers, pretty much what I have implemented via short home-grown scripts in my current GNU/screen environment, but with one important difference: With my current setup, each instance of GNU/screen runs separate instances of my monitoring scripts, which is not optimal. So my needs were very modest indeed, and after a bit of digging, some copy-pasting and the usual trial and error cycles, I was able to pretty much set up the above environment in xmonad without bothering anybody here or on the IRC channel with questions you folks must have already answered hundreds of times. All the same, I have the following observations: 1. It would have been much better if I had been able to work with a document that walked me through the above configuration instead of having to dig for it in various places. 2. At this point, I have a file called xmonad.hs, that appears to do what I want, but since it was created by copy-pasting other users' configuration files, I have only a very vague idea how it does it. For instance, I have the following: ------------------------------------------------------------------------ import XMonad import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Util.Run(spawnPipe) import XMonad.Util.EZConfig(additionalKeys) import System.IO ------------------------------------------------------------------------ What does this do? Why do I need it? Do I really need this? all of it? And further down: ------------------------------------------------------------------------ main = do xmproc <- spawnPipe "/usr/bin/xmobar /home/me/.xmobarrc" xmonad $ defaultConfig { manageHook = manageDocks <+> myManageHook <+> manageHook defaultConfig ... ------------------------------------------------------------------------ Same questions, basically.. And also what's a '$'.. what's a '<+>'.. Don't take me wrong, I am not being critical, I got xmonad to basically do what I need with possibly less frustration than if I was configure supposedly user-friendly desktops such as gnome, kde, etc. I was mainly wondering if it might be possible to have a document that takes a user who has little or no programming experience, and no prior knowledge of Haskell, just some fluency with an editor and the keyboard, and make configuring xmonad a meaningful experience, giving said user at least a general idea of what he is doing and why he needs to do it, rather than giving him a feeling that he's taken a dive into a dark pit, should count his blessings he's still alive but has come out none the wiser. No question that there are probably other new users out there who might want to set up something a bit more fun, with additional functionality, and maybe some eye candy and bells and whistles I have no use for. And it's true that the FAQ in particular does at least partially answer quite a few questions regarding individual practical aspects of the configuration, but they are all pretty much in terms of "copy-paste" the following two lines to xmonad.hs and hit mod+q. I know too little to be in a position to answer the question: is it possible to write such a document, and what would form it could take.. maybe it would turn out to be a short Haskell tutorial focusing on what parts of the language are necessary to configure xmonad? As stated before, I don't think a new user like me can speculate about this but what I do see is that in this same thread, using somewhat different terms, Ralph Hofmann, one other recent newcomer pretty much felt the same about the current documentation, it's basically OK, "aber etwas fehlt" (something is missing). I do wish I could be a little more specific, but as hinted above, if I could clearly identify what's missing, I probably have all the answers already: I'm pretty much in the position of the caveman who vaguely suspects that there ought to be a quicker better way to pay a visit to his cousins in the neighboring valley than trudging barefoot through mounds of snow, but unfortunately for him, it's another 30,000 years before someone more knowledgeable decides it's time to invent the snowmobile. Thanks, CJ

On Tue, Feb 16, 2010 at 3:12 AM, Chris Jones
On Mon, Feb 15, 2010 at 01:38:16PM EST, Adam Vogt wrote:
* On Monday, February 15 2010, Chris Jones wrote:
[..]
Obviously not for me to have a say in this, but I'd much prefer folks who have mastered this stuff wrote a detailed manual on xmonad configuration.
CJ
Hello Chris,
Hello Adam,
What is missing from the present documentation that you would like to see in this detailed manual?
I think that if I was able to provide a useful answer to your question, I should already be on my way to writing the manual. :-)
Seriously.. here's the context:
Over the years, I have toned down my current window manager of choice's functionalities to a barebones environment that does what I need and nothing else.. namely:
1. provide multiple workspaces
2. let me bind a few keyboard actions to launching frequently used applications, mainly 256-color xterms and differently configured instances of GNU screen
3. binding keys to navigating workspaces
Naturally, I wanted to do the same thing in xmonad, which once I had tried it out of the box basically amounted to changing default workspace navigation keybindings and adjusting the terminal definition.
One additional requirement, something I do not have in my current window manager setup was to have xmonad display stuff I like to keep an eye on at all times, such as CPU temperature, CPU%, mem%, swap%, network RX/TX, as well as the current date and time and outside temperature as recorded by my local weather station.
I was not planning on anything fancy, just numbers, pretty much what I have implemented via short home-grown scripts in my current GNU/screen environment, but with one important difference:
With my current setup, each instance of GNU/screen runs separate instances of my monitoring scripts, which is not optimal.
So my needs were very modest indeed, and after a bit of digging, some copy-pasting and the usual trial and error cycles, I was able to pretty much set up the above environment in xmonad without bothering anybody here or on the IRC channel with questions you folks must have already answered hundreds of times.
All the same, I have the following observations:
1. It would have been much better if I had been able to work with a document that walked me through the above configuration instead of having to dig for it in various places.
2. At this point, I have a file called xmonad.hs, that appears to do what I want, but since it was created by copy-pasting other users' configuration files, I have only a very vague idea how it does it.
For instance, I have the following:
------------------------------------------------------------------------ import XMonad import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Util.Run(spawnPipe) import XMonad.Util.EZConfig(additionalKeys) import System.IO ------------------------------------------------------------------------
What does this do? Why do I need it? Do I really need this? all of it?
And further down:
------------------------------------------------------------------------ main = do xmproc <- spawnPipe "/usr/bin/xmobar /home/me/.xmobarrc" xmonad $ defaultConfig { manageHook = manageDocks <+> myManageHook <+> manageHook defaultConfig ... ------------------------------------------------------------------------
Hold on. Didn't you earlier write that
xmonad 0.8 as shipped by debian squeeze let me do everything I needed without additional customization.
That seems like both customization & usage of -contrib modules (at least 4 of them). What then did you mean earlier? -- gwern

On Tue, Feb 16, 2010 at 09:25:37AM EST, Gwern Branwen wrote:
On Tue, Feb 16, 2010 at 3:12 AM, Chris Jones
wrote:
[..]
Hold on. Didn't you earlier write that
xmonad 0.8 as shipped by debian squeeze let me do everything I needed without additional customization.
That seems like both customization & usage of -contrib modules (at least 4 of them). What then did you mean earlier?
Yes, that was earlier. But then, I figured that creating an xmonad.hs file specifying a terminal definition of 'xterm -tn xterm-256color' was cleaner than adding setting/exporting the TERM environment variable in my .bash_profile. Likewise, as described in my previous message, I have written a few short scripts that use GNU/screen's hard status line to display system monitoring information, the current date/time & outside temperature. This works regardless of the window manager, but having xmobar display the same data would be a better solution. I did not have to do any of that to have a perfectly workable environment. Just a couple of minor tweaks to improve on my current setup was all I changed from the default configuration. In other words, I reiterate that where I'm concerned: "xmonad 0.8 as shipped by debian squeeze let me do everything I needed without additional customization." Regarding "usage of -contrib modules.." I assume you mean the import statements? As stated in my previous message, I have absolutely no clue what these are for, what they do, whether I need them, and if so, why.. etc. I believe I copy-pasted them from John Goertzen's excellent step by step tutorial on how to integrate xmobar to xmonad. Since I have to boot to a different partition/system to configure xmobar, and since everything was working the way I wanted, I didn't look into these aspects further. I am pretty sure I could remove most of the stuff in the configuration file, but I have not been able to locate a detailed manual -- step by step is another good way to put it -- that describes what exactly I am supposed to do to configure xmonad. Which was precisely the object of my previous message. CJ

As a still new user, who is trying to find his way, i think it is very good to start with a very simple default configuration. But there is some kind of a gap between the defaults and the highly individualized configs, that can be found by searching the internet. As a new user, you are a little bit lost in this gap. It could be filled by config examples, which each of them would cover a certain topic. For instance the topic "layout" could be covered by a xmonad.hs, that contains a series of layouts, which can be tested by commenting them in and out. Another topic could be "dock handling". Another one "key and mouse configuration" and so on. The examples should cover only the topic and nothing else. I think this would be very helpful to get new users started. Regards Ralph Am Donnerstag, den 11.02.2010, 23:06 -0600 schrieb Spencer Janssen:
I don't see the point of adding another package, what problem does it really solve? Some of the arguments for adding a third package border on intellectual dishonesty: we can't claim that xmonad is the same minimal window manager if we quadruple the lines of code used in the default configuration.
I'd like to see concrete suggestions of what ought to be added if we made this xmonad/core/contrib split.
Regarding "sane defaults", I think there are just a few things that need to be added to xmonad proper: - Full screen windows - ICCCM focus protocol/make Java work - Handling of a few window types: dock, desktop, etc. - Status bar without editing xmonad.hs (current plan is to do this via EWMH)
Each of these could be added to the xmonad we know now without changing packaging policy.
Cheers, Spencer Janssen _______________________________________________ xmonad mailing list xmonad@haskell.org http://www.haskell.org/mailman/listinfo/xmonad

On Fri, Feb 12, 2010 at 12:06 AM, Spencer Janssen
I don't see the point of adding another package, what problem does it really solve? Some of the arguments for adding a third package border on intellectual dishonesty: we can't claim that xmonad is the same minimal window manager if we quadruple the lines of code used in the default configuration.
If we're going to throw around phrases like 'intellectual dishonesty', then I submit that presenting the current xmonad-core as anything more than a demo is dishonest. Does anyone use xmonad-core without any customizations? Or without anything from xmonad-contrib? For that matter, I see people in #haskell who still think xmonad-core is ~500 lines. Is it dishonest that http://www.cse.unsw.edu.au/~dons/code/xmonad-web/ still says ~500? Even adding in all the suggestions, the new xmonad will still be minimalistic compared to most every WM, if not xmonad-core. Any claim about 'the same minimal window manager' will be just as true with a simple s/xmonad/xmonad-core/.
I'd like to see concrete suggestions of what ought to be added if we made this xmonad/core/contrib split.
Regarding "sane defaults", I think there are just a few things that need to be added to xmonad proper: - Full screen windows - ICCCM focus protocol/make Java work - Handling of a few window types: dock, desktop, etc. - Status bar without editing xmonad.hs (current plan is to do this via EWMH)
Each of these could be added to the xmonad we know now without changing packaging policy.
Cheers, Spencer Janssen
If they really could be added so easily, then why haven't they? Some of those may be unpolished, but others are old. In the same email, you complain about the dishonesty of quadrupling the codebase and then suggest adding those specific ones in; aren't those non-minimalistic too? -- gwern

On Fri, Feb 12, 2010 at 03:55:08PM EST, Gwern Branwen wrote:
On Fri, Feb 12, 2010 at 12:06 AM, Spencer Janssen
wrote:
I don't see the point of adding another package, what problem does it really solve? Some of the arguments for adding a third package border on intellectual dishonesty: we can't claim that xmonad is the same minimal window manager if we quadruple the lines of code used in the default configuration.
If we're going to throw around phrases like 'intellectual dishonesty', then I submit that presenting the current xmonad-core as anything more than a demo is dishonest. Does anyone use xmonad-core without any customizations? Or without anything from xmonad-contrib?
I'm a newcomer to xmonad, with no knowledge of Haskell. xmonad 0.8 as shipped by debian squeeze let me do everything I needed without additional customization. It took my fingers about an hour to learn the well-thought out default keyboard actions and in terms of window and workspace mangement, there was absolutely nothing I wasn't able to do more efficiently than on any desktop or WM I have tried so far. Minimal customization: 1. I changed the terminal to 'xterm -u8 -tn xterm-256color' 2. I added a minimal xmobar: date, CPU%, THRM, weather, %mem, %swap But I could have lived without these. I can't think of anything that needs to be added to the minimal xmonad configuration. Just the impressions & opinions of s/o new to xmonad. CJ

On 13 February 2010 07:55, Gwern Branwen
If we're going to throw around phrases like 'intellectual dishonesty', then I submit that presenting the current xmonad-core as anything more than a demo is dishonest. Does anyone use xmonad-core without any customizations? Or without anything from xmonad-contrib?
I've helped some people on #xmonad get XMonad working on its own without -contrib... -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com Samuel Goldwyn - "I'm willing to admit that I may not always be right, but I am never wrong." - http://www.brainyquote.com/quotes/authors/s/samuel_goldwyn.html

spencerjanssen:
I don't see the point of adding another package, what problem does it really solve? Some of the arguments for adding a third package border on intellectual dishonesty: we can't claim that xmonad is the same minimal window manager if we quadruple the lines of code used in the default configuration.
I'd like to see concrete suggestions of what ought to be added if we made this xmonad/core/contrib split.
Regarding "sane defaults", I think there are just a few things that need to be added to xmonad proper: - Full screen windows - ICCCM focus protocol/make Java work - Handling of a few window types: dock, desktop, etc. - Status bar without editing xmonad.hs (current plan is to do this via EWMH)
Each of these could be added to the xmonad we know now without changing packaging policy.
I also agree: adding these to the core is the sensible thing. Originally the idea was that xmonad-the-core was what Spencer and I ran without any configuration. If that's not the case anymore, we should add some things to the core. These look like a sensible list of things. -- Don
participants (9)
-
Adam Vogt
-
Chris Jones
-
Don Stewart
-
Gwern Branwen
-
Ivan Lazar Miljenovic
-
Ivan Miljenovic
-
Ralph Hofmann
-
Spencer Janssen
-
wagnerdm@seas.upenn.edu