As we (darksider15 and myself) regularly set up PCs for private use with Ubuntu and Gnome Shell we’d like to share our usual considerations before doing the installation as well as our list of usually applied configurations after the installation. For our example we use Ubuntu 14.04 and Gnome Shell 3.10. In order to not install Ubuntu’s default desktop Unity we use the Ubuntu GNOME flavour, but regular Ubuntu including Unity could be used as well (Gnome Shell can be installed from the repositories then). In case you are new to Gnome Shell we strongly recommend a short reading – as this will probably save you lots of time and make your life a lot easier: Gnome shell cheat sheet one and two (they are not always updated to the newest…). Some examples for usable – but not very intuitive features of Gnome Shell for people coming from other desktop environments:
- The primary window menu of Gnome Shell Style Windows (in Ubuntu 14.04 e.g. Nautilus and gnome tweak tool) is hidden in the black area right next to the “Activities” button (top left) and gets shown on a click.
- The message tray (lists messages from apps like skype, pidgin, thunderbird etc.) is accessible via the shortcut Super+M.
- The suspend button is hidden in the top right user menu under the power button and becomes visible on pressing Alt.
- You can restart Gnome Shell with executing “r” in the Alt+F2 box without closing your applications etc. Useful to developers as well as to “soft reset” stuff in case of window freezes or other bugs. This is btw. equivalent to calling
gnome-shell --replace directly (in case you do that from a tty without X server you need to specify the display – which will usually be 0 as you will typically only have one X server running:
gnome-shell --replace -d :0).
To consider for backup before installation
Depending on who’s PC you are installing the OS on (and if the installed OS already is Ubuntu or another Linux distribution installed) you might want to backup some things beside private documents, music, videos etc. Assuming that the old OS is Ubuntu with Gnome Shell, we usually check the following things for backup:
- ~/.bashrc contains path variables, changes to bash behaviour etc.
- ~/.bash_aliases contains aliases, other additions to bashrc
- ~/.bash_profile “The personal initialization file, executed for login shells ” (see bash man page)
- ~/bin/ may contain scripts and links to executables (as ~/bin is usually added to PATH).
- ~/.gnupg/: contains PGP keys (used e.g. via Thunderbird enigmail).
- ~/.mozilla/: contains Firefox configuration, history etc.
- ~/.purple/: contains purple based messaging configuration (e.g. pidgin), including possibly used OTR keys.
- ~/.ssh/ contains ssh private and public keys, authorized keys for ssh login and ssh fingerprints seen in the past.
- ~/.thunderbird/ contains Thunderbird configuration and mails.
- GTK bookmarks: contains GTK based bookmarks (used e.g. by Nautilus, Nemo, Thunar, PCManFM etc). For example on Ubuntu 12.04 gtk bookmarks are located at ~/.gtk-bookmarks, on Ubuntu 14.04 they are located at ~/.config/gtk-3.0/bookmarks.
- /etc/fstab contains automatic mounted partitions and folders.
After installing Ubuntu 14.04 Gnome flavour: configuration
At first we usually install graphics drivers as they might cause problems (depending on the specific graphics). In our example we have a Nvidia GeForce 5400 (GF108 Fermi chip) in the Optimus graphics of a ThinkPad T430 notebook. For compatibility reasons the integrated graphics have been disabled completely in the BIOS, only the dedicated Nvidia graphics are used. To obtain drivers we include the ubuntu-x-swat PPA and install the current drivers from there:
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current
After installing the driver you can check with
sudo lspci -k
if the driver is loaded (look for VGA in the list, check if the kernel driver in use is nvidia). To ensure that the current setup supports 3D hardware acceleration (essential for most 3D games) use
glxinfo | grep direct
Gnome shell extensions
We typically install some Gnome Shell Extensions, including the following ones:
- AlternateTab: don’t group windows of same application in Alt+Tab.
- Dash to Dock: easy way to set maximum dock icon size + disabling “require pressure to show dock” to achieve nearly-normal dock behaviour.
- gTile: a window tiling utility – supports aligning windows to tiles spanning your screen (e.g. 2×2, 3×2, 4×4).
- ignore_request_hide_titlebar: makes (some) Gnome Shell Style applications show their titlebar again (currently more of a bugfix than feature with the way we use Gnome Shell).
- Native windows placement: more intuitive placing of windows in the activities window.
- Notification Alerts: makes the user’s menu blink on new messages in the message tray.
- Recent Items: adds list of recently used items to the top bar.
- Removable Drives Menu: status icon for ejecting removable drives.
- Search recently used files: integrated into the Gnome Shell Dash
- TopIcons: although there exist more sophisticated versions this one shows Skype/Pidgin icon in top bar.
- WindowOverlay Icons: shows application symbol above windows in the activities overview. With centred and enlarged icons (~150px) hepls pinpointing windows fast in our opinion.
Mount additional partition
In case there is such one (which was not stated for automatic mounting right during installing Ubuntu) you can add an corresponding entry to /etc/fstab. For compatibility reasons we are using /media/data as mount point here (nowadays Ubuntu would use /media/username/data instead). A typical entry for an ext3 partition would be
UUID=23f8a3fb-3f0d-4960-8c88-80e0db3cc471 /media/data ext3 defaults 0 2
and for ntfs it would be
UUID=581F7F14085DF65D /media/data ntfs defaults 0 0
You can either use the device in /dev or the UUID to specify the device to be mounted. Both can be found out using blkid:
In case you have troubles with write access to the disk ensure that the folder it is mounted to (/media/data) exists and has write access for your user.
Window button layout: put buttons left
We usually change the button layout so that the buttons are arranged on the left side (like with MAC systems) – as this saves you mouse distance. For Gnome Shell the needed tool is dconf-editor:
sudo apt-get install dconf-editor
In dconf-editor changes have to be applied to org–>gnome–>shell–>overrides–>button-layout (there is also a button-layout in org–>gnome–>desktop–>wm–>preferences–>button-layout – that’s probably be the same entry visible multiple times in dconfg, but try changing this one if the first didn’t work for you). Our usual button layout is
System font and font size
In our opinion Ubuntu system font is rather big. It can be decrease in the fonts tab of gnome tweak tool:
sudo apt-get install gnome-tweak-tool
We usually reduce the default (11pt) to 10pt for all but monospace fonts. If you feel comfortable with the standard fonts at all: we usually change interface and documents font to “Ubuntu” (slightly easier to read in our opinion).
We like to change the Gnome Shell default cursor theme (Adwaita, white border, black filling) to DMZ-White (black border, white filling). Therefore you first need the dmz cursor theme:
sudo apt-get install dmz-cursor-theme
Then the cursor theme can be changed in Appearance->Cursor of gnome-tweak-tool.
Window selection behaviour
If you’re used to mouse-over window selection (as I’m personally): this can be changed using gnome-tweak-tool again. Select “mouse over” or “sloppy” in Windows–>Focus Mode. (difference between mouseover and sloppy). I personally don’t like windows to be raised to the front automatically after the mouse pointer standing still for a certain time in it. This can be changed by deselecting “auto-raise” in org–>gnome–>desktop–>wm–>preferences. or by adapting “auto-raise-delay” next to it. And in case you want windows to immediately get focus as you hover the mouse over them deselect “focus-change-on-pointer-rest” in org–>gnome–>shell–>overrides.
Tooltip background color
The default tooltip background color is black – which is horrible for programs using dark fonts (like Eclipse). To change the tooltip background color install
gnome-color-chooser and in Specific–>Tooltips change Foreground to black and Background to pale yellow as Nick Andrik suggested here.
Show all startup applications
Since Ubuntu 12.04 some startup applications are hidden, therefore not shown in gnome-session-properties. To show those applications use:
sudo sed -i "s/NoDisplay=true/NoDisplay=false/g" /etc/xdg/autostart/*.desktop
Sadly, at the moment changing shortcuts via UI in gnome shell is split between multiple applications. Some applications show options to change settings that are not used at all. For window specific shortcuts use dconf-editor in org–>gnome–>desktop–>wm–>keybindings as you can manipulate most stuff there. Our typical shortcuts include:
- toggle-maximized: [‘Up’]
- Maximize vertically: [‘Page_Up’]
- Minimize: [‘Down’]
User specific commands can be defined using “Shortcuts–>Custom Shortcuts” in the “Keyboard” app. We typically create a shortcut to open a file manager at the data partition, such as Ctrl+Alt+E for nemo /data/media or nautilus /data/media, depending on your file manager.
Multi monitors: get Ubuntu to remember their setup
Currently Ubuntu 14.04 seems to not remember multi monitor configurations for the reason of not loading ~/.config/monitors.xml (where the setup is stored correctly after configuring it). The update-monitor-position script provides a nice workaround to this problem by enforcing loading of monitors.xml as a custom startup application.
By installing codecs for restricted formats we ensure to be able to play (most) formats straight away (although these formats suck for obvious reasons and should be avoided in favour of non-restricted ones).
We’re not very convinced of Nautilus as file browser atm with the way we want to use Gnome Shell. The main problem is that it can’t be configured to the point anymore (e.g. bugs in the window button placement for gnome shell style windows). Another problem for power users may be the dropped tree view features in the main area (the right one, not the left tree or places view). We hope that’s coming back soon. Currently we use Nemo as file browser, but there are of course multiple options for people feeling like replacing Nautilus in Ubuntu 14.04, with us only listing some options:
- Nemo: Nautilus fork, default for Linux mint (Cinnamon desktop), features a tree view.
- Thunar: Nautilus fork, default for Xubuntu (Xfce desktop), no tree view either.
- PCManFM: default for Lubuntu (Lxde desktop), no tree view either.
- Dolphin: Kubuntu default (KDE desktop), different look and feel, but very powerful and customizable, features a tree view.
We usually adapt Bash behaviour to immediately log commands of all opened terminals.
Usually we also replace the default terminal emulation if it’s not very powerful (split screens, all hotkeys configurable etc.). Our current choice for Ubuntu is terminator, which features split screens and a detailed hotkey configuration – but of course there are many others out there with similar features.
Besides enabling the “do not track me” flags in browsers other measures might also help reducing the traceability. In Firefox–>Properties–>Privacy (actual names might differ slightly, but the meaning is clear):
- Enable “Firefox will record custom history”: discard third party cookies when Firefox closes
- Enable “Clear history on Firefox close”: check “empty cache”, “discard cookies” and “discard active logins”
Some Firefox addons we find useful, therefore tend to install straight away as well:
If Yakuake is started along with the system we usually disable the notification popups – they might cause problems in case Yakuake displays them too soon.
Notifications from Pidgin, Skype etc.
We usually turn off notification popups on buddies going online or offline, as this causes additional notifications in the message tray (and the user’s menu to blink, caused by the corresponding gnome shell extension). With Pidgin, notifications can be configured in Tool–>Plugins–>Libnotify Popups. With Skype, notifications can be configured in Skype–>Options–>Notifications (look for “Contact Came Online/Offline”).
There seems to be an issue with the global media button “play/pause” in Ubuntu 14.04 with the command not being delivered correctly to applications. Specifically for Amarok (our music player of choice) the button works hardly anytime as long as the system (not Amarok itself) has it assigned to the system-wide play/pause shortcut. Therefore one solution is to unbind the “Play (or play/pause)” shortcut in Keyboard->Shortcuts->Sound and Media – Amark should receive the command correctly afterwards (ensure there is a correct binding in Amarok in Settings->Configure Shortcuts…->Play/Pause->Global)
We usually install Thunderbird lightning from the repositories and it’s addons directly via Thunderbird->Tools->Addons. Addons we find useful are:
Finally: root partition backup
Discussions about backups are omnipresent, so we won’t discuss the problem again here. In case there is no automatic backup having a “clean” – but properly configured system right after installation might be a good time to do a backup. That might save you lots of time in case users mess up the system. An option for quick backups is using fsarchiver from a live media (the installation media might come in handy). For a quick start with fsarchiver we’d recommend their quick start page. We assume that your installation was not split across multiple partitions in our example. The fsarchiver-command for backing up a partition on /dev/sda1 to /media/data/backups/datetime.fsa using 2 cores (
-j2), splitting archives to multiple files of 4000MB (
-s4000), standard compression (
-z3) and verbose output (
-v) from a live media would be:
sudo fsarchiver savefs -j2 -s4000 -z3 -v /media/data/backups/datetime.fsa /dev/sda1
The fsarchiver-command for restoring partition /dev/sda1 from /media/data/backups/datetime.fsa from a live media would be:
sudo fsarchiver restfs -j2 -v /media/data/backups/datetime.fsa id=0,dest=/dev/sda1