6 ms·
I love how a "customizable tiling window manager" somehow requires the user to learn an unusual programming language and a dozen of inscrutable keyboard shortcu
by phillmv 15y ago
I love how a "customizable tiling window manager" somehow requires the user to learn an unusual programming language and a dozen of inscrutable keyboard shortcuts.
It made my 24inch screen at the time far more manageable but it was supremely frustrating if I sometimes wanted a certain window to remain in a certain position without being disturbed.
- dons 15y ago> "customizable tiling window manager" somehow requires the user to learn an unusual programming language and a dozen of inscrutable keyboard shortcuts Languages are our best tool for expressivity. And a well-designed language is better than an ad hoc configuration language any day of the week (see e.g. vimscript for how not to do configuration). By choosing to use a full language for configuration, we have made possible an enormous ecosystem of user-contributed components -- because the configuration language was rich enough to support them.
- phillmv 15y agoHorseshit! That's what APIs are for :P. You could have accomplished all of this just fine but left the config in yaml and I would have personally been a happier person for it.
- dons 15y agoYAML configuration is possible, if you want. Just load the YAML file in your xmonad.hs config, and translate it (using the regular config language) into the Config data type xmonad actually uses. You could implement all sorts of funky config formats, by translating them down to the underlying (richer) format. Go nuts!
- phillmv 15y agoI know it's possible, but goddamnit I didn't want to learn Haskell in the first place! That is my bone of contention. Yes, yes, it might make me a better person but I want to try XMonad more than I want to fuck around with Haskell.
- Locke1689 15y agoPersonally I believe that optimizing for the technical user is much more important than user-friendliness in developer tools, especially window managers and text editors. Most people don't have the desire or the motivation to write full-featured developer tool extensions, but those who do should have the full power of a language like Haskell at their fingertips. I think the fact that no one has bothered to write a limited configuration format is telling. It seems to indicate that people who have learned Haskell don't see any benefit in it and appreciate the flexibility offered to them.
- pyre 15y ago> I think the fact that no one has bothered to write a > limited configuration format is telling. Specious reasoning. There are a lot of people that just know enough Haskell to fiddle with their XMonad config and/or copy-paste bits from other people's XMonad configs. I'd say the ratio of XMonad users who would build a easy-config system to total XMonad users is small. You're trying to claim that total XMonad users = X, and since X people are using it without creating the 'new system,' it means that no one sees the utility in it.
- Locke1689 15y agoNo, I'm saying that of all the XMonad users who know Haskell, none has bothered to write an alternative configuration system. That is, once you know Haskell you seem to no longer find interest in such a system.
- deleted 15y ago[deleted]
- william42 15y agoTry awesome[1]. It uses Lua, which is probably a more familiar language(I never learned Lua, but am still able to make minor changes to the config file, something I wouldn't try with Haskell). That, combined with a few other things, is what made me move from xmonad to awesome. [1] http://awesome.naquadah.org http://awesome.naquadah.org
- gwern 15y agoA yaml config would still be weak (this has been discussed before: http://www.haskell.org/pipermail/xmonad/2009-February/007239.html http://www.haskell.org/pipermail/xmonad/2009-February/007239... ) But the nice thing about starting with a full language using the normal API is that you can always water it down to get something less powerful and easier to use, and this has been done with Xmonad before, as 'xmonad-light'. See https://braincrater.wordpress.com/2008/08/28/announcing-xmonad-light/ https://braincrater.wordpress.com/2008/08/28/announcing-xmon... http://www.haskell.org/pipermail/xmonad/2008-August/006211.html http://www.haskell.org/pipermail/xmonad/2008-August/006211.h... xmonad-light has no users and may be bitrotten by now, which shows how much it appealed to Xmonad users.
- pyre 15y agoXMonad users by definition already know at least a minimal amount of how to create their XMonad config file. That's like saying: "We created a Linux distro for the masses and it didn't appeal to power users, therefore nobody wants it." You're also dismissing the possibility that is just sucked, and was not an improvement in configuration interface.
- pyre 15y agoI think the parent is asking why it's not possible to have a plugin system + a simple config file (or GUI config app). There are a lot of common things that people do with XMonad, so I'm sure that a number of them could be consolidated into plugins with simple config options.
- dons 15y agoYou can always write a configuration extension that takes $your_favorite_text_format into the data structure that configures xmonad. In fact, there is a text-based configuration system (implemented on top of the full-language configuration system) that does as you describe in the contrib repo somewhere. You could also easily do e.g. JSON, or YAML or whatever. And that's possible because we use a full language as the base layer. So "dumber" config systems can be layered on top without changing anything.
- pyre 15y agoI'm not arguing against the full language base layer. I'm saying that the op is complaining that he/she needs to learn Haskell to create an XMonad config. Even if I want to use one of those libraries, I still need to create an xmonad.hs file, and import the library. Vs having an xmonad binary that determines libraries/etc from a config file, and all code-level customizations are libraries/modules.
- pyre 15y agolove how a "customizable tiling window manager" somehow requires the user to learn an unusual programming language and a dozen of inscrutable keyboard shortcuts. It doesn't require that, but up until now the only people that cared about "customizable tiling window managers" were people that wanted to do so. Most of these window managers are created by programmers/terminal junkies that would prefer that most things be a text interface. Just look at ratpoison and stumpwm. They're made to have an Emacs-like interface to the window manager. How accessible is an Emacs interface to a non-technical user?
- phillmv 15y agoDude, what non technical users? We're talking about Linux window managers. I'm a technical user. I program for a living. I don't care to learn Haskell in order to use a window manager :P. This is all I'm saying.
- tikhonj 15y agoEh, you should learn Haskell even if you're not going to be using the window manager ;)
- mixu 15y ago> "customizable tiling window manager" somehow requires the user to learn an unusual programming language and a dozen of inscrutable keyboard shortcuts You might be interested in the tiling window manager I wrote with Node.js (mixu/nwm on github). It's very much inspired by xmonad and dwm, but the engine is Javascript running in Node.js with a native extension for X11 operations/events. All layouting decisions are made in JS - in fact, the C++ binding doesn't even know the position of the windows or the dimension of the monitors; it's all tracked in JS. It should be easier to customize, though definitely not as battle-tested as xmonad.
- adambyrtek 15y agoHow does it differ from existing tiling window managers, except the JavaScript spin? It sounds interesting, but it always makes me think twice if the only motivation for a new project is to do the same in a different language.