
XMonad 0.13 released - of
https://github.com/xmonad/xmonad/blob/master/CHANGES.md#013-february-10-2017
======
kornish
Unreal – never knew XMonad was so small. It's only 1650 lines of code!

    
    
      tedkornish : dev/xmonad @ master :: cloc src
             8 text files.
             8 unique files.
             0 files ignored.
    
      http://cloc.sourceforge.net v 1.64  T=0.03 s (244.6 files/s, 95612.1 lines/s)
      -------------------------------------------------------------------------------
      Language                     files          blank        comment           code
      -------------------------------------------------------------------------------
      Haskell                          8            446           1028           1653
      -------------------------------------------------------------------------------
      SUM:                             8            446           1028           1653
      -------------------------------------------------------------------------------

~~~
diminish
xmonad source itself can be small but, running xmonad consumes a lot of memory
due to huge ram/space requirements of the ghc (haskell) (edit I don't remember
exactly what consumed so much memory). that's why i moved to i3 wm after years
of xmonad use.

~~~
mbrock
Approximately how much memory would XMonad use for you?

~~~
cormacrelf
Yeah, that comment doesn't make much sense as it stands. GHC is a compiler not
a runtime. Functional languages like GHC-compiled Haskell are not known for
extreme memory efficiency in all cases, but it depends entirely on the
program. Unless I'm not aware of how XMonad actually runs.

~~~
mbrock
Well, GHC does have a runtime, and in some way XMonad also uses the compiler
at runtime because configurations are written in Haskell...

~~~
mmarx
Recompilation[0] simply calls the compiler binary, though.

[0]
[https://github.com/xmonad/xmonad/blob/master/src/XMonad/Core...](https://github.com/xmonad/xmonad/blob/master/src/XMonad/Core.hs#L622)

------
megawatthours
XMonad hits a sweet spot no other window manager does for me:

    
    
      import XMonad.Config.Mate
    
      main = xmonad mateConfig
    

and just like that I have XMonad running inside my mate desktop, without the
need to manually configure a status bar for volume, wifi, keyboard input
language, clock, etc.

I don't even use tiling that much as I prefer to have one app per workspace,
but just having focus-follows-mouse and the option to tile if I need it is
really sweet.

~~~
Symmetry
I do the same thing with Gnome. There's an Ubuntu PPA at ppa:gekkio/xmonad
that takes care of creating a desktop session for me and then it's just a
matter of adding the same thing with s/mate/gnome/ and then away I go.

------
kasbah
Jekor's videos on the XMonad source code really helped me get into Haskell:
[https://www.youtube.com/watch?v=63MpfyZUcrU&index=3&list=PLx...](https://www.youtube.com/watch?v=63MpfyZUcrU&index=3&list=PLxj9UAX4Em-
IBXkvcC3MycLlcxyoi7v8B)

~~~
ahstro
That looks very interesting. Thank you for sharing!

------
wz1000
My favorite part of XMonad is XMonad.Actions.Navigation2D[0], which allows you
you use direction navigation via keybinding to switch between windows. A proof
that the technique for this allows you to visit any window, no matter how they
are arranged is given in this paper[1].

[0]- [http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-
Actions-...](http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-
Navigation2D.html)

[1]-
[https://web.cs.dal.ca/~nzeh/xmonad/Navigation2D.pdf](https://web.cs.dal.ca/~nzeh/xmonad/Navigation2D.pdf)

~~~
chrissnell
fvwm2 has this and I miss it dearly since I switched to i3 a while back. It
was fantastic. I would arrange my screens in a 3x3 grid and put my most
commonly used one in the center. That gave me four other screens that were
only one keystroke combo away.

It's just not the same in i3. I can do meta+screen# but it's nowhere near as
easy.

~~~
timlyo
Why did you switch to i3? I'm an i3 user looking at other window managers.

~~~
chrissnell
I wanted a tiling WM.

------
jiehong
Unfortunately, with Wayland growing, XMonad may no longer be possible[1].

[1]:
[https://github.com/xmonad/xmonad/issues/38](https://github.com/xmonad/xmonad/issues/38)

~~~
LeoPanthera
Surely it will always be possible to remove wayland and put xorg back.

~~~
aninhumer
Yes, but at some point the applications you want to use might not support.

~~~
VLM
emacs, urxvt, and chrome? Worst case just emacs?

------
binaryapparatus
In the past I have tried various tiling window managers but always reverted
back to xmonad. I haven't looked elsewhere for some time now.

Documentation is extraordinary and really easy to follow once I understood how
to read it, years ago.

The only sore spot is monstrous GHC size, that compiler needs to get much
smaller to be really good from all angles.

~~~
sevensor
I switched to i3 a couple of years ago, after using XMonad for about two
years. Hopefully things have improved since then, but I kept falling into
Cabal hell every time I tried to make a configuration change and I got fed up.
At the time I concluded that XMonad was for people who use Haskell regularly
and know how to navigate its package system.

~~~
kahnpro
The situation may have improved now that Haskell has Stack, which has
revolutionized package management there...

I'm a big fan of bspwm, though, and kwm at work on macOS.

~~~
abhixec
I am now going to try KWM on my work macos

------
archgoon
An additional joke, likely unintentional (but who knows), is that the original
Monads of Leibniz, were viewed as completely independent, 'windowless',
objects that only seemed to interact with one another via God's elaborate
choreography, which he termed the 'pre-established harmony' of the universe.

[https://en.wikipedia.org/wiki/Pre-
established_harmony](https://en.wikipedia.org/wiki/Pre-established_harmony)

XMonad of course, has windows.

And now for an actually funny joke about Leibniz:

[http://existentialcomics.com/comic/108](http://existentialcomics.com/comic/108)

------
ekidd
I'm glad to see a new release of XMonad! Two questions:

1\. Is there any way to use XMonad but keep the standard Ubuntu menu bar for
access to desktop menus? This used to be possible with older Gnome desktops,
but it had gotten increasingly harder in recent years.

2\. Does XMonad work well on Retina/HiDPI displays? A year or two ago, it
still had lots of rough edges.

~~~
Symmetry
1) I don't think it's possible to keep the standard Ubuntu menu but you can
use XMonad in other desktop environments like Mate or Gnome. You'll have to do
a bit of configuration but it's not bad, see my other comment.

2) I run XMonad in gnome and it mostly works without problem. The only thing I
had to change was set my browser launching keybinding to run

    
    
              spawn "google-chrome --force-device-scale-factor=1.4

------
flurdy
I'm a heavy user of Amethyst, the Xmonad-inspired tiling for OSX/MacOS
([https://github.com/ianyh/Amethyst](https://github.com/ianyh/Amethyst)) on my
laptops.

And are disappointed when using my Ubuntu desktop of the lack of simple tiling
inside Unity. In my ancient fvwm and kde days there were more options.

I don't want to change my whole windows manager to Xmonad or i3, as I try to
keep my setups fairly vanilla (as I use a lot of different machines/VMs and
need a quick setup), but adding an unintrusive simple tiling option would be
nice.

I have tried X Tile which is ok, but crashes too often and also moves full
screened windows from my 2nd monitor onto my main monitor which is annoying.

~~~
jameskegel
Use xmonad with them. I use Xmonad with XFCE on my office computer.

------
Sembiance
I used XMonad for many, many years. During these years it served me well and I
really loved it. However I switched to AwesomeWM about 2 years ago and
couldn't be happier. I was able to easily make Awesome behave just like xmonad
for parts I cared about, so the transition was pretty painless. Top 3 reasons
I switched: 1\. Multi monitor support is far better with awesome and it worked
perfectly out of the box with my 3 displays. 2\. Programs that were a bit
glitchy under xmonad had no such glitches under awesome. 3\. LUA configuration
files make it far easier for me to customize behavior and extended it. With
Xmonad's Haskell I always felt like a noob.

~~~
jon-wood
In what way is multi monitor support better? In my opinion nothing comes
close, I've not used anything else which considers each display an independent
workspace and let's you move those workspaces between displays.

~~~
monsieurbanana
It's been years since I used AwesomeWM and haven't tried xmonad (yet).

But if I remember correctly, those are the exacts features why I liked
awesomewm, independent workspaces that you can move between displays.

------
k__
Is there a good tiling manager for heavy mouse users?

I tried i3 and found the basic concept nice, but it required keyboard
shortcuts en masse.

~~~
jpgvm
XMonad isn't too bad for mouse users but I wouldn't say there are any tiling
WM that focus on using the mouse.

~~~
yoodenvranx
Yes, back when I used Xmonad I also used the mouse a lot. You can use
Super+Left mouse button to move windows around and Super+Right mouse button to
resize windows.

------
djfm
Hallelujah the [1]missing dropdowns are fixed!

Long live the best WM ever!

[1]
[https://github.com/xmonad/xmonad/issues/42](https://github.com/xmonad/xmonad/issues/42)

~~~
awirth
Wow this rabbit hole is impressive. I'll summarize to the best of my
understanding (I'm no expert in X).

Basically, chrome uses an X property called _NET_WORKAREA (which is basically
supposed to be a rectangle that includes all the parts of the screen that
aren't the toolbars) to clip popup menus for dropdowns, so they don't draw
over your taskbar or whatever.[1]

Earlier this year, they fixed a race condition so that now they listen for
updates to _NET_WORKAREA changes[2], which fixed an issue where the clip area
would be wrong for users who hot (un/)plugged extra monitors on relatively
"standard" distros like Linux Mint. Basically, you could only see the drop
downs on your primary monitor, because _NET_WORKAREA was out of date.

Once this change finally landed in stable, XMonad users noticed that now they
couldn't see dropdowns on ANY monitor if they were changing workspaces and had
multiple monitors. It turns out that this is because Chrome reads
_NET_WORKAREA from the root window, and XMonad (unlike mainstream WMs) uses
separate root windows per monitor. Now that Chrome was watching for changes,
Xmonad and chrome were miscommunicating with each other about the current clip
area. Chrome works around-ish this by only doing the clipping on the primary
display[3] "Since that is where the 'desktop chrome' usually lives, this works
ok in practice."

The workaround on the XMonad side is to just stop setting _NET_WORKAREA
altogether[4], which is the same thing that i3, awesome and qtile do. Note
that they had originally set this property in the first place because not
having it caused Gtk and Qt malfunctions. To further complicate things, some
Display Managers like LightDM set _NET_WORKAREA itself, so XMonad has to
actively delete this property when it starts instead of ignoring it
altogether.

Anyway, it was a pretty interesting read.

[1]
[https://bugs.chromium.org/p/chromium/issues/detail?id=510079](https://bugs.chromium.org/p/chromium/issues/detail?id=510079)
[2]
[https://bugs.chromium.org/p/chromium/issues/detail?id=510079...](https://bugs.chromium.org/p/chromium/issues/detail?id=510079#c52)
[3]
[https://bugs.chromium.org/p/chromium/issues/detail?id=510079...](https://bugs.chromium.org/p/chromium/issues/detail?id=510079#c80)
[4] [https://github.com/xmonad/xmonad-
contrib/pull/79#issuecommen...](https://github.com/xmonad/xmonad-
contrib/pull/79#issuecomment-277853703)

~~~
digi_owl
Separate root windows, hmm. Wonder what effect that has one security...

------
samdoshi
There is a (recent) video from Ethan Schoonover demonstrating his config.

[https://www.youtube.com/watch?v=70IxjLEmomg](https://www.youtube.com/watch?v=70IxjLEmomg)

------
abhixec
XMonad is moving really fast. It was on 0.11 for quiet sometime and now it it
0.13. Love/Miss XMonad, since I use mac work. One of the reason s I want to
get a Linux machine for personal use.

------
ahstro
I've been thinking of trying XMonad for a while, and looks like this is the
opportune time. Anyone know if there's an easy "switch to last used window"
functionality?

~~~
brennen
FWIW, I tend to use mod-z to switch to last-used _workspace_ with toggleWS,
which seems to cover a lot of those cases pretty well.

------
wiiittttt
Does anyone know of a good tiling WM for Windows?

~~~
sevensor
Windows 7 has really basic tiling -- super-left and super-right will put
windows in a vertical split arrangement. Windows 10 adds another split so you
can have four quadrants. Nowhere near i3, but the Windows user experience is
forever lagging Linux.

~~~
ufo
A similar feature can also be found on most regular non-tiling Linux WMs

