XMonad 0.13 released
github.com
github.com
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
-------------------------------------------------------------------------------Contrib and extras, where a lot of the useful stuff is defined are here:
I have used it very fondly almost for a decade now (since 0.0!) and it is a good piece of software. I don't think I've changed my config more than 10 lines in like 7 years...
$ git clone https://github.com/xmonad/xmonad.git && cd xmonad
$ git checkout -b old v0.3
$ cloc Config.hs* Main.hs Operations.hs StackSet.hs
5 text files.
5 unique files.
1 file ignored.
http://cloc.sourceforge.net v 1.60 T=0.01 s (561.3 files/s, 213300.6 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Haskell 4 211 625 684
-------------------------------------------------------------------------------
SUM: 4 211 625 684
-------------------------------------------------------------------------------
I also take back what I said earlier. I have been using XMonad for almost exactly a decade, since 0.1 was released in April 2007, and I used the pre-release. So its 10th birthday is very close.I also think it's interesting to note that XMonad is a pretty good example of stable software that doesn't need to change much. Lots of tiling WMs probably fall in this category by some metric, I'd say. For example, the v0.3 version of XMonad had exactly 572 commits in its history at that point:
https://github.com/xmonad/xmonad/commit/dede0a2ce91eebdb1c02...
The HEAD version of XMonad, 0.13, only has exactly 1,265 commits, at the time of this writing. But it has been released almost 10 years later. So that's only a little over 2x as many commits over the course of a decade, and roughly 3x more code at the core level. It does exactly what it needs to do -- so it hasn't needed to evolve much more than that. Files like StackSet (the most central data structure in XMonad) have almost not changed in 10 years, modulo some shuffling, comments, re-exports. That's quite nice, really.
(Where all the extra code came from between 0.3 and 0.13 is left as an archaeology exercise to the reader.)
At least it isn't I left KDE bloat to go to Gnome when Gnome was actually having a larger foot print back in the day.
The closed source forks for the BSD licensed projects... sure, don't use those but the projects themselves are good to go.
In my case, because I know that any contributions I make will become part of the software commons and won't be taken proprietary.
Because BSD licenses are abused by the tivoization of devices far too often, and I think GPL(v3) is one of the few licenses that gets in the way of that. (because to be fair, GPL1/2 were also abused in this way, but I think GPLv3 has fixed most of those loopholes)
BSD style licenses are about freedom for the developer, not the user, whereas GPL style licenses are about freedom for the user. All devs are also users, but not all users are devs, therefor GPL licenses are for freedom for a greater number of people as well. (Can you tell I think RMS is/was right?)
Also, you can theoritcally license BSD stuff under GPL if you fork it and make the new code contribs GPL, but enforcing it would be almost impossible, so I don't think that's a valid get out of license free card.
It'd be about the same as GPL enforcement as is. I don't see any reason this would introduce a special circumstance.
[0] https://github.com/xmonad/xmonad/blob/master/src/XMonad/Core...
https://lists.gnu.org/archive/html/guix-devel/2017-02/msg009...
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.
[0]- http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-...
It's just not the same in i3. I can do meta+screen# but it's nowhere near as easy.
Here is how I solved this for me: https://fmos.at/2016/06/30/my-i3-dual-screen-workflow/
I for one am willing to contribute the day wayland becomes too mainstream.
"Not happening, because xmonad is too tightly tied to X11. No matter how hard you try, the result would not be compatible with xmonad, its contribs, or any configs.
Significant parts of xmonad are also not applicable to Weston because they are no longer part of the window manager component; they were moved to the compositor or application level themes, etc."
i3 has sway http://swaywm.org/
Sway is a drop-in replacement for the i3 window manager, but for Wayland instead of X11. It works with your existing i3 configuration and supports most of i3's features, and a few extras.
Last I checked Sway hasn't yet reached feature parity with i3 (though need to see if the missing bits are things are currently rely on in i3).
People that still complain about pulseaudio drives me nuts. Sound was the second worst thing about Linux, only wirelesss internet was worse.
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.
I'm a big fan of bspwm, though, and kwm at work on macOS.
https://en.wikipedia.org/wiki/Pre-established_harmony
XMonad of course, has windows.
And now for an actually funny joke about Leibniz:
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.
sudo apt-get install mate-desktop
gets you a really nice desktop, almost identical to Ubuntu pre-Unity. Then you just need to use main = xmonad mateConfig
in xmonad.hs and change the window manager using gconf-editor.Unity 3D is a Compiz plugin so you can't use XMonad with it.
Gnome 3.8 and later only support gnome-shell as a window manager; it is not possible to integrate xmonad or any other window manager with it
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.4And 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.
But if I remember correctly, those are the exacts features why I liked awesomewm, independent workspaces that you can move between displays.
What sorts of programs, what kinds of glitches?
I tried i3 and found the basic concept nice, but it required keyboard shortcuts en masse.
I have a friend who used Awesome on a tablet, so it's clearly feasible.
I'm pretty sure there's also Openbox setup with tiling behavior.
I use dwm with some patches, and some customizations that allow for more mouse use.
For instance mouse wheel on the tagbar cycles through tags, mouse wheel on window title cycles through windows, middle click on window title makes currently selected window master, control + mouse wheel on the window title pushes selected window around, mouse wheel on status text increases or decreases sound volume, middle click on status text kills selected window, ctrl + mouse-wheel-up sends selected window to that particular tag, etc etc etc...
So yeah, it's doable in dwm. It's not "mouse first" but most used actions are also doable with mouse, in addition to the keyboard.
It's not too hard, spend an afternoon, or two and you can get it working that way.
Oberon OS did it.
It's a hybrid WM with first class support for normal floating windows (the default) and first class support for tiling. However, it's also designed for multiple monitors and therefore breaks a couple chosen EWMH standards, so your favorite pagers may not work in a multiple monitor setup.
https://i3wm.org/docs/userguide.html#keybindings
I find it funny that so many little paper cuts that can be fixed in less then 30 minutes makes people move in tiled window managers.
i3 greatest strength is its ease of configuration compared to most other twm.
Some visual alternative, like the Windows 8 start menu, to choose apps would be nice on a mouse button.
I like the command menu, when I'm programming, but often I just want to click some icons and be done with it.
You don't have to be an "expert" in Haskell to use XMonad, but it sure doesn't hurt if you want to do some heavier-duty customizations, like use modules that aren't even nominally a part of XMonad.
I don't know what you mean by "manual tiling", so I can't say if it's supported. I know I do some manual things but most of my manual things are out of the tiling context entirely.
https://hackage.haskell.org/package/xmonad-contrib-0.13/docs...
As for XMonad, like Awesome WM, you can probably customize things however you see fit. Just need to know Haskell/Lua and the WM well enough to do so, which may be less than obvious for most.
It's not heavily developed, but plenty stable. (actually I have a WIP PR open adding icon support)
> Configuring i3
This is where the real fun begins ;-). Most things are very dependent on your ideal working environment so we can’t make reasonable defaults for them.
While not using a programming language for the configuration, i3 stays quite flexible in regards to the things you usually want your window manager to do.
It is like saying Notepad is simple and Visual Studio Code is complex because it has a plain text json file for customization. They are different tools. For the tool visual studio is much easier then say VIM.
So is i3 MUCH easier to configure then XMond and Awesome.
The initial version of Oberon OS and the System 3 successor, but they are dead now.
Long live the best WM ever!
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 [2] https://bugs.chromium.org/p/chromium/issues/detail?id=510079... [3] https://bugs.chromium.org/p/chromium/issues/detail?id=510079... [4] https://github.com/xmonad/xmonad-contrib/pull/79#issuecommen...
If you want purely manual tiling, with windows being arranged normally until you tile them, there is WinSplit Revolution (can't find the canonical link right now). It basically does the same thing the tiling keyboard shortcuts in Windows 7+ do, but with more options and granularity.
If you want automatic, dwm-style tiling, there is a project called [bug.n][1]. I am currently using it, mainly because besides offering tiling windows, it is also the least-bad way to get multiple workspaces on Windows that I could find.