if a function name has no letters, haskell treats it as infix. so "++" is a function name, only you can say "a ++ b". (for a regular function, say "append" it would have to be: "append a b")
so its just sugar for ++(a,b) ?
in haskell you can actually write: (++) a b
the parens are to make the normally-infix function prefix
the reverse is backticks: a `append` b
edillinger: Your right about the "every programm defines it's own language". Incidentally that's what's called an edsl, an embedded domains specific language. And that's pretty amazing when you think about it.
i must be misunderstanding where this manageHook goes, could someone peek at http://pastebin.com/E54J8A0Z
i agree it can be amazing, but if you aren't very careful designing your edsl, you might end up with unreadable code
you have an extra comma in there
geheimdienst: That is always true with any source language.
no comma before manageHook ?
no, before you close the list
now it says composeOne, isFullscreen and doFullFloat are not in scope
good, that's one step forward
add "import XMonad.Hooks.ManageHelpers" at the top
nice, works now :)
and i can watch hans rosling in full screen :)
yeah, flash videos is pretty much why I wrote isFullscreen :-)
btw, bill gates posted on his blog the other day a few links to more hans rosling talks
yea? i'll have to check that out, i love his talks
here ya go http://www.thegatesnotes.com/(X(1)S(i4hswe452l40li55difghxbd))/Learning/article.aspx?ID=28&AspxAutoDetectCookieSupport=1
haven't watched them yet, but hans rosling is a great speaker
philonous, what i meant was: "isFullscreen --> doFullFloat" is imho less readable than, say, "ifMatch isFullscreen doFullFloat"
or using tuples like (condition, action) because you already know that from the key bindings
hey. anyone know how to map a keyboard key to button 2
aka, I want o press a keyboard key to paste
I have just installed xmonad from darcs, following these instructions: http://www.haskell.org/haskellwiki/Xmonad/xmonad_development_tutorial . Now if I press M-q, or if I execute "xmonad --recompile; xmonad --restart", it quits xmonad bringing me back the login page instead of reloading it
After various hattempts the problem is still there
xmonad --restart logs me off
what's xmonad --recompile say?
geheimdienst: hi again (:. xmonad --recompile runs fine, no output
any clues in .xsession-errors?
mhm I don't have an xsession-errors in my home...
your distribution might name it differently, or put it somewhere else ... check /var/log, might be in there.
geheimdienst: I can't find it. I did a quick search and it seems that on gentoo .xsession-errors should be in the home. maybe is just that I have no errors...?
or maybe my login manager is handling the thing
i'm going to disconnect now
it doesn't recognise the --restart flag...?
but then it shouldn't stop at all...
okay we're getting close. probably you have an old xmonad version which doesn't recognize --restart
I have the latest darcs version :P
I mean I have just compiled it
wait I'll try calling the exact executable
geheimdienst: no, the version is right.
if it doesn't recognize --restart, you won't make the old xmonad go away
aavogt: but it worked perfectly fine before (installed with cabal install)
then I built the darcs version and unregistered the cabal install one
run xmonad --version for me please
i just want to rule out you have 2 xmonad binaries, an old one somewhere in /usr and a new one in ~/.cabal/bin/
what's the problem with that case anyways?
geheimdienst: xmonad --version gives 0.9.1. I still have the one in .cabal but I unregistered. The new one is the one I installed with $HOME as the build prefix, as they say in that guide.
hang on a minute
could you run: "xmonad --resume blabla"?
normally, that should tell you an X protocoll error, bad access
blabla like what?
astroboy@mcnulty ~/.cabal/bin $ xmonad --resume
xmonad: user error (unrecognized flags)
doesn't matter :-) that xmonad won't run anyway
okay we're getting close i think
actually wait a second
I installed on a different prefix before
i just checked the source. when you run xmonad --restart, it does a few things and then runs "xmonad --resume stuff stuff stuff"
but that seems to be generating the log message we saw
(and it crashes, exiting X)
i still think there's an old binary somewhere which doesn't recognize the --resume flag
just a sec, recompiling...
you are right, it gets the cabal version
(Action) thumps his chest and lets out a tarzan yell
so how do I proceed now? ghc-pkg unregister is not enough apparently
~/bin is not even in my path
which prefix should I use? or should I add it in my path?
i have added .cabal/bin to my path
geheimdienst: I think there is a misunderstanding here: I want to run the darcs version I compiled
i always just do "cabal install xmonad" with no --prefix or anything
yeah, i do the same. in the directory with the xmonad sources, i run cabal install
it then uses the xmonad.cabal file right from that directroy
ohhhh ok, I didn't know I could do that...
you're welcome :)
hey, I have tried out import XMonad.Util.Paste , since I want to paste the X11 selection.
but that type takes away the spaces.
I found out: http://linuxaleph.blogspot.com/2008/11/mapping-middle-click-to-keyboard-key.html
how do i do a horizonal split?
you could hit mod-.
for a more permanent solution, add Mirror Tall to your layouts
I just want to say, I think xmonad is great. While not a power user, the base functionality I got out of the package (so to speak) has been great.
Hi all. I would like to implement a wmii-style workspace model in xmonad. I want workspaces based on client tags (N tags per client) and therefore need a way to tag windows with 1-N tags and want workspaces created dynamically once a new tag is assigned to a client. Once there are no clients with a certain tag anymore the corresponding workspace should be removed.
I am not looking for a complete solution (although it would be nice if such a thing would already exist) - but want to gather some tips on how to implement this.
I would also like to assign certain tag rules for clients, such as "firefox" should be tagged "net" on creation ..
err, that's a better link: http://haskell.org/haskellwiki/Xmonad/General_xmonad.hs_config_tips#Making_window_float_by_default.2C_or_send_it_to_specific_workspace
dschoepe: Thank you, I'll take a look :)
Do you think that this is achievable in around 5-8h or is this whole endeavour doomed because xmonad has a different (i.e. rather static) workspace model?
The link you gave me uses static workspaces as well. It seems as if it would be possible to achieve what I want with a combination of DynamicWorkspaces Actions.TagWindows and some tagging rules as exemplified in the link you gave me ...
babilen: Ah, I only answered your second question. There are some contrib modules like DynamicWorkspaces and TagWindows that should help
oh, and then I didn't read that you already found those :)
Depending on your experience with xmonad/haskell it should be possible to implement in 8h
dschoepe: Ok, that are good news :) I'll see what I can come up with. If you have ideas just let me know as I am currently gathering information and try to come up with a plan to achieve this.
babilen: Now that I understand correctly what you are trying to do: For tagging a window upon creation, you can do something like this: className =? "foo" --> liftX . addTag "net" =<< ask
then you'd have to make keybindings for opening a Prompt to query the tags to display and use the withTagged function to shift those windows to the current workspace
I would like to ask. What is xmproc resposible for?
kynski: it's the file descriptor to write to the spawned xmobar?
Entroacceptor: Ok, and what if I would like to use dzen2. Where's configuration file for it?
Entroacceptor: And how can I add it to xmonad? I would like to make something like info-panel above all windows.
Is there any way to do that?
you spawn dzen instead
it has no own config file
in floating windows, if I dont them to overlap what is the solution ? -- this is in reference to mplayer -- when i open a second video it overlaps the first video's window -- can it be randomized ?