Awesome: A window manager that gets out of the way
Sabayon Linux, the easy-to-use Linux distribution built on top of Gentoo Linux, recently announced three new experimental editions that supplement their previous GNOME, KDE, Xfce, and Core releases. Two of the new experimental editions are equipped with unsurprising desktop environments: LXDE and E17 (Enlightenment). The third desktop choice, however, is surprising: the awesome window manager.
Awesome is no stranger to me: I have been using it for three years as the window manager on my main work computer because it's highly configurable and visually minimalistic, so I can focus on my work without any distractions. It's not so surprising that awesome isn't popular, as it's going up against modern desktop environments like GNOME 3, KDE 4 and Unity. In contrast to those desktop environments, awesome doesn't want to appeal to non-expert users, doesn't offer an Apple-like experience, and doesn't come with all kinds of bells and whistles. This makes it even more interesting that a mainstream distribution like Sabayon chose to include an edition with awesome.
A framework window manager
Awesome is called "a highly configurable, next generation framework window manager for X
" by its developers. By "framework window manager
" they mean that users actually build their own window manager with awesome: while it's usable with the default configuration, it is meant to be extended and configured by the user. Because of this, awesome is primarily targeted at power users, developers, and anyone who wants to have fine-grained control over their graphical environment. In contrast, if you don't like tweaking your system or if you like out-of-the-box bells and whistles, awesome probably isn't for you.
Awesome has a small code base and memory footprint and is fast. Because it's using the asynchronous XCB library instead of the synchronous Xlib, it also promises less latency than other window managers, at least according to the home page. It prides itself on implementing many Freedesktop standards, such as EWMH (Extended Window Manager Hints) that allows programs to give hints to the window manager about the type of their windows, Desktop Notification to provide popup notifications on the desktop, System Tray to display small icons provided by running applications, and D-Bus for interprocess communication. And it even supports multiple monitors in XRandR, Xinerama, and Zaphod mode. So while it's a minimalist window manager, it doesn't fall short in its features.
Everyday working with awesome
By default, awesome has a simple but already quite usable configuration that will even support multiple monitors. When you start an awesome X session, you'll see a minimalist desktop with a status bar on top of the screen. Awesome can be controlled completely with the keyboard, so you'll have to memorize some keyboard shortcuts to become proficient at it. For instance, Win+Enter opens a new terminal window (Win is the key with the Windows logo, called Mod4 in awesome's documentation and configuration file), Win+j cycles through the windows, Win+h or l resizes a window (but Win+right-click and dragging with the mouse is a bit more convenient), Win+Shift+j or k moves a window (as does Win+left-click and dragging with the mouse). With Win+Shift+c you close the focused window. Starting a program is simple: enter Win+r, after which you see a "Run:" prompt in the status bar and you can type a program name (with tab completion). It pays to read ~/.config/awesome/rc.lua a bit to get to know all these keyboard shortcuts. When you're used to them, awesome lets you really manage your windows in a very efficient way.
![[Tiled layout]](https://static.lwn.net/images/2011/awesome-tiled-sm.png)
By default, awesome behaves like a regular stacking window manager, but it started as a tiling window manager and I still find this mode the most efficient to use. Just click on the icon in the upper right to use the tiled layout. When you open your first window, it covers the whole screen, and subsequently opened windows are tiled automatically alongside the other windows, so the available screen real estate is always covered completely unless you have no windows open. By default, the most recent window is shown at the entire left part of the screen and the other ones are automatically rearranged on the right side. You don't have to juggle with your windows to get the most out of your screen; awesome does the job for you. By the way, there are no title bars attached to the windows by default, although you can change that in the configuration file.
The status bar at the top of the screen shows nine numbers by default at its leftmost part. If you click on one of them, you get a completely empty screen, ready to contain some new windows. Superficially, this looks like the workspace concept in many other desktop environments, but in awesome they are called tags and the relationship is backwards: while a workspace contains windows, in awesome tags belong to a window. This means that a single window can have multiple tags, but you can also view multiple tags together by right-clicking on another tag in the status bar. The nine tags can be reconfigured to have more descriptive names, although you probably should keep them short. For instance, I have tags "read", "talk", "surf", "type", "file", "hear" and "root". All in all, the concept of tags is much more flexible than traditional workspaces.
![[Magnifier layout]](https://static.lwn.net/images/2011/awesome-magnified-sm.png)
To the right of the tag list comes the task list, which is the list of windows on the currently visible tag(s). To the right of that, there's the clock, and at the rightmost part of the status bar is the layout box which we already mentioned earlier. If you click on it, the way in which awesome arranges all visible windows changes. You can cycle through all available layouts with left-click (forward) and right-click (backward) or by using Win+Space. There's a spiral layout, a maximized layout (which only shows the focused window), a fullscreen layout (which even covers the status bar), a magnifier layout (which shows the focused window in the middle and the other ones on the background) and a floating layout, which shows all windows free-floating and covering each other, like you're used to from stacking window managers.
You can also toggle the floating/tiled status of the focused window with Win+Ctrl+Space and you can configure awesome to automatically force specific programs (like GIMP) to always float. You can also set the default layout programmatically in the configuration file. For instance, I have set the layout of my left screen to tiled and the layout of my right screen (which stands in portrait mode) to tiled.bottom, which tiles the windows vertically. This kind of personalization is very easy to do in awesome.
Tuning your desktop environment
Awesome is just a window manager, so, by default, a lot of functionality offered by a complete desktop environment will be missing. But most of this functionality can be added to the configuration file or supplemented by external programs. The upside is that you can pick your components: you can for instance choose lightweight alternatives. The downside is that you have to configure a lot of things that come out-of-the-box with a desktop environment such as GNOME or KDE and you have to add many programs to your awesome key bindings or to your ~/.xinitrc before you have a working desktop environment with things like an automounter, a file manager, a network applet or a screen shot program. You can also add widgets to the status bar, e.g. a systray, graphs of the memory or CPU usage, and so on.
If you like the complete desktop environment that GNOME or KDE is offering and you just want to swap their default window manager for awesome, that's also possible. This gives you your familiar desktop environment, but with the much more flexible window management functionality of awesome. Have a look at the wiki on how to set up awesome with GNOME or with KDE.
Some programs have to be tuned to be able to use them well with awesome. For instance, if someone mentions you on IRC when you're using the irssi client, the tag associated with your irssi client can become orange (or whatever color you have configured in your awesome theme) by setting up a couple of things. There are also some problems with Java programs when you use a Java virtual machine older than version 1.7, but most issues can be overcome.
Development
Awesome began in September 2007 as a fork of dwm, an extremely minimalist window manager which can only be customized through editing its source code (all options meant to be user-configurable are contained in a single header file). Debian developer Julien Danjou liked dwm's minimalism, but wanted it to have an external configuration file. In version 3.0, he decided to use the programming language Lua for the configuration file format.
Danjou is still the primary author of awesome, but there are a lot of other contributors, and Uli Schlachter maintains awesome now. After a frantic development speed the first two years, development has slowed down now, with the latest release, 3.4.10, being made on May 16 along with a rather low number of commits in the project's repository. In an email interview, Danjou said that the reason for the slowdown is simple:
The missing parts are advanced stuff like new XInput and multi-touch support, but we were blocked by XCB for those, and users seem to be able to live without them. Now, since everyone seems really happy with the 3.4 branch, I think it's enough that we just keep maintaining it.
Although one could say awesome is finished now, there's an active community of users and the wiki is a goldmine for resources, including some user configuration files, themes, user-contributed widgets, and example screenshots. Awesome is available in the repositories of a lot of Linux distributions (but surprisingly not in Fedora), and also in the BSDs. Some of these distributions have their own wiki pages with a guide and distro-specific information, such as Arch Linux and Gentoo.
Tune it now
Although awesome is not an easy program to learn, the framework window manager invites you to experiment with and tune your desktop environment. For instance, you can modify your rc.lua file and restart awesome for these changes to have effect with a simple Win+Ctrl+r. To get some idea of the possibilities, have a look at all the signals awesome emits, to which you can hook your own handler functions. If you dislike the way how GNOME, KDE, and Unity are evolving and you want a window manager that you can tune to get out of your way, you definitely should take a look at awesome. For a quick glance, try the new Sabayon 7 Awesome edition.
Index entries for this article | |
---|---|
GuestArticles | Vervloesem, Koen |
Posted Nov 16, 2011 21:40 UTC (Wed)
by jlargentaye (subscriber, #75206)
[Link] (3 responses)
For example, I have two terminals with tag 1 ("term") and two editor windows with tag 2 ("editor"). That way, I can quickly switch between terminals and editors. So far, nothing special compared to workspaces.
However I've also tagged one terminal and one editor with tag 5, and the others with tag 6, that way when I'm in a terminal and want to check code, I can easily (and seemlessly! no flickering) replace the other terminal with an editor by pressing Win-5 or 6.
I also have a mail client and web browser with their own tags (3 "mail" and 4 "web"), and can easily squeeze them in to the current view by doing Ctrl-Win-3 or 4.
This demonstrates both multiple tagging a given window and displaying windows from multiple tags. It takes some getting used to, Awesome is definitely a "power-user" tool, but is completely worth it.
Posted Nov 23, 2011 21:47 UTC (Wed)
by jospoortvliet (guest, #33164)
[Link] (2 responses)
You'd be surprised to find out how powerful KWin is these days. Tiling, grouping/tabbing, window shortcuts and a huge variety of window- and application specific settings are all easily accessible from a GUI.
Personally I'm quite happy with such settings. On my desktop I don't have much fancy stuff but on my small screen laptop I actually use quite some of these features to use the screen as efficiently as possible.
One that I'm currently missing is to hide the window borders on maximized windows. Actually it's there, in the config file, but it's not in the UI. For those curious - change "BorderlessMaximizedWindows=" from false to true in ~/.kde4/share/config/kwinrc
As you can use shortcuts to un-maximize and tile windows, there is no reason (for me) tho show the window decoration.
Anyway, I wouldn't claim that Awesome has no features KWin doesn't have - I'm sure it does. Just don't put KWin in the same group as Metacity, it's far more capable and pretty much everyone greatly underestimates it ;-)
Posted Nov 24, 2011 23:49 UTC (Thu)
by mathstuf (subscriber, #69389)
[Link] (1 responses)
Posted Dec 8, 2011 13:31 UTC (Thu)
by Duncan (guest, #6647)
[Link]
IIRC they were just beginning to introduce kwin as a tiling WM back on 4.4, and it has gotten MUCH better since, tiling and in general, with a MUCH improved window-rules GUI in 4.7. But there were some (non-kwin) regressions in 4.6, plus of course the whole akonadi breaking kdepim thing, both of which aren't fully straightened out yet, so late 4.5 with the 4.4.10 or so kdepim was the best kde4 so far, IMO.
I don't use either kwin's full window tiling (tho I use the quarter- and half-max drag-to-side functionality that works well for semi-tiling) or window tab-grouping, as I've developed my own solution over the years, an almost maximized title-bar-less window with a pair of half-maxed side-by-sides arranged so I can click either of them or the almost-maxed window to raise (as long as I don't raise both side-by-sides thereby hiding the almost-maxed-titlebar-less) and focus, or simply hover over one that's below to focus it for typing into, without raising it, just making it visible as 100% opaque thru the semi-transparency of the defocused but above window.
It works well for me. In fact, I hadn't realized just how much i depended on the then kde 3.5 window transparency until I tried to switch to kde 4.2, and thru a dual-rooted combination of a bug later fixed in 4.3 or 4.4 and a *HORRIBLY* deoptimized for my hardware default animation setup, 4.2 window transparency (and effects in general) would lag the desktop by HALF A MINUTE or more at times, thus being entirely unworkable, so I had to turn it off.
Ultimately I traced both roots down and both adjusted the config and found a workaround for the bug (by trying and configuring a single kde4 app at a time on an otherwise still kde3 desktop, thus isolating the dual roots), after which I could reactivate window transparency again, and soon thereafter I upgraded graphics so could configure more effects, and the bug was fixed, so I didn't have to worry about the workaround (no actively updating plasmoids on the desktop) any more, but the point is, I found out how much I actually DEPEND ON window transparency from that experience.
As far as I can see from the writeup (tho I've not finished reading all the comments yet), awesome might do tiling, but it apparently doesn't do compositing, so it would appear that window transparency is right out, which means awesome's right out, for me, because I actually USE window transparency, referring to a semi-transparent say documentation or config window on top, while also looking thru it to type my answer to a question about it, while referring to it, into the active window below it.
But OTOH, kwin might do tiling, but I don't believe it has anything quite as flexible as tagging, which now that I know about I'm going to miss as well. But I wouldn't be surprised if it gets it.
So they both have features I could and/or do definitely use, while missing other features I could and/or do definitely use that the other has. =:^(
Meanwhile, to answer your question, originally neither kwin4 nor plasma could handle zaphod mode, separate desktops on each. They're actively working on it and last I read the bugs (4.5 timeframe, so a year-ish ago) it was sort of working in IIRC kwin, but not plasma yet (or was it the other way around?). But 4.6 the then still in development had some fixes that had it /almost/ working (probably about like the 4.2 the kde folks insisted was ready for use, despite its still being late alpha stage broken AT BEST!), basically working, but with some stuff that you'd definitely learn you couldn't do and would avoid after that.
While I use a dual monitor setup, it's as a stacked-orientation RandR mode single desktop, and I've not followed the bugs. However, given the rate at which they were progressing and that it was said to sort of work for 4.6, I'd guess it pretty much worked, but possibly not smoothly, for 4.7, and that with 4.8, it should be pretty good.
FWIW, I'm running 4.7.80 now, aka 4.8-beta1, beta2 released yesterday but I've not upgraded yet.
Duncan
Posted Nov 16, 2011 21:55 UTC (Wed)
by lkraav (subscriber, #76113)
[Link] (8 responses)
it will take you some time to set it up to your tastes, just like the article states. i went at it step by step, just implementing any single component as i felt i needed it. you can view the shortlog of the road from standard distro rc.lua to my own personal heaven at [2]. haven't really felt a need to further tweak the configuration for about the last 3 months, everything is just smooth.
and the name of this thing is just... awesome. you can't argue that.
[1]: http://plone.org/documentation/author/chaoflow
Posted Nov 18, 2011 0:03 UTC (Fri)
by mathstuf (subscriber, #69389)
[Link] (7 responses)
Looking at the history of my xmonad.hs file, it appears that the last functional change I made was on May 15th to add a dmenu window selector bindings (both moving to the selected window and bringing the selected window to the current workspace variants). Since then, it's been a fix for window titles in xmobar, and updating to dmenu_run instead of dmenu_path (July 25th). My gitweb is, unfortunately, not populated this week due to me moving from gitosis to gitolite and not completing the configuration migration last night.
Posted Nov 18, 2011 15:24 UTC (Fri)
by emk (subscriber, #1128)
[Link] (6 responses)
In a fit of random curiosity, I installed VirtualBox, Ubuntu and XMonad on my Mac, and decided to spend a couple of days messing around with XMonad. I figured that once I'd played with XMonad for a bit, I'd happily go back to using my Mac.
A week later, I ordered a new Ubuntu laptop from ZaReason and gave up on my Mac completely. I just couldn't bear to leave XMonad. I loved having all my windows laid out automatically. I loved knowing my Emacs and terminals are exactly 80 columns wide. I loved using every pixel of screen space for code and unit tests. Now, the idea of manually dragging windows around the desktop makes me feel frustrated.
Basically, if you're the kind of person who loves vim or Emacs—even if you're a Mac user—you might want to check out Awesome or xmonad. They're not for everyone, but they might be for you.
Posted Nov 18, 2011 17:04 UTC (Fri)
by mathstuf (subscriber, #69389)
[Link]
[1]http://git.benboeckel.net/?p=dotfiles.git;a=summary
Posted Nov 19, 2011 8:15 UTC (Sat)
by Los__D (guest, #15263)
[Link] (4 responses)
Ewww, why would you want THAT? Letting your editor and workarea be constrained by an ages old screen format is just silly.
Posted Nov 19, 2011 14:50 UTC (Sat)
by mathstuf (subscriber, #69389)
[Link]
Posted Nov 23, 2011 22:46 UTC (Wed)
by jospoortvliet (guest, #33164)
[Link] (1 responses)
Posted Nov 24, 2011 23:56 UTC (Thu)
by mathstuf (subscriber, #69389)
[Link]
Posted Dec 3, 2011 0:10 UTC (Sat)
by kmself (guest, #11565)
[Link]
That's when 80 col wrapping's very, very much appreciated.
The thing about ages-old formats and conventions is that they're baked into a great many things, including hardware and code.
These change very, very slowly.
What's even more amusing is looking at where the 80-col standard originated -- punch cards, dictated in part by the size of dollar bills in the late 19th Century.
Posted Nov 16, 2011 21:59 UTC (Wed)
by nvloff (guest, #73737)
[Link]
And I've been using the default configuration for all this time, it's that awesome. There is actually no real need for configuration, the defaults are great.
The killer feature to me is that it works great with gnome-session and all
Posted Nov 16, 2011 22:04 UTC (Wed)
by gregkh (subscriber, #8)
[Link] (1 responses)
Posted Nov 16, 2011 23:17 UTC (Wed)
by josh (subscriber, #17465)
[Link]
Latest Ubuntu: http://packages.ubuntu.com/precise/awesome
Couldn't find it in suse. Other comments here have mentioned the issues currently preventing inclusion in Fedora.
Posted Nov 16, 2011 22:07 UTC (Wed)
by nvloff (guest, #73737)
[Link] (1 responses)
https://bugzilla.redhat.com/show_bug.cgi?id=awesome - Review Request: awesome - Extremely fast, small, dynamic and awesome floating and tiling window manager
https://bugzilla.redhat.com/show_bug.cgi?id=465759 - Build cairo with XCB suppor
Posted Nov 21, 2011 13:03 UTC (Mon)
by SammyF (guest, #81507)
[Link]
Posted Nov 16, 2011 22:09 UTC (Wed)
by alvieboy (guest, #51617)
[Link] (16 responses)
[note: I'd say the same thing if it were python, perl or lisp based]
I did not try "Awesome". Actually, I rushed to read this article because of it's title:
"Awesome: A window manager that gets out of the way"
As for "Awesome": I assumed LWN was actually impressed by the window manager. It happens to be it's name.... ok.
Second: "A window manager that gets out of the way". I was expecting it not to interfere with what I'm doing, but "visually minimalistic" is not what I was expecting. Rather "open popups where they belong", "place windows at right place", "don't steal my focus".
Third: I don't expect the window manager to be "highly configurable", because there are not many interesting things a WM can do (and as such, not much to configure anyway).
Then we have "lua". Could have been "python", or any other high level language. But that's not what I want from a WM (I use XFCE btw). I want a simple, fast, with low overhead window manager.
A window manager is just a window manager.
Alvie
Posted Nov 17, 2011 1:34 UTC (Thu)
by HelloWorld (guest, #56129)
[Link] (6 responses)
Posted Nov 17, 2011 6:23 UTC (Thu)
by alankila (guest, #47141)
[Link] (5 responses)
He now advocates against LUA because of this, apparently.
Posted Nov 17, 2011 19:12 UTC (Thu)
by oblio (guest, #33465)
[Link] (4 responses)
Posted Nov 17, 2011 23:33 UTC (Thu)
by man_ls (guest, #15091)
[Link] (2 responses)
All my knowledge of Lua is theoretical, but the explanation in pil (from which you link the older online version) is really messy. I can relate to how JavaScript prototypes are a clumsy solution for a real class system. JavaScript also has other flaws such as the disappearing "this" reference. When you feel that a language is working against you instead of for you, you feel frustrated.
Of course with Python you have the obnoxious self parameter, and Java is not functional (pun intended), but what can you do about it. Obvious sentence of the day: no language is perfect, and choosing the right one for a particular job is really hard.
Posted Nov 19, 2011 9:46 UTC (Sat)
by alankila (guest, #47141)
[Link] (1 responses)
Incidentally, Java would allow people to write Node.this to represent the Node object, assuming the function objects were written as anonymous inner classes.
Posted Nov 19, 2011 13:02 UTC (Sat)
by man_ls (guest, #15091)
[Link]
It can be worked around, of course: using a real closure, or calling the callback using weird call() techniques. But it makes for one of those "what were they thinking" moments. Same for prototypes, metatables' bastard son.
Frankly, JavaScript is surprisingly sane given that it was invented in 10 days.
Posted Nov 18, 2011 8:42 UTC (Fri)
by alankila (guest, #47141)
[Link]
Apparently he wanted python's semantics, too, and was dismayed to discover that some internal functions like __len were not overridable for some built-in types. I'm going to guess this restriction was because of performance.
Posted Nov 17, 2011 13:11 UTC (Thu)
by nix (subscriber, #2304)
[Link] (7 responses)
Posted Nov 18, 2011 0:05 UTC (Fri)
by mathstuf (subscriber, #69389)
[Link]
Posted Nov 18, 2011 9:48 UTC (Fri)
by Yenya (subscriber, #52846)
[Link] (4 responses)
Awesome is hardly the first programmable window manager (or even window manager programmable in a functional language). You must have missed at least sawfish (former sawmill), which has been the default WM in GNOME for years.
Yes, I am a happy sawfish user (now with XFCE), thanks for asking ;-)
Posted Nov 21, 2011 14:51 UTC (Mon)
by nix (subscriber, #2304)
[Link] (3 responses)
Posted Nov 21, 2011 15:02 UTC (Mon)
by Yenya (subscriber, #52846)
[Link] (2 responses)
Posted Nov 21, 2011 22:31 UTC (Mon)
by nix (subscriber, #2304)
[Link] (1 responses)
Posted Nov 22, 2011 8:12 UTC (Tue)
by Yenya (subscriber, #52846)
[Link]
I had the impression that he declared sawfish has reached the mature state, so it did not need further development at all.
I have even managed to look it up - I think this was the point where the group of developers decided to take over the sawfish development, and make a formal release after long time:
http://www.mail-archive.com/sawfish-list@gnome.org/msg005...
Posted Nov 23, 2011 23:01 UTC (Wed)
by massysett (guest, #52736)
[Link]
Fvwm on the other hand has superb documentation. Having used GNOME, KDE, xmonad, awesome, and a little bit of fluxbox, I have landed on fvwm. It has the best documentation, the most stability, and the least bugs--zero that I have found. Xmonad was nice but it practically required keyboard usage--it's hard to even configure things like window decorations. I like the keyboard but the mouse shouldn't be second class. I found some bugs in xmonad that would cause the window manager to completely lock up. Awesome's documentation is not the best, and it suffered from bugs as well--I had some problems with decorations on floating windows, for example.
The only thing I miss on fvwm is automatic tiling. However, FvwmRearrange allows tiling at the press of a button. Since I now use a lot of desktops (20) I find I don't have much need to rearrange windows automatically because each desk has the windows arranged as I need them. FvwmPager makes it easy and manageable to use a huge number of desktops.
If you already know fvwm I don't think you'll gain much from trying awesome. I also urge new users to try fvwm. It's not very hip--maybe because it is old--but for configurability, stability, and documentation it can't be beat.
Posted Nov 17, 2011 13:54 UTC (Thu)
by chsnyder (guest, #52714)
[Link]
But for a few of us, we jump for freaking joy when we see that. Holy cow! No titlebars! Think of all the extra pixels we get for actually getting work done!
The utility is in the choosing. Sometimes you want/need a window manager that lets you put windows exactly where you want them with zero chrome. And thank goodness there is finally a modern alternative to fvwm for that.
Posted Nov 16, 2011 22:18 UTC (Wed)
by nvloff (guest, #73737)
[Link]
http://repos.fedorapeople.org/repos/thm/awesome/
Also Julien Danjou has some interesting posts in his blog on "Why not LUA" and how he lost faith in XCB.
Posted Nov 16, 2011 22:38 UTC (Wed)
by joey (guest, #328)
[Link]
I still think the tagging system is well, awesome.
Posted Nov 16, 2011 22:57 UTC (Wed)
by alecs1 (guest, #46699)
[Link] (1 responses)
You'll excuse me for this obnoxiously off-topic comment, since it's the first time I do it...
Posted Nov 17, 2011 0:18 UTC (Thu)
by bloopletech (guest, #71203)
[Link]
Posted Nov 17, 2011 5:28 UTC (Thu)
by felixfix (subscriber, #242)
[Link] (1 responses)
Posted Nov 17, 2011 11:55 UTC (Thu)
by njwhite (guest, #51848)
[Link]
You can also focus using the keyboard, using Mod-j / Mod-k to cycle through windows on the current tag(s); I imagine this is the same with Awesome.
Posted Nov 17, 2011 9:56 UTC (Thu)
by simhay (guest, #72874)
[Link] (10 responses)
Posted Nov 17, 2011 13:14 UTC (Thu)
by nix (subscriber, #2304)
[Link] (9 responses)
Posted Nov 17, 2011 14:03 UTC (Thu)
by chsnyder (guest, #52714)
[Link]
Efficiency is still valuable, even in a world of limitless resources. Less code means fewer bugs and easier maintenance. It tends to indicate that a lot of intelligent thought went into design and development. Also, absent actual benchmarks, perception is nine-tenths of performance.
Posted Nov 17, 2011 17:15 UTC (Thu)
by krakensden (subscriber, #72039)
[Link] (1 responses)
From a user's point of view it's very reminiscent of the bad old days when swapping was common. But don't worry guys, even Windows 7 and Lion (Apple has been working on the compositing thing for what... ten years now?) still stutter and stall just like Compiz. I'm sure it will be like this forever.
Posted Nov 17, 2011 21:29 UTC (Thu)
by alecs1 (guest, #46699)
[Link]
Although machines may look over-specced, we still get various lags introduced by drawing. For example one thing I seem to replicate frequently with KWin is starting a high resolution video full-screen, and running KSysguard at the same time: the video will stop for a short instant every second, with metronome regularity. Fortunately at least memory is cheap enough swapping is history.
I guess these disappear only after you take every code path and ensure none takes takes more than a fixed period of time, in a sort of RT systems fashion.
Posted Nov 17, 2011 17:56 UTC (Thu)
by andresfreund (subscriber, #69562)
[Link] (3 responses)
Posted Nov 21, 2011 14:54 UTC (Mon)
by nix (subscriber, #2304)
[Link] (2 responses)
Posted Nov 21, 2011 15:19 UTC (Mon)
by andresfreund (subscriber, #69562)
[Link] (1 responses)
Not sure what youre refering to with constrained storage though. The system I notice this most is a low-end server class/high end workstation hardware...
seconds. Yuck.
Obviously in reality it won't be quite that bad and the situation can improve considerably if many process are swapping in (because then you suddently don't have only one synchronous request going on at the time) or if you start doing readahead on swap...
Posted Nov 21, 2011 22:31 UTC (Mon)
by nix (subscriber, #2304)
[Link]
Posted Nov 18, 2011 0:03 UTC (Fri)
by man_ls (guest, #15091)
[Link] (1 responses)
Having a netbook as my primary machine has many advantages: it's light, silent, has an integrated UPS, and I just unplug a few cables and put it in my backpack when I need to travel. However my Eee PC 1000H only supports 2 GB of RAM (recently upgraded from 1 GB), and I don't like swapping to disk; so if I want to get some work done (I'm looking at you, Android SDK) and have a couple of open browsers at the same time with 10s of tabs, I basically need a low resource window manager. I realize that XFCE can be considered "bloated" as compared with e.g. awesome, but it is familiar and it basically works for me, so I have not really researched any alternatives.
Posted Nov 18, 2011 8:04 UTC (Fri)
by mathstuf (subscriber, #69389)
[Link]
I got that machine booted on a stripped down Fedora (still the default kernel) with ~60MB of RAM used. 80MB after starting X. It also rebooted in 45 seconds (Internet to Internet...manual login and ifup) with Fedora 13 or so. My F15 machines boot with around 200MB used, though Rawhide has it back down to the low 100MB range.
At work, I have a system in a VM that needs quite a bit of memory (relatively; 6GB has usually enough, but my machines have only 8GB), so stuffing my system in beside it for some development (though not too many builds) pretty much rules out the DEs as usable.
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
[2]: https://github.com/lkraav/dotfiles/commits/master/.config...
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
[2]http://blipper.dev.benboeckel.net/yum/17/x86_64/base/comp...
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
80 cols
Awesome: A window manager that gets out of the way
other stuff I need ( nm-applet, power manager, keyboard layout switcher/indicator, etc.)
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Yeah right, because lua is known for being complicated, slow and with high overhead... not!
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Apparently Danjou is not happy with metatables as an object-oriented technique. You can read more about it in his 2011 blog (scroll down to "Why not Lua").
Object oriented Lua
Object oriented Lua
It is especially annoying in callbacks: I would expect that Object oriented JavaScript
this
would be part of the function context as any other closure, but no: this
points to the DOM node where the callback is running.
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
> that stands a chance of being configurable enough to supplant
> fvwm on my desktop.
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome v. fvwm
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Focus follows mouse or click to focus?
Focus follows mouse or click to focus?
Awesome: A window manager that gets out of the way
The fact that it has a very small footprint is great and I like how it doesn't try and do too much, just enough and nothing else.
Awesome: A window manager that gets out of the way
The fact that it has a very small footprint is great
</blockquote>
I don't understand why anyone other than those on antique hardware care about this. These days footprints only impact what you are doing with your machine if they are titanic (e.g. OpenOffice), if you run lots and lots of them (e.g. shells), or if they use a large amount of CPU time and thus the effect of increased icache/dcache hit is significant. But a window manager? You run one of it and it spends 99.99..% of its time asleep. Why would anyone with modern hardware care if it occupies 5Mb or 50Mb? (Hell, I personally wouldn't care if it occupied 500Mb, but I do realise that my desktop is overspecced.)
Awesome: A window manager that gets out of the way
The fact that it has a very small footprint is great
I don't understand why anyone other than those on antique hardware care about this.
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Having to wait for far too long till the 2-6GB of Memory used by desktop applications are paged in again afterwards is a really annoying pita.
And I definitely want them paged out while I need the memory for something else...
Awesome: A window manager that gets out of the way
Awesome: A window manager that gets out of the way
Even on a RAID10 of 10 rotational disks 4GB/4kb (swapped memory/pagesize) random reads hurt significantly. Especially as in most situations swapin produces loads of synchronous reads.
Calculating it with the worst case load pattern (which is not that unreasonable) and a perfect distribution between devices thats:
>>> (2**30*4/4096)/(7200/60.0*10)
873.8133333333334
Awesome: A window manager that gets out of the way
Not just the window manager
I don't understand why anyone other than those on antique hardware care about this. [...] But a window manager?
Antique hardware is not the only reason, and the window manager is not the only problem. The overhead of "modern" desktop environments can be pretty high: hundreds of MBs are not atypical.
Not just the window manager