Call for xmonad.hs

Hi everyone. So a while ago we were discussing how to improve defaults and what sorts of types and functions XM and XMC could provide which encapsulate common behavior, when Devon asked me what exactly I saw being repeated (besides the 2 or 3 examples I provided), and it occurred to me that I really didn't know. There're ~30 xmonad.hs's here http://haskell.org/haskellwiki/Xmonad/Config_archive, but perhaps 1/3 to 1/2 are obsolete or don't compile with darcs XM/XMC (at a very rough guess). I'd like more. So here's what I would greatly appreciate everyone doing: 1) Upload your config 2) If you've uploaded your config, update it! 3) If you use someone else's config, why not mention it? I'd appreciate knowing who's using what, so I can count the popular configurations proportionately* 4) If you don't want to do any of 1-3, perhaps you could email me privately with your config? Thanks in advance all. * I think it's fair to say that if 10 people are using a particular xmonad.hs, and there's a simplification which could be made, that change should count 10x -- gwern ANZUS nuclear Lebed .ch Domination .tm top Amherst USSS Hugo

gwern0:
Hi everyone. So a while ago we were discussing how to improve defaults and what sorts of types and functions XM and XMC could provide which encapsulate common behavior, when Devon asked me what exactly I saw being repeated (besides the 2 or 3 examples I provided), and it occurred to me that I really didn't know.
There're ~30 xmonad.hs's here http://haskell.org/haskellwiki/Xmonad/Config_archive, but perhaps 1/3 to 1/2 are obsolete or don't compile with darcs XM/XMC (at a very rough guess). I'd like more. So here's what I would greatly appreciate everyone doing: 1) Upload your config 2) If you've uploaded your config, update it! 3) If you use someone else's config, why not mention it? I'd appreciate knowing who's using what, so I can count the popular configurations proportionately* 4) If you don't want to do any of 1-3, perhaps you could email me privately with your config?
Thanks in advance all.
Here's mine. import XMonad import XMonad.Hooks.DynamicLog import XMonad.Util.EZConfig import XMonad.Prompt import XMonad.Prompt.RunOrRaise import XMonad.Hooks.SetWMName main = do conf <- dzen defaultConfig xmonad $ conf { terminal = "term" , startupHook = setWMName "LG3D" } `additionalKeys` [ ((modMask conf , xK_p), runOrRaisePrompt defaultXPConfig { position = Top })] -- Don

On 2008.10.18 18:37:49 -0700, Don Stewart
Here's mine.
import XMonad import XMonad.Hooks.DynamicLog import XMonad.Util.EZConfig import XMonad.Prompt import XMonad.Prompt.RunOrRaise import XMonad.Hooks.SetWMName
main = do conf <- dzen defaultConfig xmonad $ conf { terminal = "term" , startupHook = setWMName "LG3D" } `additionalKeys` [ ((modMask conf , xK_p), runOrRaisePrompt defaultXPConfig { position = Top })]
-- Don
Thanks. I've added it to my collection. -- gwern ASIO rounds PCS Underground Pox rockets 5.0i HPCC P415 NSDD

Hi, Am Samstag, den 18.10.2008, 21:35 -0400 schrieb Gwern Branwen:
There're ~30 xmonad.hs's here http://haskell.org/haskellwiki/Xmonad/Config_archive, but perhaps 1/3 to 1/2 are obsolete or don't compile with darcs XM/XMC (at a very rough guess). I'd like more.
I can help with that. Do you want more type-check errors, or more syntax erors? (SCNR)
So here's what I would greatly appreciate everyone doing: 1) Upload your config 2) If you've uploaded your config, update it! 3) If you use someone else's config, why not mention it? I'd appreciate knowing who's using what, so I can count the popular configurations proportionately* 4) If you don't want to do any of 1-3, perhaps you could email me privately with your config?
Thanks in advance all.
* I think it's fair to say that if 10 people are using a particular xmonad.hs, and there's a simplification which could be made, that change should count 10x
Done, http://haskell.org/haskellwiki/Xmonad/Config_archive/nomeata%E2%80%99s_xmona... Greetings, Joachim -- Joachim Breitner e-Mail: mail@joachim-breitner.de Homepage: http://www.joachim-breitner.de ICQ#: 74513189 Jabber-ID: nomeata@joachim-breitner.de

On 2008.10.19 14:13:49 +0200, Joachim Breitner
Hi,
Am Samstag, den 18.10.2008, 21:35 -0400 schrieb Gwern Branwen:
There're ~30 xmonad.hs's here http://haskell.org/haskellwiki/Xmonad/Config_archive, but perhaps 1/3 to 1/2 are obsolete or don't compile with darcs XM/XMC (at a very rough guess). I'd like more.
I can help with that. Do you want more type-check errors, or more syntax erors?
(SCNR)
For most of them, it looks like they're just out-of-date. My count includes a bunch of xmonad.hses which never jumped from 0.4 to 0.5, and obviously from 0.5 to darcs there've been any number of API changes which break them. I'm not sure whether it's worthwhile to update them - if they're not being updated by their user, it's reasonable to infer the user is no longer using XMonad (in which case they aren't useful in considering how to make XMonad users' lives easier) or are using a different config (and then obviously we should care less about a configuration even its creator doesn't want to use).
So here's what I would greatly appreciate everyone doing: 1) Upload your config 2) If you've uploaded your config, update it! 3) If you use someone else's config, why not mention it? I'd appreciate knowing who's using what, so I can count the popular configurations proportionately* 4) If you don't want to do any of 1-3, perhaps you could email me privately with your config?
Thanks in advance all.
* I think it's fair to say that if 10 people are using a particular xmonad.hs, and there's a simplification which could be made, that change should count 10x
Done, http://haskell.org/haskellwiki/Xmonad/Config_archive/nomeata%E2%80%99s_xmona...
Greetings, Joachim
Great, thanks. I'm currently not sure whether I'm going to manually download all those configs, or whether I'll do something like put them all into a [[Category:Xmonad.hs]] and then use Pywikipedia to download the wikitext (and then filter out the <haskell></haskell> tags). -- gwern ASIO rounds PCS Underground Pox rockets 5.0i HPCC P415 NSDD

gwern0:
On 2008.10.19 14:13:49 +0200, Joachim Breitner
scribbled 1.9K characters: Hi,
Am Samstag, den 18.10.2008, 21:35 -0400 schrieb Gwern Branwen:
There're ~30 xmonad.hs's here http://haskell.org/haskellwiki/Xmonad/Config_archive, but perhaps 1/3 to 1/2 are obsolete or don't compile with darcs XM/XMC (at a very rough guess). I'd like more.
I can help with that. Do you want more type-check errors, or more syntax erors?
(SCNR)
For most of them, it looks like they're just out-of-date. My count includes a bunch of xmonad.hses which never jumped from 0.4 to 0.5, and obviously from 0.5 to darcs there've been any number of API reasonable to infer the user is no longer using XMonad (in which case they aren't useful in considering how to make XMonad users' lives easier) or are using a different config (and then obviously we should care less about a configuration even its creator doesn't want to use).
If they're not type correct, moved them to an 'Old' subpage? -- Don

On 2008.10.19 13:02:39 -0700, Don Stewart
gwern0:
On 2008.10.19 14:13:49 +0200, Joachim Breitner
scribbled 1.9K characters: Hi,
Am Samstag, den 18.10.2008, 21:35 -0400 schrieb Gwern Branwen:
There're ~30 xmonad.hs's here http://haskell.org/haskellwiki/Xmonad/Config_archive, but perhaps 1/3 to 1/2 are obsolete or don't compile with darcs XM/XMC (at a very rough guess). I'd like more.
I can help with that. Do you want more type-check errors, or more syntax erors?
(SCNR)
For most of them, it looks like they're just out-of-date. My count includes a bunch of xmonad.hses which never jumped from 0.4 to 0.5, and obviously from 0.5 to darcs there've been any number of API reasonable to infer the user is no longer using XMonad (in which case they aren't useful in considering how to make XMonad users' lives easier) or are using a different config (and then obviously we should care less about a configuration even its creator doesn't want to use).
If they're not type correct, moved them to an 'Old' subpage?
-- Don
I think having a <0.5 subpage certainly makes sense; there's a very big difference between pre and post- there. (Going from 0.5 to darcs might just involve messing around with some imports and names for many configs, but for 0.4 to 0.5 you'd need to rewrite the danged thing.) It might even be a good idea to in this way mildly discourage spreading of old configs. (upgrade already, sheesh!) And the rest? I dunno, perhaps a second subpage for 0.5 >= x >= 0.8, or perhaps by version. -- gwern SALDV Aum enigma remailers embassy NATIA in Armani Sayeret

On Sun, Oct 19, 2008 at 4:02 PM, Don Stewart
gwern0:
On 2008.10.19 14:13:49 +0200, Joachim Breitner
scribbled 1.9K characters: Hi,
Am Samstag, den 18.10.2008, 21:35 -0400 schrieb Gwern Branwen:
There're ~30 xmonad.hs's here http://haskell.org/haskellwiki/Xmonad/Config_archive, but perhaps 1/3 to 1/2 are obsolete or don't compile with darcs XM/XMC (at a very rough guess). I'd like more.
I can help with that. Do you want more type-check errors, or more syntax erors?
(SCNR)
For most of them, it looks like they're just out-of-date. My count includes a bunch of xmonad.hses which never jumped from 0.4 to 0.5, and obviously from 0.5 to darcs there've been any number of API reasonable to infer the user is no longer using XMonad (in which case they aren't useful in considering how to make XMonad users' lives easier) or are using a different config (and then obviously we should care less about a configuration even its creator doesn't want to use).
If they're not type correct, moved them to an 'Old' subpage?
-- Don
Followup: OK, so as everyone can see, I've gone through the config archive and checked everything in GHCi. I've moved everything that didn't compile into http://haskell.org/haskellwiki/Xmonad/Config_archive#Old_configurations. This isn't a subpage, but a subsection. (Of course, with things split out like that, it certainly would be easy to make it a subpage if desired.) In total, there were 20 configurations that worked. Including 1 I was sent privately, that makes 21 to work with. There were many which didn't work; some for odd reasons. Sereven's failed because some sort of prompt theme was defined but not used; 2 failed because a constant inadvertently had come to clash with a function (I fixed those); and a good 4 or 5 broke because of the defaultGaps move and related changes. Later I'll take a look at them and see what commonalities I see. Offhand, 'cat *|sort|uniq -c|sort' turns out some surprising results: 3 import Data.Ratio ((%)) 3 import Graphics.X11 3 import XMonad.Actions.SwapWorkspaces 3 import XMonad.Hooks.SetWMName 3 import XMonad.Layout.Gaps 3 import XMonad.Layout.WindowNavigation 3 import XMonad.Operations 3 main = xmonad $ defaultConfig 3 myManageHook = composeAll 4 import qualified Data.Map as M 4 import System.IO (hPutStrLn) 4 import XMonad.Actions.UpdatePointer 4 import XMonad.Hooks.EwmhDesktops 4 import XMonad.Util.Run 4 import XMonad.Util.Run (spawnPipe) 5 import Data.Bits ((.|.)) 5 import Data.Ratio 5 import XMonad.Actions.Submap 5 import XMonad.Layout 5 import XMonad.Layout.TwoPane 6 import System.Exit 6 import XMonad.Actions.CycleWS 6 import XMonad.Actions.DwmPromote 6 import XMonad.Layout.Tabbed 7 import System.IO 7 import XMonad.Hooks.UrgencyHook 7 import XMonad.Prompt.Shell 7 import XMonad.Prompt.Ssh 8 import XMonad.Hooks.DynamicLog 8 import XMonad.Util.EZConfig 9 import XMonad.Layout.NoBorders Looks to me perhaps the calls to make NoBorders a default are sensible. Also, 16 of the 21 configs use Data.Map in some capacity, which is interesting. -- gwern

gwern0:
Followup: OK, so as everyone can see, I've gone through the config archive and checked everything in GHCi.
I've moved everything that didn't compile into http://haskell.org/haskellwiki/Xmonad/Config_archive#Old_configurations. This isn't a subpage, but a subsection. (Of course, with things split out like that, it certainly would be easy to make it a subpage if desired.)
In total, there were 20 configurations that worked. Including 1 I was sent privately, that makes 21 to work with. There were many which didn't work; some for odd reasons. Sereven's failed because some sort of prompt theme was defined but not used; 2 failed because a constant inadvertently had come to clash with a function (I fixed those); and a good 4 or 5 broke because of the defaultGaps move and related changes.
Good work!
Later I'll take a look at them and see what commonalities I see. Offhand, 'cat *|sort|uniq -c|sort' turns out some surprising results:
3 import Data.Ratio ((%)) 3 import Graphics.X11 3 import XMonad.Actions.SwapWorkspaces 3 import XMonad.Hooks.SetWMName 3 import XMonad.Layout.Gaps 3 import XMonad.Layout.WindowNavigation 3 import XMonad.Operations 3 main = xmonad $ defaultConfig 3 myManageHook = composeAll 4 import qualified Data.Map as M 4 import System.IO (hPutStrLn) 4 import XMonad.Actions.UpdatePointer 4 import XMonad.Hooks.EwmhDesktops 4 import XMonad.Util.Run 4 import XMonad.Util.Run (spawnPipe) 5 import Data.Bits ((.|.)) 5 import Data.Ratio 5 import XMonad.Actions.Submap 5 import XMonad.Layout 5 import XMonad.Layout.TwoPane 6 import System.Exit 6 import XMonad.Actions.CycleWS 6 import XMonad.Actions.DwmPromote 6 import XMonad.Layout.Tabbed 7 import System.IO 7 import XMonad.Hooks.UrgencyHook 7 import XMonad.Prompt.Shell 7 import XMonad.Prompt.Ssh 8 import XMonad.Hooks.DynamicLog 8 import XMonad.Util.EZConfig 9 import XMonad.Layout.NoBorders
Looks to me perhaps the calls to make NoBorders a default are sensible. Also, 16 of the 21 configs use Data.Map in some capacity, which is interesting.
*VERY* interesting data. And great vision to think of this Gwern! Might be time to revisit the defaults. Especially if we can gather more configs. -- Don

Excellent, the noborders extension is practically a must in every configuration, also I think DynamicLog could be in core, who whats a WM with no Worspace names, urgent hints or another things? That could attract more users that only use Haskell for this great WM (i'm on the road of fixing that :) ) I'll use this to ask for and old doubt of mine, what's the difference between DwmPromote and Promote?? void in the Xmonad Wiki, my configuration: http://www.haskell.org/haskellwiki/Xmonad/Config_archive/void's_xmonad.hs and BTW: why is it in the old configuration archive?? byebye! On Fri, Oct 31, 2008 at 08:19:27PM -0400, Gwern Branwen wrote:
On Sun, Oct 19, 2008 at 4:02 PM, Don Stewart
wrote: gwern0:
On 2008.10.19 14:13:49 +0200, Joachim Breitner
scribbled 1.9K characters: Hi,
Am Samstag, den 18.10.2008, 21:35 -0400 schrieb Gwern Branwen:
There're ~30 xmonad.hs's here http://haskell.org/haskellwiki/Xmonad/Config_archive, but perhaps 1/3 to 1/2 are obsolete or don't compile with darcs XM/XMC (at a very rough guess). I'd like more.
I can help with that. Do you want more type-check errors, or more syntax erors?
(SCNR)
For most of them, it looks like they're just out-of-date. My count includes a bunch of xmonad.hses which never jumped from 0.4 to 0.5, and obviously from 0.5 to darcs there've been any number of API reasonable to infer the user is no longer using XMonad (in which case they aren't useful in considering how to make XMonad users' lives easier) or are using a different config (and then obviously we should care less about a configuration even its creator doesn't want to use).
If they're not type correct, moved them to an 'Old' subpage?
-- Don
Followup: OK, so as everyone can see, I've gone through the config archive and checked everything in GHCi.
I've moved everything that didn't compile into http://haskell.org/haskellwiki/Xmonad/Config_archive#Old_configurations. This isn't a subpage, but a subsection. (Of course, with things split out like that, it certainly would be easy to make it a subpage if desired.)
In total, there were 20 configurations that worked. Including 1 I was sent privately, that makes 21 to work with. There were many which didn't work; some for odd reasons. Sereven's failed because some sort of prompt theme was defined but not used; 2 failed because a constant inadvertently had come to clash with a function (I fixed those); and a good 4 or 5 broke because of the defaultGaps move and related changes.
Later I'll take a look at them and see what commonalities I see. Offhand, 'cat *|sort|uniq -c|sort' turns out some surprising results:
3 import Data.Ratio ((%)) 3 import Graphics.X11 3 import XMonad.Actions.SwapWorkspaces 3 import XMonad.Hooks.SetWMName 3 import XMonad.Layout.Gaps 3 import XMonad.Layout.WindowNavigation 3 import XMonad.Operations 3 main = xmonad $ defaultConfig 3 myManageHook = composeAll 4 import qualified Data.Map as M 4 import System.IO (hPutStrLn) 4 import XMonad.Actions.UpdatePointer 4 import XMonad.Hooks.EwmhDesktops 4 import XMonad.Util.Run 4 import XMonad.Util.Run (spawnPipe) 5 import Data.Bits ((.|.)) 5 import Data.Ratio 5 import XMonad.Actions.Submap 5 import XMonad.Layout 5 import XMonad.Layout.TwoPane 6 import System.Exit 6 import XMonad.Actions.CycleWS 6 import XMonad.Actions.DwmPromote 6 import XMonad.Layout.Tabbed 7 import System.IO 7 import XMonad.Hooks.UrgencyHook 7 import XMonad.Prompt.Shell 7 import XMonad.Prompt.Ssh 8 import XMonad.Hooks.DynamicLog 8 import XMonad.Util.EZConfig 9 import XMonad.Layout.NoBorders
Looks to me perhaps the calls to make NoBorders a default are sensible. Also, 16 of the 21 configs use Data.Map in some capacity, which is interesting.
-- gwern _______________________________________________ xmonad mailing list xmonad@haskell.org http://www.haskell.org/mailman/listinfo/xmonad

On Fri, Oct 31, 2008 at 9:33 PM, Ismael Carnales
Excellent, the noborders extension is practically a must in every configuration,
Yes, I think this has been suggested before. IIRC, the reason that it was rejected from core was that it would confuse Xinerama users (who need to know which of the hypothetically-fullscreen'd monitors is the focused one). I don't think that this is a great reason - surely it could be reasonably easily modified to be a null-op in the case where multiple monitors are actually being used?
also I think DynamicLog could be in core, who whats a WM with no Worspace names, urgent hints or another things? That could attract more users that only use Haskell for this great WM (i'm on the road of fixing that :) )
I'll use this to ask for and old doubt of mine, what's the difference between DwmPromote and Promote??
void in the Xmonad Wiki, my configuration: http://www.haskell.org/haskellwiki/Xmonad/Config_archive/void's_xmonad.hs and BTW: why is it in the old configuration archive??
byebye!
I'm not sure why; I must've made a mistake and thought that it didn't compile with 0.8, but I just checked it again and it does seem to work. -- gwern

On Sat, 2008/11/01 15:29:49 -0400, Gwern Branwen wrote:
Yes, I think this has been suggested before. IIRC, the reason that it was rejected from core was that it would confuse Xinerama users (who need to know which of the hypothetically-fullscreen'd monitors is the focused one). I don't think that this is a great reason - surely it could be reasonably easily modified to be a null-op in the case where multiple monitors are actually being used?
smartBorders generally is a no-op if there are multiple screens. I was rather pleased when I discovered that (I didn’t start using smartBorders when I first heard of it because I thought it wouldn’t work with multiple screens. I later decided to fix smartBorders, but when I looked at the source I saw it was already fixed!) I don’t use floating windows (such as full-screen floating Mplayer), though, so it might remove their borders even with multiple screens.

On Fri, 2008/10/31 23:33:17 -0200, Ismael Carnales wrote:
I'll use this to ask for and old doubt of mine, what's the difference between DwmPromote and Promote??
Say you have six windows, and the fifth is focused: abcdEf. If you use dwmPromote, the order will become Ebcdaf. If you use promote, the order will becom Eabcdf.

Thanks for the explanation, this should be in the documentation of the modules with the letters examples (really nice graphical interpretation ;) ) bye On Mon, Nov 03, 2008 at 11:39:27AM -0600, lithis wrote:
On Fri, 2008/10/31 23:33:17 -0200, Ismael Carnales wrote:
I'll use this to ask for and old doubt of mine, what's the difference between DwmPromote and Promote??
Say you have six windows, and the fifth is focused: abcdEf. If you use dwmPromote, the order will become Ebcdaf. If you use promote, the order will becom Eabcdf. _______________________________________________ xmonad mailing list xmonad@haskell.org http://www.haskell.org/mailman/listinfo/xmonad

On Sun, Oct 19, 2008 at 03:59:07PM -0400, Gwern Branwen wrote:
I'm not sure whether it's worthwhile to update them - if they're not being updated by their user, it's reasonable to infer the user is no longer using XMonad
I disagree. I use xmonad everyday on three different machines and wouldn't trade it for anything. But my config in the archive is woefully out of date. I'll take this as a prompt to jump over and update mine...
(in which case they aren't useful in considering how to make XMonad users' lives easier)
that follows.
or are using a different config (and then obviously we should care less about a configuration even its creator doesn't want to use).
the assumption that the user doesn't use the config is just wrong, IMVHO. It turns out for me, really, the system is so stable and usable, once tweaked to a reasonably pleasant default, that there is no need to change. I only started using AvoidStruts (or whatever it's called) the just the other day because of an unrelated change to my config which broke my xmonad.hs because defaultGaps wasn't around anymore. That config hadn't been rebuilt in *months* at least. I missed a couple of upgrades, at least, because what I had _just worked_. I think one of the signs of the success of a product is that certain subsets of the user population *stop* upgrading. Not because they aren't using the product, but because the product fits their needs to a level where it's just a tool and no longer a new thing that needs to be maintained. tribute to xmonad ;)
So here's what I would greatly appreciate everyone doing: 1) Upload your config 2) If you've uploaded your config, update it!
will do. thanks for the reminder! A

On 2008.10.19 15:08:01 -0700, Andrew Sackville-West
On Sun, Oct 19, 2008 at 03:59:07PM -0400, Gwern Branwen wrote:
I'm not sure whether it's worthwhile to update them - if they're not being updated by their user, it's reasonable to infer the user is no longer using XMonad
I disagree. I use xmonad everyday on three different machines and wouldn't trade it for anything. But my config in the archive is woefully out of date. I'll take this as a prompt to jump over and update mine...
Heh heh, yes, one of the reasons I want everyone to update their wiki config is so that I can make such inferences. If configs aren't very up to date in general, then that constitutes weak Bayesian evidence of use.
(in which case they aren't useful in considering how to make XMonad users' lives easier)
that follows.
or are using a different config (and then obviously we should care less about a configuration even its creator doesn't want to use).
the assumption that the user doesn't use the config is just wrong, IMVHO. It turns out for me, really, the system is so stable and usable, once tweaked to a reasonably pleasant default, that there is no need to change. I only started using AvoidStruts (or whatever it's called) the just the other day because of an unrelated change to my config which broke my xmonad.hs because defaultGaps wasn't around anymore. That config hadn't been rebuilt in *months* at least. I missed a couple of upgrades, at least, because what I had _just worked_.
This is a problem I didn't really expect (although I should've). Besides simply keeping this in mind ('for every user, expect there to be more than a few shadow users'), how does this affect us? Do we seriously need to worry about installations/users going back to, say, Debian stable? Or can we just focus on 0.8?
I think one of the signs of the success of a product is that certain subsets of the user population *stop* upgrading. Not because they aren't using the product, but because the product fits their needs to a level where it's just a tool and no longer a new thing that needs to be maintained. tribute to xmonad ;)
Well, I think XMonad itself is pretty stable alright. There doesn't seem to be much left to do - I've seen things like using XCB suggested, but that seems both a) likely to never happen*, and b) only require installation of libraries and recompilation etc., with no config changes (I guess? I'm not sure about this). XMC, though, I consider to be far from done. We don't even have compositing support, and that's an entire rich area on its own**. * since it hasn't happened yet and quite a bit of time has passed since the first discussions and attempts. Doomsday Principle and all that. ** I demand an XMC module which hooks into my household alarm system so that when my house is on fire, I can have cool 3D flames race across my screen when switching windows! -- gwern SALDV Aum enigma remailers embassy NATIA in Armani Sayeret

On Mon, Oct 20, 2008 at 11:02:25PM -0400, Gwern Branwen wrote:
On 2008.10.19 15:08:01 -0700, Andrew Sackville-West
scribbled 2.5K characters: ...
the assumption that the user doesn't use the config is just wrong, IMVHO. .... I missed a couple of upgrades, at least, because what I had _just worked_.
This is a problem I didn't really expect (although I should've). Besides simply keeping this in mind ('for every user, expect there to be more than a few shadow users'), how does this affect us? Do we seriously need to worry about installations/users going back to, say, Debian stable? Or can we just focus on 0.8?
I think it is reasonable to organize the configs into separate pages or sections for darcs, current release, previous releases. The reality is that *some* people will be using older versions, no matter what you do. And with xmonad in more and more distributions, that problem will just grow. Catering to those folks who don't want to wander too far from their base distro by archiving config samples for older versions make sense, to me. Also, an archive of configs and (hopefully) screenshots provides a nice little bit of history. All that said, just keeping the shadow users in mind is probably adequate.
** I demand an XMC module which hooks into my household alarm system ** so that when my house is on fire, I can have cool 3D flames race ** across my screen when switching windows!
That's just what I want! The *last* time my house was on fire I was thinking just that! ;-P A

2008/10/22 Andrew Sackville-West
I think it is reasonable to organize the configs into separate pages or sections for darcs, current release, previous releases. The reality is that *some* people will be using older versions, no matter what you do. And with xmonad in more and more distributions, that problem will just grow. Catering to those folks who don't want to wander too far from their base distro by archiving config samples for older versions make sense, to me.
Also, an archive of configs and (hopefully) screenshots provides a nice little bit of history.
All that said, just keeping the shadow users in mind is probably adequate. ... A
Andrew, how is the current system on http://haskell.org/haskellwiki/Config_archive ? I reorganized it a bit a while ago into 2 main sections, current/darcs XMonad* & older versions. It also seems to have plenty of screenshots. * Since usually the latest release isn't much out of sync with darcs, after all -- gwern

On Sat, Feb 21, 2009 at 11:31:24AM -0500, Gwern Branwen wrote:
2008/10/22 Andrew Sackville-West
: I think it is reasonable to organize the configs into separate pages or sections for darcs, current release, previous releases.
[...]
Andrew, how is the current system on http://haskell.org/haskellwiki/Config_archive ? I reorganized it a bit a while ago into 2 main sections, current/darcs XMonad* & older versions. It also seems to have plenty of screenshots.
* Since usually the latest release isn't much out of sync with * darcs, after all
looks good to me. I can see, though, that it will warrant splitting into multiple pages soon, if not already. A

xmonad 0.9.1 was released last year, as was 6.12. Presumably many people will be upgrading installations in the months to come, and hopefully we will garner ever more users. And new users and upgraders love their example xmonad.hs files! http://haskell.org/haskellwiki/Xmonad/Config_archive is a great resource for them, but great resources sometimes need some maintenance. So, it would be great if everyone with existing config files could update theirs, or if they haven't changed them, mark them with the highest version they work with (eg., '0.8.1', '0.9', 'darcs'). To set a good example, I just updated mine. If anyone wants a wiki account, I'd be happy to give them one. -- gwern

On Fri, Jan 08, 2010 at 05:30:16PM -0500, Gwern Branwen wrote:
So, it would be great if everyone with existing config files could update theirs, or if they haven't changed them, mark them with the highest version they work with (eg., '0.8.1', '0.9', 'darcs').
Annotating the 'darcs' with a date might be beneficial, as it's rather annoying to find someone referring to something as "working with HEAD" when it's half a decade old. -- Lars Viklund | zao@acc.umu.se | 070-310 47 07

(...) 1) Upload your config 2) If you've uploaded your config, update it! 3) If you use someone else's config (...) 4) If you don't want to do any of 1-3, perhaps (...)
Since I was afraid of messing the wiki, here is mine. Best, Maurício ---------------------------- module Main ( main ) where { import qualified Data.Map ; import System.Cmd ; import XMonad ; import XMonad.Layout.Tabbed ; import XMonad.StackSet ; comandoDoDmenu = "exe=`dmenu_path | dmenu` && eval \"exec $exe\"" ; executarNaInicialização = "\ \ xmodmap -e \"keycode 113 = 0xffea 0xffe8\" ; \ \ xmodmap -e \"keycode 117 = 0xffe3\" ; \ \ xmodmap -e \"keycode 106 = 0xffe4\" ; \ \ xmodmap -e \"remove lock = Caps_Lock\" ; \ \ xmodmap -e \"add mod1 = Alt_R\" ; \ \ xmodmap -e \"add mod1 = Meta_R\" ; \ \ xmodmap -e \"remove mod5 = Alt_R\" ; \ \ xset -r \ \" ; teclas conf @ ( XConfig { XMonad.modMask = modMask } ) = Data.Map.fromList $ [ ( ( modMask , xK_x ) , spawn $ XMonad.terminal conf ) , ( ( modMask , xK_d ) , spawn comandoDoDmenu ) , ( (modMask , xK_k ) , kill) , ( ( modMask , xK_space ) , windows focusDown ) , ( ( modMask , xK_t ) , withFocused $ windows . sink) ] ; main = do { system executarNaInicialização ; xmonad defaultConfig {modMask = mod4Mask , XMonad.workspaces = ["1"] , focusFollowsMouse = False , layoutHook = tabbed shrinkText defaultTConf , keys = teclas } } } ----------------------------

On Sun, Nov 2, 2008 at 10:21 AM, Mauricio
(...)
1) Upload your config 2) If you've uploaded your config, update it! 3) If you use someone else's config (...) 4) If you don't want to do any of 1-3, perhaps (...)
Since I was afraid of messing the wiki, here is mine.
Best, Maurício
----------------------------
module Main ( main ) where { import qualified Data.Map ; import System.Cmd ; import XMonad ; import XMonad.Layout.Tabbed ; import XMonad.StackSet ;
comandoDoDmenu = "exe=`dmenu_path | dmenu` && eval \"exec $exe\"" ;
executarNaInicialização = "\ \ xmodmap -e \"keycode 113 = 0xffea 0xffe8\" ; \ \ xmodmap -e \"keycode 117 = 0xffe3\" ; \ \ xmodmap -e \"keycode 106 = 0xffe4\" ; \ \ xmodmap -e \"remove lock = Caps_Lock\" ; \ \ xmodmap -e \"add mod1 = Alt_R\" ; \ \ xmodmap -e \"add mod1 = Meta_R\" ; \ \ xmodmap -e \"remove mod5 = Alt_R\" ; \ \ xset -r \ \" ;
teclas conf @ ( XConfig { XMonad.modMask = modMask } ) = Data.Map.fromList $ [ ( ( modMask , xK_x ) , spawn $ XMonad.terminal conf ) , ( ( modMask , xK_d ) , spawn comandoDoDmenu ) , ( (modMask , xK_k ) , kill) , ( ( modMask , xK_space ) , windows focusDown ) , ( ( modMask , xK_t ) , withFocused $ windows . sink) ] ;
main = do { system executarNaInicialização ; xmonad defaultConfig {modMask = mod4Mask , XMonad.workspaces = ["1"] , focusFollowsMouse = False , layoutHook = tabbed shrinkText defaultTConf , keys = teclas } }
}
----------------------------
Hmm. Perhaps I am missing something, but where is 'defaultTConf' coming from? I don't see it anywhere in this config, nor XMC nor XM. -- gwern

1) Upload your config 2) If you've uploaded your config, update it! 3) If you use someone else's config (...) 4) If you don't want to do any of 1-3, perhaps (...) Since I was afraid of messing the wiki, here is mine.
module Main ( main ) where { import qualified Data.Map ; import (...)
Hmm. Perhaps I am missing something, but where is 'defaultTConf' coming from? I don't see it anywhere in this config, nor XMC nor XM.
'defaultTConf' comes from the old Layout.Tabbed. Just updated my distribution, here is the updated xmonad.hs, with 'simpleTabbed' replacing the old stuff. I also had to change the keycodes to new values, although I don't know why they change. Best, Maurício ----------------------------------- module Main ( main ) where { import qualified Data.Map ; import System.Cmd ; import XMonad ; import XMonad.Layout.Tabbed ; import XMonad.StackSet ; comandoDoDmenu = "exe=`dmenu_path | dmenu` && eval \"exec $exe\"" ; emacs = "exec emacs" ; firefox = "exec firefox" ; thunderbird = "exec thunderbird" ; executarNaInicialização = "\ \ xmodmap -e \"keycode 108 = 0xffea 0xffe8\" ; \ \ xmodmap -e \"keycode 135 = 0xffe3\" ; \ \ xmodmap -e \"keycode 118 = 0xffe4\" ; \ \ xmodmap -e \"remove lock = Caps_Lock\" ; \ \ xmodmap -e \"add mod1 = Alt_R\" ; \ \ xmodmap -e \"add mod1 = Meta_R\" ; \ \ xmodmap -e \"remove mod5 = Alt_R\" ; \ \ xset -r \ \" ; teclas conf @ ( XConfig { XMonad.modMask = modMask } ) = Data.Map.fromList $ [ ( ( modMask , xK_x ) , spawn $ XMonad.terminal conf ) , ( ( modMask , xK_d ) , spawn comandoDoDmenu ) , ( ( modMask , xK_e ) , spawn emacs ) , ( ( modMask , xK_f ) , spawn firefox ) , ( ( modMask , xK_t ) , spawn thunderbird ) , ( (modMask , xK_k ) , kill) , ( ( modMask , xK_space ) , windows focusDown ) , ( ( modMask , xK_Return ) , withFocused $ windows . sink) ] ; main = do { system executarNaInicialização ; xmonad defaultConfig {modMask = mod4Mask , XMonad.workspaces = ["1"] , focusFollowsMouse = False , layoutHook = simpleTabbed , keys = teclas } } } -----------------------------------

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On Mon, Nov 3, 2008 at 7:09 AM, Mauricio wrote:
'defaultTConf' comes from the old Layout.Tabbed. Just updated my distribution, here is the updated xmonad.hs, with 'simpleTabbed' replacing the old stuff. I also had to change the keycodes to new values, although I don't know why they change.
Best, Maurício
Ah. Incidentally, it's easier to do basic line-by-line analysis when one's xmonad.hs is in whitespace layout than curly-braces style, so I've reformatted it. Incidentally, now 23 out of the 27 configurations import Data.Map. - -- gwern -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEAREKAAYFAkkPMJsACgkQvpDo5Pfl1oJnvQCfVQSPLFKPUdbVZ5hnA8uQzJpy 0woAn1Kygek6eg9p+qfYVUxX1Od46TeN =EHSt -----END PGP SIGNATURE-----

'defaultTConf' comes from the old Layout.Tabbed. (...)
(...) Incidentally, now 23 out of the 27 configurations import Data.Map.
I think Data.Map.fromList is necessary for writing keyboard bindings. So, maybe you can say at most 23 out of 27 configurations rebind keys. Best, Maurício

On Tue, Nov 04, 2008 at 10:39:19AM -0200, Maurício wrote:
'defaultTConf' comes from the old Layout.Tabbed. (...)
(...) Incidentally, now 23 out of the 27 configurations import Data.Map.
I think Data.Map.fromList is necessary for writing keyboard bindings. So, maybe you can say at most 23 out of 27 configurations rebind keys.
That's not entirely accurate; there are modules (like EZConfig) that abstract away the operation of rebinding keys, so you don't have to explicitly refer to Data.Map in order to rebind keys. My config does import Data.Map, but I use it in conjunction with mouse bindings and a submap, not key bindings. -Brent

Hi everyone.
So a while ago we were discussing how to improve defaults and what sorts of types and functions XM and XMC could provide which encapsulate common behavior, when Devon asked me what exactly I saw being repeated (besides the 2 or 3 examples I provided), and it occurred to me that I really didn't know. (...)
I think it's fair to say that if 10 people are using a particular xmonad.hs, and there's a simplification which could be made, that change should count 10x
I think it's usefull to tell you that: I am very satisfied with my configuration of xmonad. However, if xmonad were configured that way when I started using it, I probably would not be able to learn it.
participants (10)
-
Andrew Sackville-West
-
Brent Yorgey
-
Don Stewart
-
Gwern Branwen
-
Ismael Carnales
-
Joachim Breitner
-
Lars Viklund
-
lithis
-
Mauricio
-
Maurício