debian requires restart | Web server debian | systemd archlinux | php currentdate | pdo blob: contain errors
 


 

How To Setup A Workstation Computer With Ubuntu 16.04 Desktop Step by Step


How To Setup A Workstation Computer With Ubuntu 16.04 Desktop Step by Step

After four years with Arch Linux in my workstation computer, I switched back to Ubuntu desktop (for one more time).

Arch Linux is an amazing rock solid Linux distribution and it offers the best documentation by far. However, I moved to Ubuntu 16.04 LTS (Long Term Support) mainly for these reasons:

  1. I want to spend less time to manage my workstation computer (updates are "pain" in Arch, but very easy in Debian/Ubuntu).
  2. I have transferred ALL MY DATA to cloud during last 12 months (basically in Google Drive). I am working many hours with Android in mobile devices, so my desktop workstation can have a more simple setup.
  3. I have transferred ALL MY SERVER APPLICATIONS (apache, php, mysql, postgres) to a Debian VPS, so my desktop workstation can have a more simple setup.

Here is my workstation computer hardware configuration:

Ubuntu desktop seems to be much more mature and stable in version 16.04 (latest LTS version). The final result is a Free and Open Source workstation environment, which can meet the requirements of the vast majority of users.

Software installation in Ubuntu can be performed using command line

sudo apt-get install <package_name>

or using graphic utilities (“Synaptic” or “Software center”). See details in this post. In this tutorial I use the first method.

My goal is to create a Simple And Functional Linux Desktop.

REMARKS

  1. you will not find information on setup server applications like apache, php, mysql etc in this article. If you are interested on this software, please see this post.
  2. in this article I also describe the software I use for software development. If you are not interested on this kind of software, please skip relevant sections.

Basic setup

Ubuntu desktop setup is a simple graphical procedure. Download Ubuntu desktop here. Insert the CD (or the USB) and follow the instructions. Setup will only ask for your name and password and disk partitioning. Everything else is a graphical “wizard”.

Main system user

Username and password you provide during default setup will be used to create the main user of your system. This user will be automatically added to sudoers group (users with “administration privileges”).

By default, the root account password is locked in Ubuntu. So, to execute admin tasks you have to use sudo. For example:

sudo apt-get install <package_name>

Disk Partitions

You may let Ubuntu to decide for your disk(s) partitioning or to define it manually, as in my case.

I use ext4 file system for system and data partitions.

My computer has one SSD disk 240 GB, so I used the following structure.

(click the thumb for full image)

The first partition I defined is the /boot partition (mount point /boot) and the second is the root partition (mount point /). It is strongly recommended to define a swap partition. As a rule of thumb set the double size of your computer RAM. It is recommended (but not required) to have a separate boot partition.

These three partitions are dedicated to Operating System files. So, I have defined one more partition, just to write data. This is the data partition (mount point /data). The obvious advantage of having a data partition is you can format the system partitions and install a new Operating System without affecting your data.

After completing the Basic setup

When setup finishes, you have a working system, covering all of your basic needs.

The default graphical enviroment of Ubuntu is called Unity. It looks like Gnome, but created by Canonical (the company behind Ubuntu) specifically for Ubuntu. You can also install other desktop environments (eg KDE or XFCE etc). DO NOT DO IT! (imho). If you want another environment, install a different Ubuntu flavor (there are many), eg Kubuntu, Xubuntu etc. Do not make major changes in Ubuntu, if you want a stable and easily upgradeable desktop environment (imho always).

You will not find a START MENU in Ubuntu Unity, as in many other graphical environments (Linux or Microsoft Windows).

Some applications shortcuts are already in the Unity Launcher (the button bar in the left of the desktop).

(click the thumb for full image)

You can launch any application using Ubuntu Unity Dash (see image). Open Dash (click the top button of the Launcher or press SUPER key) and type some letters of the name of the application. For example, to open a terminal:

(click the thumb for full image)

You can move application shortcuts from the Dash to Launcher (drag and drop). You can "Unlock" an application from the Launcher using "Right Click → Unlock from Launcher".

The HUD or Heads Up Display is a search-based alternative to traditional menus. To open the HUD tap ALT. With HUD you can directly select a menu option of the running application without navigating to menu hierarchy, something like a "Command Palette".

(click the thumb for full image)

Press and Hold the "SUPER" key to display Useful keyboard shortcuts.

(click the thumb for full image)

Example:

  • SUPER → to open the Dash
  • CTRL+ALT+T → to open the Terminal

Many applications are preinstalled in Ubuntu. Some of them are:

You can find documentation at help.ubuntu.com. And of course, always remember, Google is your "friend".

Next steps

Next steps include:

  1. Update System
  2. Tweak SSD drive
  3. Tweak Command Line Environment
  4. Install more Command Line applications
  5. Programming Languages
  6. Tweak Desktop Graphical Environment
  7. Install more Graphical applications
  8. Install Web Development software
  9. Setup peripherals
  10. Cloud integration
  11. Recovery mode
  12. Backup your workstation

Update System

The first thing you have to do after Basic setup is to update your system.

Using the Dash launch “Software updater” (recommended)

(click the thumb for full image)

or open a terminal and type

sudo apt-get update && sudo apt-get -V upgrade

Tweak SSD drive

Ubuntu 16.04 seems to be ready for SSD drives. There are some steps you should take to extend the life of your SSD drive. The keypoint is to reduce write actions. Read this post for details.

Tweak Command Line Environment

This section is optional.

Base system includes a lot of command line tools (GNU or other). To run these programs, first launch a Terminal. The most important command line tools are:

  • Text editors: nano (which I use in this tutorial) and the famous vi editor
  • The Debian package manager apt
  • cp (copy), mv (move - rename), rm (delete) files
  • ls list files
  • Archiving utility tar
  • Compression utility gzip
  • Remote operations utilities (OpenSSH project) like ssh, scp, and sftp.
  • Download utility wget
  • File search utility locate

Set default text editor

nano in my case:

sudo update-alternatives --config editor

result:

There are 5 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/vim.gnome   60        auto mode
  1            /bin/ed             -100       manual mode
* 2            /bin/nano            40        manual mode
  3            /usr/bin/mcedit      25        manual mode
  4            /usr/bin/vim.gnome   60        manual mode
  5            /usr/bin/vim.tiny    10        manual mode

Press <enter> to keep the current choice[*], or type selection number:

Customize nano editor

With your favorite text editor (nano in my case), edit the configuration file:

sudo nano /etc/nanorc

Show line numbers

Find #set constantshow and uncomment this line

...
set constantshow
## (The old form, 'const', is deprecated.)
...

Set tab size

...
set tabsize 4
...

Use SSH key authentication

To connect to a remote computer using SSH, you have to give a command like:

ssh RemoteHost -l username

Then you will be prompted for the password. If you do not want to type the password each time you want to connect, you may use “SSH key authentication”, which is more secure method.

Create your keys:

ssh-keygen -t rsa -b 4096 -C "youremail"

(Remember to use a strong passphrase)

Then copy your public key to RemoteServer

ssh-copy-id -i ~/.ssh/id_rsa.pub RemoteServer

Since then, every time you connect using ssh, you will not be asked for a password. The first time (only) you will be asked for the passphrase.

SSH autocompletion

SSH autocompletion is very useful but Ubuntu sets by default HashKnownHosts yes in /etc/ssh/ssh_config. Set to HashKnownHosts no

Install more Command Line applications

This section is optional.

Ntp (Network Time Protocol)

Installing ntp your computer clock can be synchronized with time servers. On Ubuntu, this is done by synchronizing with ntpdate tool.

So, there is no need to install ntp on Ubuntu. However, if you want to install it:

sudo apt-get install ntp

Midnight Commander (mc)

Midnight Commander is a powerful file manager (local, remote and cloud files). Probably the most popular command line file manager in Linux world.

sudo apt-get install mc

htop

htop is an interactive process viewer for Unix.

sudo apt-get install htop

iftop

You can use iftop to display bandwidth usage on an interface.

sudo apt-get install iftop

Openssh-server

If you want to be connected with your workstation from command line using ssh (e.g. from another computer in your LAN), install:

sudo apt-get install openssh-server

Examples

Secure Connect to your computer remotely:

ssh xxx.xxx.x.x -l username (xxx.xxx.x.x is the IP address)

Secure Copy a file remotely:

scp username@xxx.xxx.x.x:/path/to/remote /path/to/local

Harden SSH

Edit SSH configuration:

sudo nano /etc/ssh/sshd_config

Make the following changes:

...
PermitRootLogin no
...
X11Forwarding no
...
AllowUsers yourusername ...
...

Restart SSH

sudo systemctl restart ssh.service

Samba server and client

If you want to be connected with your workstation either from command line or your File Manager (e.g. from another computer in your LAN, Linux, Windows or Mac), install Samba.

Read details in this post: How To Setup Samba on Ubuntu Workstation

p7zip

p7zip is a port of 7z for POSIX systems like Unix (Linux, Solaris etc).

7z is an Excellent archiving software offering High compression ratio and Strong AES-256 encryption.

sudo apt-get install p7zip-full p7zip-rar

Find more information and examples at this post: Easily Compress and/or Encrypt Files in Linux Using 7z (p7zip) Archiver

unrar

This is an utility to extract rar files

sudo apt-get install unrar

wipe

Wipe is useful to secure delete files.

sudo apt-get install wipe

For integration (will add an option to right-click menu) with Nautilus file manager (recommended):

sudo apt-get install nautilus-wipe

Programming Languages

This section is optional.

After Basic Ubuntu setup, the following programming languages are installed:

Install Java (Oracle JDK 8)

To install Java, see this post: How To Setup Java on Ubuntu 16.04.

Tweak Desktop Graphical Environment

Ubuntu settings are available from Top Right menu:

(click the thumb for full image)

There are a lot of settings you can modify to tweak your system:

(click the thumb for full image)

Additional tools

The following graphical tools are available to tweak Desktop environment

  1. dconf Editor (low-level configuration system)

    sudo apt-get install dconf-tools
    
  2. Unity tweak tool (settings manager for the Unity desktop)

    sudo apt-get install unity-tweak-tool
    
  3. Compiz config settings manager (settings manager for Compiz OpenGL compositing window manager)

    sudo apt-get install compizconfig-settings-manager
    

System Updates Settings

Select "Software & Updates" from "System Settings" and go to tab "Updates"

The default setting is "Automatic Download and Install Updates". Set package updates to “Notify”:

(click the thumb for full image)

NVIDIA Drivers

Select "Software & Updates" from "System Settings" and go to tab "Additional Drivers"

Change nouveau to NVIDIA:

(click the thumb for full image)

Mouse Sensitivity

After installation of Ubuntu Desktop 16.04, mouse is very sensitive (practically unusable) in most systems with wireless mouse. To fix this issue, read this post: Fix Mouse Sensitivity in Ubuntu 16.04

Appearance

Select "Appearance" from "System Settings" and go to first tab "Look"

first tab ("Look")

Here you can select Wallpaper and Theme.

second tab ("Behavior")

My prererences are

  • Show menus for a window → in the window's title bar
  • Enable workpsaces

Language support

Select "Language support" from "System Settings". Your system will be checked automatically. You will get the message "Some translations or writing aids available for your chosen languages are not installed yet. Do you want to install them now?"

(click the thumb for full image)

Select "Install", so missing packages will be installed. In my case:

hyphen-en-gb
libreoffice-l10n-en-za
libreoffice-l10n-el
thunderbird-locale-el
language-pack-el
language-pack-gnome-el
hunspell-en-za
libreoffice-help-en-gb
hunspell-el
firefox-locale-el
libreoffice-help-el
fonts-mgopen
mythes-en-au
hunspell-en-gb
thunderbird-locale-en-gb
hunspell-en-au
hyphen-el
libreoffice-l10n-en-gb
hunspell-en-ca

Text Entry

Select "Text Entry" from "System Settings".

I modified the shortcut for changing keyboard layout (change language) to ALT+SHIFT instead of (the default) SUPER+SPACE

Default applications

Select "Details" from "System Settings". Then, define your Default applications.

System Load Indicator (indicator-multiload)

System Load Indicator provides real time information for System Load and Performance of your computer. To install it:

sudo apt-get install indicator-multiload

Launch this indicator from the Dash after installation. indicator-multiload will appear in the top bar. Select "Preferences" from the Right-click menu to customize it:

(click the thumb for full image)

Tweak Nautilus File Manager (Files)

  • Define Views

    Nautilus menu → Edit → Preferences → Views (1st tab)

    (click the thumb for full image)
  • Define visible columns

    Nautilus menu → Edit → Preferences → List Columns (4th tab)

    (click the thumb for full image)
  • Always use location entry

    You can access location entry in Nautilus using CTRL+L. To make it permanent, use dconf Editor:

    Org → gnome → nautilus → preferences → always-use-location-entry

    (click the thumb for full image)
  • remove unwanted default bookmarks in Nautilus

    Edit the following files:

    nano ~/.config/user-dirs.dirs
    

    and

    sudo nano /etc/xdg/user-dirs.defaults
    

    Logout - login to enable the changes you made.

Tweak Gedit (text Editor)

You may add advanced features to Gedit text editor by installing gedit-plugins package. Here is a list of bundled plugins and those shipped with gedit-plugins. I enabled Draw Spaces plugin.

sudo apt-get install gedit-plugins

Microsoft fonts

To install Microsoft fonts, use:

sudo apt-get install ttf-mscorefonts-installer

Tweak Firefox

Firefox is preinstalled in Ubuntu. See this post for detsils: How To Setup And Configure Mozilla Firefox on Ubuntu 16.04.

Tweak Libreoffice

Adding Spell-check for your language is simple.

Select "Language support" from "System Settings". Ubuntu will check automatically for your language dictionaries and will set them up.

Networking

After default setup you will find Gnome Network Manager in the top bar. Ethernet Network (wired connections) and Wireless Networks (Wi-Fi) are all available there.

Assign static IP address

After default setup your computer will obtain a “fake” IP address automatically, using DHCP. If you want to assign a static IP address:

Top bar → NetworkManager → Edit connections

Then

Ethernet → Wired connection 1 → Edit → IPv4 settings

(click the thumb for full image)

and press Save

Enable the changes you made

Top bar → NetworkManager → Ethernet Network → Disconnect

Then connect again

Top bar → NetworkManager → Ethernet Network → Wired connection 1

Check the changes you made

Top bar → NetworkManager → Connection Information

or using command line:

ifconfig

Desktop magnification

Desktop magnification is an accessibility feature. It is also very important, when you create screencast videos. Launch CompizConfig settings manager and Tick the box on

Accesibility → Enhanced Zoom Desktop

Click on Enhanced Zoom Desktop and define Zoom in and Zoom out keys (eg CTRL+F7 and CTRL+F6)

(click the thumb for full image)

Install more Graphical applications

It is recommended to install software from Repositories, in order to keep your system secure and updated. In some cases this is not possible (some Java applications or software with custom installers). In this case, you have to take care for updates and newer versions of these applications.

Below I mention the software installed in this tutorial without using official or other Ubuntu repositories: Oracle Java, PhpStorm, yed, AEScrypt, Peazip, TeamViewer.

All software is Open Source, except Google Chrome, Dropbox, PhpStorm, Teamviewer. Moreover Dropbox, PhpStorm and Teamviewer are commercial software (Dropbox offers a free plan).

KeePassX

KeePassX password manager is the first application I open after my Linux workstation bootup and the last I close before shutdown. It is strongly recommended to install and use a password manager. Read this post: Manage Your Passwords With KeePass in Linux And Android.

Dropbox

I use Dropbox to synchronize KeePass database in all my devices (computer, laptop, phone, tablet).

sudo apt-get install nautilus-dropbox

Synaptic

Synaptic is a GUI to manage software packages (add - remove software)

sudo apt-get install synaptic

Google Chrome

Read this post: How To Setup And Configure Google Chrome on Ubuntu 16.04.

uget

uGet is an Open Source Download Manager

sudo apt-get install uget

To add support for BitTorrents, install aria2 plugin:

sudo apt-get install aria2

then enable plugin from uGet Settings. Just click Ok in this dialog:

(click the thumb for full image)

From Settings, set bandwidth limit:

(click the thumb for full image)

so, the result will be:

(click the thumb for full image)

Ubuntu default setup contains Transmission BitTorrent client.

Filezilla

Filezilla is a great FTP client

sudo apt-get install filezilla

Leafpad

Leafpad is a simple text editor (like Notepad in Microsoft Windows)

sudo apt-get install leafpad

Byobu

byobu is a handy terminal multiplexer. Among others, it is very useful when you want to leave a process running after closing your terminal (you cannot do this with the "common" Terminal).

sudo apt-get install byobu

However, there is another reason to install byobu. purge-old-kernels is a simple bash script, which uses apt remove --purge command to remove old kernels. It will be available in your system after installing package byobu. For more details, read this post: How to Remove Old Kernels in Debian and Ubuntu.

Terminator

Terminator is a useful tool for arranging terminals.

sudo apt-get install terminator

Gksu

gksu is a library and application used to ask the user for passwords to run programs as root or other user. ATTENTION: use it with caution!

sudo apt-get install gksu

Protect Your Eyes with Redshift

Redshift adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night.

sudo apt-get install redshift redshift-gtk

Gimp

Gimp is an advanced image and photo editor. It is the Open Source alternative of Abode PhotoShop.

sudo apt-get install gimp

Single-Window Mode

To change the default multi-window mode, use:

Menu → Windows → Single-Window Mode

Gimp plugins

Gimp Plugin Registry is a set of Gimp plugins. This will add FX-Foundry menu and Save for Web option in File menu:

sudo apt-get install gimp-plugin-registry
(click the thumb for full image)

Shutter

Shutter is an advanced screenshot tool.

sudo apt-get install shutter

To capture full webpage screenshots:

sudo apt-get install gnome-web-photo
(click the thumb for full image)

yEd

yEd is a powerful Java application to generate high-quality diagrams.

Download the installer from https://www.yworks.com/downloads#yEd.

Install extra media codecs

Commonly used media codecs and fonts for Ubuntu. Note: use (*)ubuntu-restricted-extras for other flavors of Ubuntu (eg Xubuntu, Kubuntu etc).

sudo apt-get install ubuntu-restricted-extras

Install Winff

Winff is a Video converter (an FFmpeg GUI).

sudo apt-get install winff

OpenShot

Openshot is an advanced video editor.

sudo apt-get install openshot

Imagination

Imagination is an advanced slide show maker.

sudo apt-get install imagination

Kazam

Kazam is a powerful Screencaster

sudo apt-get install kazam

Audacity

Audacity is an advanced audio editor for multi-track recording and editing.

sudo apt-get install audacity

VLC

VLC is an advanced media player

sudo apt-get install vlc

gscan2pdf

gscan2pdf produces PDF from scanned documents. OCR (Optical Character Recognition) also supported.

sudo apt-get install gscan2pdf

Brasero disk burner

Brasero is a simple but powerful disk burner.

sudo apt-get install brasero

Peazip

PeaZip is an advanced archiver utility, based on Open Source technologies of 7-Zip, p7zip, FreeArc, PAQ, and PEA projects. Secure deleting files also supported.

Download (latest) portable Linux version here.

Create a shortcut to launch Peazip from Dash:

sudo nano /usr/share/applications/Peazip.desktop

add the following (replace /home/pontikis/Apps/peazip_portable-6.1.0.LINUX.x86_64.GTK2/ with your path)

[Desktop Entry]
Name=PeaZip
GenericName=Archiving Tool
Exec=/home/pontikis/Apps/peazip_portable-6.1.0.LINUX.x86_64.GTK2/peazip %F
Icon=/home/pontikis/Apps/peazip_portable-6.1.0.LINUX.x86_64.GTK2/FreeDesktop_integration/peazip.png
Terminal=false
Type=Application
Categories=GTK;KDE;Utility;System;Archiving;
Name[en_US]=Peazip

FreeFileSync

FreeFileSync is a free Open Source tool to synchronize files folders. Download it here and unpack it somewhere.

Create a shortcut to launch FreeFileSync from Dash:

sudo nano /usr/share/applications/FreeFileSync.desktop

add the following (replace /home/pontikis/Apps/FreeFileSync/ with your path)

[Desktop Entry]
Name=FreeFileSync
GenericName=Sync Tool
Exec=/home/pontikis/Apps/FreeFileSync/FreeFileSync
Icon=/home/pontikis/Apps/FreeFileSync/FreeFileSync.png
Terminal=false
Type=Application

gparted

GParted is an advanced disk partition editor.

sudo apt-get install gparted

REMARK: You will find Gnome disks in default Ubuntu setup, a tool similar with gparted.

In other Ubuntu flavors you can install Gnome disks, using:

sudo apt-get install gnome-disk-utility

hardinfo

hardinfo is a system profiler and benchmark tool for Linux systems.

sudo apt-get install hardinfo

GSmartControl

GSmartControl is a Hard disk drive and SSD health inspection tool. Actually, it is a graphical interface for smartctl, a command line tool to check (modern) Hard Disks and SSD which support SMART.

sudo apt-get install gsmartcontrol

psensor

psensor is a graphical hardware temperature monitoring application.

sudo apt-get install psensor

AEScrypt

AESCrypt is a Java application with which you can easily and securely encrypt files with Advanced Encryption Standard (AES), either from command line or using GUI.

Download Linux installer here.

Android app available here.

Virtualbox

Virtualbox is an advanced virtualization platform. Read this post: How To Setup Virtualbox on Ubuntu 16.04.

Teamviewer

Teamviewer is remote access and online meeting software (commercial software free for personal use).

Download .deb package here.

Install it (replace teamviewer_11.0.57095_i386.deb with the recent version you have downloaded):

sudo dpkg -i teamviewer_11.0.57095_i386.deb

You will get something like:

Selecting previously unselected package teamviewer:i386.
(Reading database ... 230757 files and directories currently installed.)
Preparing to unpack teamviewer_11.0.57095_i386.deb ...
Unpacking teamviewer:i386 (11.0.57095) ...
dpkg: dependency problems prevent configuration of teamviewer:i386:
 teamviewer:i386 depends on libc6 (>= 2.4).
 teamviewer:i386 depends on libgcc1.
 teamviewer:i386 depends on libasound2.
 teamviewer:i386 depends on libdbus-1-3.
 teamviewer:i386 depends on libexpat1.
 teamviewer:i386 depends on libfontconfig1.
 teamviewer:i386 depends on libfreetype6.
 teamviewer:i386 depends on libjpeg62.
 teamviewer:i386 depends on libpng12-0.
 teamviewer:i386 depends on libsm6.
 teamviewer:i386 depends on libxdamage1.
 teamviewer:i386 depends on libxext6.
 teamviewer:i386 depends on libxfixes3.
 teamviewer:i386 depends on libxinerama1.
 teamviewer:i386 depends on libxrandr2.
 teamviewer:i386 depends on libxrender1.
 teamviewer:i386 depends on libxtst6.
 teamviewer:i386 depends on zlib1g.

dpkg: error processing package teamviewer:i386 (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 teamviewer:i386

To install missing dependencies

sudo apt-get install -f

You will get something like:

Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  gcc-6-base:i386 libasound2:i386 libc6:i386 libdbus-1-3:i386 libexpat1:i386
  libfontconfig1:i386 libfreetype6:i386 libgcc1:i386 libgcrypt20:i386 libgpg-error0:i386
  libice6:i386 libjpeg62:i386 liblzma5:i386 libpcre3:i386 libpng12-0:i386 libselinux1:i386
  libsm6:i386 libsystemd0:i386 libuuid1:i386 libx11-6:i386 libxau6:i386 libxcb1:i386
  libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxinerama1:i386
  libxrandr2:i386 libxrender1:i386 libxtst6:i386 zlib1g:i386
Suggested packages:
  libasound2-plugins:i386 glibc-doc:i386 locales:i386 rng-tools:i386
The following NEW packages will be installed:
  gcc-6-base:i386 libasound2:i386 libc6:i386 libdbus-1-3:i386 libexpat1:i386
  libfontconfig1:i386 libfreetype6:i386 libgcc1:i386 libgcrypt20:i386 libgpg-error0:i386
  libice6:i386 libjpeg62:i386 liblzma5:i386 libpcre3:i386 libpng12-0:i386 libselinux1:i386
  libsm6:i386 libsystemd0:i386 libuuid1:i386 libx11-6:i386 libxau6:i386 libxcb1:i386
  libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxinerama1:i386
  libxrandr2:i386 libxrender1:i386 libxtst6:i386 zlib1g:i386
0 upgraded, 31 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 5,461 kB of archives.
After this operation, 19.7 MB of additional disk space will be used.
Do you want to continue? [Y/n]

MuseScore

MuseScore is an advanced music composition and notation software.

sudo apt-get install musescore

Games

Solitaire, Mines, Sudoku, Mahjongg are preinstalled. I installed a simple Tetris:

sudo apt-get install quadrapassel

Install Web Development software

This section is optional.

git

Git is a Version Control System.

sudo apt-get install git

Display basic configuration

git config --list

Set basic settings

git config --global user.name 'Your Name'
git config --global user.email you@example.com
git config --global core.editor "nano"

Configure Git to properly handle line endings:

git config --global core.autocrlf input

PhpStorm

PhpStorm is my favorite PHP IDE. It is a commercial Java application by Jetbrains. For instructions read this post: How To Setup And Configure PhpStorm on Ubuntu.

GVim

GVim is Vim with a built-in GUI. I prefer thr Gnome version.

sudo apt-get install vim-gnome

You will get something like this:

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  fonts-lato javascript-common libbonobo2-0 libbonobo2-common libbonoboui2-0
  libbonoboui2-common libglade2-0 libgnome-2-0 libgnome2-0 libgnome2-bin
  libgnome2-common libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0
  libgnomeui-common libgnomevfs2-0 libgnomevfs2-common libjs-jquery
  liborbit-2-0 libruby2.3 rake ruby ruby-did-you-mean ruby-minitest
  ruby-net-telnet ruby-power-assert ruby-test-unit ruby2.3
  rubygems-integration vim-common vim-gui-common vim-runtime vim-tiny
Suggested packages:
  apache2 | lighttpd | httpd libbonobo2-bin desktop-base gnome-icon-theme
  libgnomevfs2-bin libgnomevfs2-extra gamin | fam gnome-mime-data ri ruby-dev
  bundler vim-gnome-py2 | vim-gtk-py2 | vim-gtk3-py2 | vim-athena-py2
  | vim-nox-py2 cscope vim-doc fonts-dejavu vim-gnome-py2 | vim-gtk-py2
  | vim-gtk3-py2 | vim-athena-py2 indent
The following NEW packages will be installed:
  fonts-lato javascript-common libbonobo2-0 libbonobo2-common libbonoboui2-0
  libbonoboui2-common libglade2-0 libgnome-2-0 libgnome2-0 libgnome2-bin
  libgnome2-common libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0
  libgnomeui-common libgnomevfs2-0 libgnomevfs2-common libjs-jquery
  liborbit-2-0 libruby2.3 rake ruby ruby-did-you-mean ruby-minitest
  ruby-net-telnet ruby-power-assert ruby-test-unit ruby2.3
  rubygems-integration vim-gnome vim-gui-common vim-runtime
The following packages will be upgraded:
  vim-common vim-tiny
2 upgraded, 32 newly installed, 0 to remove and 222 not upgraded.
Need to get 14,3 MB of archives.
After this operation, 66,1 MB of additional disk space will be used.
Do you want to continue? [Y/n]

Launch Gvim from Dash after logout - login:

(click the thumb for full image)

Poedit

Poedit is an editor for translating software applications using gettext.

sudo apt-get install poedit

(this will also install gettext)

Diffuse

Diffuse is a visual diff and merge tool written in Python.

sudo apt-get install diffuse

Meld

Meld is a another visual diff and merge tool.

sudo apt-get install meld

PgAdmin3

pgAdmin is a feature rich administration tool for PostgreSQL.

sudo apt-get install pgadmin3

Doxygen

Doxygen is a feature rich documentation generator from source code.

sudo apt-get install doxygen-gui graphviz

(this will also install doxygen).

Doxygen GUI executable is doxywizard.

JsDoc Toolkit

JsDoc Toolkit is a Javascript documentation generator from source code.

sudo apt-get install jsdoc-toolkit

Setup peripherals

Printer - scanner

It’s quite easy to setup a printer (in my case HP OfficeJet 4500).

Select "Printers" from "System Settings" and click "Add". Then use the wizard.

Web camera

It will be detected automatically during installation. You can try it using the also preinstalled application cheese.

UPS (Uninterruptible Power Supply)

Power Management module ("System Settings" → "Power") on Ubuntu 16.04 is a flexible tool to manage your computer UPS. If you have a UPS dedicated to your workstation, Ubuntu "Power Management" is all you need. For more advanced configurations you need more specific software. In my case I use an APC UPS. Here are some scenarios to setup and monitor APC UPS:

Cloud integration

There are some solutions to enable (two-way) sync from your Linux desktop to many popular Cloud Storage Services . However, only Dropbox, SpiderOak and Tresorit provide Linux Desktop clients.

I use Google Drive as a cloud-based productivity suite. But I do not sync the files. All files are in the cloud. The main reason is that Google has not (yet) released a Drive Client for Linux. Another reason is I believe that keeping files in Cloud is more secure, than to sync them locally, as most Cloud Storage Services provide AES encryption for the files. The only file I have to my desktop workstation is the KeePassX passwords database. I sync this file with laptop and Android devices using Dropbox.

However, if you need a desktop client, here are some of them:

Recovery mode

Press and hold “SHIFT” key during boot. GRUB (boot loader) menu will display. Select “Advanced Ubuntu Options” to enter Recovery mode.

Backup your workstation

Operating system Image backup

I create an image of Operating System partitions (/boot and /root in my case) using Clonezilla Live. I store image files in an external USB disk and additionally I upload them to a storage service. I prefer Amazon S3. So, in case of disk failure I can restore (again with Clonezilla) my workstation easily and quickly.

Data backup

As I keep all my data in the cloud (mostly Google Drive and Amazon S3) I do not keep data in my workstation. As this practice is not the norm, here are some backup solutions for your data:

  • Deja-dup

    Simple and reliable front-end of Duplicity. You can create local, remote and cloud backups with Deja-dup. Deja-dup is preinstalled (default Ubuntu setup). However, to install it:

            sudo apt-get install deja-dup
            

    Running Deja-Dup for first time press “Install” in the Overview to install software for “Restore”.

    If you need Remote server support for Déjà Dup:

            sudo apt-get install deja-dup-backend-gvfs
            

    If you need Amazon S3 and Google Cloud Storage support for Déjà Dup:

            sudo apt-get install deja-dup-backend-s3
            

    If you need Rackspace Cloudfiles support for Déjà Dup:

            sudo apt-get install deja-dup-backend-cloudfiles
            

    Deja-Dup integrates better with Nautilus (Unity, Gnome) than Thunar in XFCE

    .
  • Rsnapshot

    Powerful Command line utility based on rsync. You can create local, remote but not cloud backups with rsnapshot. Find a custom solution in this post: How To Create Fast And Reliable Backup Using Rsnapshot.

Browser data backup

I use Google Chrome in all devices. I have more than one “profiles” in Desktop and Laptop, based on some Gmail account. So Chrome sync is enough for me.

Cloud Data backup

I download all my data from Google apps (Gmail, Google Drive, Youtube etc) once per week, manually, using Google Takeout.

NOTE: There is not yet Google Takeout API provided by Google. You can automate Google Apps backup using commercial services as Spinbackup, Spanning Backup etc.

I keep these files in a locale storage server (a simple computer running Ubuntu server edition). I upload these files in Amazon S3, using AES encryption provided by Amazon. For this purpose I use a custom shell script I have created.

Synopsis

Operating system

Base Linux System default setup

CLI software

File manager Midnight commander  
Process viewer htop  
Bandwidth usage monitor iftop  
Networking OpenSSH  
  Samba  
File archivers p7zip  
  unrar  
Secure delete wipe  

Programming languages

GNU bash 4.3.43 default setup
Perl 5.22.1 default setup
Python 2.7.11+ default setup
Java Oracle JDK 8  

Desktop environment

Unity default setup

Apps

Terminal Gnome Terminal default setup
  Byobu  
  Terminator  
Settings manager System Settings default setup
  dconf Editor  
  Unity Tweak tool  
  Compiz config settings manager  
  NVIDIA X Server Settings  
Indicators applets System Load Indicator  
File manager Nautilus default setup
Password manager KeePaasX  
Cloud storage client Dropbox  
Package manager Synaptic  
Web browser Firefox default setup
  Google Chrome  
Mail client Thunderbird default setup
Download manager uget  
BitTorrent client uget with aria2 plugin  
BitTorrent client Transmission default setup
FTP client Filezilla  
Text editor Gedit default setup
  Leafpad  
Run as user gksu  
Screen tool for eyes protection Redshift  
Office suite LibreOffice default setup
PDF reader Document Viewer default setup
Image/photo editor Gimp  
Image viewer Gnome Image viewer default setup
Photo Manager Shotwell default setup
Screenshot take Gnome Screenshot default setup
  Shutter  
Graph editor yEd  
Extra media codecs ubuntu-restricted-extras  
Video converter (FFmpeg GUI) Winff  
Video editor OpenShot  
Slideshow editor Imagination  
Screen Recorder Kazam  
Web cam Cheese default setup
Audio editor Audacity  
Media player Rhythmbox default setup
  Totem movie player default setup
  VLC  
Scanning Simple scan default setup
  gscan2pdf  
CD burning Brasero  
File archivers Gnome Archive Manager default setup
  Peazip  
Sync tool FreeFileSync  
System profiler hardinfo  
Disk partitioner, S.M.A.R.T. monitoring, benchmarking etc Gnome disks default setup
Disk partitioner gparted  
Disk health inspection tool GSmartControl  
Hardware temperature monitoring tool psensor  
Backup Deja-dup default setup
Encryption AEScrypt  
Virtualization Virtualbox  
Remote access Desktop Sharing default setup
  Teamviewer  
Music Notation MuseScore  
Games Solitaire default setup
  Mines default setup
  Sudoku default setup
  Mahjongg default setup
  Quadrapassel  

Apps for Web Development

Version control Git  
PHP IDE PhpStorm  
Code editor Gvim  
Localization tool Poedit  
Diff/merge tools Diffuse  
  Meld  
Database Manager PgAdmin3  
Documentation generator Doxygen  
Javascript Documentation generator JsDoc Toolkit  

Screenshots Collection

View Screenshots Collection here.

Related Posts

You may also be interested in

Εγγραφή!
Sign-up for our free email newsletter. Get updates when new tutorials and tips are published. You can unsubscribe anytime with a click.

Your comments are welcomed!

This site actively encourages commenting on any post. Comments are not pre-moderated, but this community does not tolerate direct or indirect attacks, name-calling or insults. Please, read terms of use and Comment Policy at privacy policy.

How To Setup And Configure PhpStorm on Ubuntu How To Setup a Workstation Computer With Xubuntu Desktop 16.04 LTS Step by Step