In this post, I describes what steps are neccessary to get Ubuntu running on a recent laptop as of 2015.

Buying a computer with the latest hardware can be a bit risky for a Linux user. The Dell XPS 15 9550 model is equipped with the latest Intel generation, Skylake; has a SSD that communicates over the new NVME, PCIe interface and on top of that has a relatively new Nvida graphics card. Luckily, I found a ubuntuforums.org thread with close to 300 posts that describes the installation pitfalls.

I installed Ubuntu 15.10 by following steps 1-7 from a post by jchedstrom. Then I installed the 4.4 Ubuntu kernel by following a post by eXorus. Some posts described problems when using the nvidia-355 driver together with the 4.4 kernel, recommending nvidia-352 instead. I have no idea what the difference between those are, I just followed the steps in this post by Ji_Balcar

The above steps has given me a system that has good performance, reasonable battery time when used with the Intel graphics activated (more than five hours) and can be used with external monitors and can restart after being suspended. So far I’ve only connected one external monitor and I’ve only sparingly been running with the Nvida card activated since it consumes more power; roughly a battery time around three hours.

Below follows some notes about tweaks I’ve made to the Ubuntu desktop environment. In the past I’ve used the tiling window manager XMonad, but I found that the hassle of keeping my configuration in sync with Ubuntu upgrades was not worth the small increase in productivity. So now I’m trying to do the minimal amount of adjustments, but some adjustments are still needed.

I removed the default created directories under /home/$USER, then edited ~/.config/user-dirs.dirs to use my own names. Disabled online search via System Settings => Security & Privacy => Search tab. Added partner repositories Software & Updates => Other Software tab. Checked in all boxes.

Ubuntu has virtual desktops disabled out of the box. I’ve enabled them by opening System Settings => Appearence => Behaviour and ticking in the Enable Virtual Desktops checkbox. It only has four desktops out of the box, but I’ve increased that to the maximum six by running these commands.

gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ vsize 1
gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ hsize 6

The Dell XPS 15 9550 has a 4K monitor - the fonts and menus looks tiny, very tiny. To fix that I opened Settings Manager => Displays and adjusted the Scale for menu and title bars to be 2 instead of the default 1.

I did a reset of the locale by editing /etc/default/locale (I always mix up the keyboard layout with the locale setting when running the Ubuntu installation-program - I want the Swedish keyboard layout, but English menus and error messages).

LANG=en_US.UTF-8
LC_MESSAGE=POSIX

I’m a Vim user, and for easy switching between command and insert mode, I’ve remapped the Esc button to Caps Lock and visa versa. I’ve also remapped one menu-button to ctrl. In earlier versions of Ubuntu, I’ve done that using the .Xmodmap file, but that one wasn’ read by the X server in Ubuntu 15.10. Looks like Xmodmap has been superceeded by the XKB system. Searched around but didn’t immediately figure out where to place the configuration directives, so I put them in .profile:

setxkbmap -option altwin:ctrl_win
setxkbmap -option caps:swapescape
setxkbmap -option terminate:ctrl_alt_bksp

Gnome resets upon changes. Will this work? http://askubuntu.com/questions/363346/how-to-permanently-switch-caps-lock-and-esc

I use gnome-terminal as my terminal emulator. It has builtin support for the Solarized colorscheme. I’m using the light theme as my default.

Add myself to dialout group, in order to access the serialport

sudo usermod -a -G dialout $USER

Installed sysstat and activated sar by editing /etc/default/sysstat

ENABLED="true"

Disable notify-od software updates available https://askubuntu.com/questions/773874/disable-gnome-softwares-notification-bubble-notify-osd-for-available-updates