While my old notebook, an IBM Thinkpad T400, still works, it has a couple of problems: the battery lasts only 30 minutes, it's slow, it's too heavy  and the bsd install on it is a mess. So I decided to purchase a new one. After weeks and weeks of reading reviews Dell's XPS 13 Developer Edition finally made it. It comes pre-installed with Ubuntu 14.04. Ok, I hate linux, but you know what? Fuck it. I don't have the time to fiddle with every single bit of the notebook under FreeBSD anymore. It should just work.

Ok then, how is it? In short: i love it. Everything works, wifi, setting brightness, sound etc. It's fast as hell (boot time 1 or 2 seconds), suspend works, resume as well. I don't miss anything. There were of course a couple of things I needed to tweak:

First of all, the FN Keys. There are a couple of FN Keys on the top of the keyboard (for brightness, sound settings etc). They are enabled by default. So if you press F2 to switch to desktop 2 it mutes the sound instead. In order to get the original F2 function, you need to press the FN key. That's pretty annoying. But fortunately this can be reversed in the bios.

Then I'm a xmonad user, so I wanted to have it on the XPS13 as well. Getting it to work was a mess. It's easy to install (just apt-get install xmonad), but many things in my config didn't work. I also use xmobar as the status bar - same problems, see below. Another problem was my .xprofile file. I couldn't use it because then Uniti and XFCE didn't work anymore, to which I switch from time to time (i.e. if xmonad is bricked or if I want to find out the location of a specific program).

Now, my setup looks like this: from my xmonad.hs file I execute ~/bin/x where one would normally execute xmobar. This is a script which does what previously have been done by .xprofile: it starts xscreensaver, sets the background etc. The last thing it does is to exec as xmobar and continue as expected by xmonad.

I also changed my xmobar config. It doesn't contain any commands anymore. Instead I use i3status. It runs permanently in the background (started by ~/bin/x) and prints its output into a status file. In xmobar I read the last line of that file and insert it into the status bar. This aproach is faster, more reliable and just works under linux.

I also needed to write some scripts. One is for brightness setting. Under unity setting brightness works out-of-the-box, but under xmonad it didn't. So xmonad catches the appropriate keys and executes this script. The same applies for volume setting. I also have a couple of wrapper scripts for things like shutdown, logout, reboot, lock-screen etc. All of them are reachable via ALT-p which starts ~/bin/shortmenu which itself is a wrapper for dmenu. All menu entries are scripts in ~/.shortmenu/.

Also I abandoned trayer. Most of the stuff I had there is now displayed by xmobar anyway. For wifi settings I just use unity-control-center. And I use gnome-terminal as terminal application. Don't ask me why, it just was already there.

The whole config can be downloaded here: xmonad-dell-xps13.tgz. Or view it online. Of course there's als a screenshot.