Ubuntu 19.10 Perfect Installation

Every 6 months, I try to reinstall my laptop with the latest version of Ubuntu. Below are my notes on how I like my laptop.

My Desktop

I tried to use the new ZFS when partitioning the drive, but you can’t encrypt your drive. Since the encryption was important to me, I opted to wait on ZFS and just let Ubuntu follow the default partitioning.

Restoring Files

Here’s my list of things that I restored. Maybe reading through my list will remind you of things that you might need to take care of.

  • ~/.ssh: The keys for my remote ssh connections
  • ~/Documents: This is where I put all my document files 
  • ~/Pictures: I’m still working on this. My pictures have grown too big over the years to keep them all on my laptop. 
  • ~/DigitaleagleServices: I keep my work files in a different directory 
  • ~/app: I keep my development files/source code in this directory
  • ~/.config/google-chrome: The settings for Chrome (extensions, bookmarks, etc) (or, ~/.config/google-chrome-beta) 
  • ~/.local/share/keyrings: My saved passwords 
  • ~/.remmina: The settings for my remote connections 
  • ~/.sword: The downloaded Bible files for Xiphos (and the underlying Sword library) 
  • ~/.vim: stores the plugins installed in Gvim 
  • ~/.vimrc: preferences for Gvim 
  • ~/.local/share/fonts for custom-installed fonts (see this post
  • /etc/NetworkManager/system-connections: this saves all of my wireless connections and VPN connections 
  • .local/share/applications (not the whole directory) for application shortcuts 
  • ~/VirtualBox VMs: my virtual machines

A couple of the files require special permissions, so I have to fix those and restart the network manager. For some reason, I also had to rename my authorized_keys file. It’s looking for that under a different name now.

sudo chmod 600 /etc/NetworkManager/system-connections/* 
sudo service network-manager restart 
sudo chmod 600 ~/.ssh/*
chmod 644 ~/.ssh/authorized_keys
chmod 644 ~/.ssh/known_hosts
chmod 644 ~/.ssh/config
chmod 644 ~/.ssh/*.pub
mv ~/.ssh/authorized_keys ~/.ssh/authorized_keys2


While Ubuntu comes with Firefox preinstalled, Chrome is my browser of choice. I simply downloaded the Ubuntu 64-bit Deb package from the Chrome website. Restoring the profile directory brings Chrome back just the way I had it before. The down side is that it doesn’t clear out my extensions, which I may have some outdated ones installed.

Different work clients require all kinds of different VPN setups. So, I like to just install all of the different VPN clients to be prepared.

sudo apt-get install vpnc \
   network-manager-vpnc \
   network-manager-openconnect \
   network-manager-openconnect-gnome \
   openconnect \
   network-manager-iodine \
   network-manager-openvpn \
   network-manager-strongswan \
   network-manager-openvpn-gnome  \
   network-manager-iodine-gnome \

Keepass is another important program. Without it, I wouldn’t be able to keep up with all of the different accounts that I have across the Internet! I just install the package.

sudo apt-get install keepass2

VMWare-Horizon is a remote desktop tool that I need for certain clients. I just downloaded the binary installer from here. I made it executable, and python was required. I answered Yes to all of the questions.

cd ~/Downloads
chmod +x VMware-Horizon-Client-4.10.0-11053294.x64.bundle
sudo apt-get install python
sudo ./VMware-Horizon-Client-4.10.0-11053294.x64.bundle

Remmina is already installed. I just changed a few configuration items. On the Options tab, I changed the Screenshots folder to ~/Screenshots. On the Applet tab, I made sure that the Start Remmina at logon was checked. Finally, on the Appearance tab, I changed the Tab Interface from Tab by Groups to Tab all connections.

I installed Dropbox from their website. I downloaded the Ubuntu 14.04 or higher deb file and launched it from Downloads. Then, I went through the rest of the steps: starting dropbox, logging into the Webpage it opened, and restarting nautilus. Finally, I had to install the python-gpg package:

sudo apt-get install python-gpg

Instead of Skype, I have been using Microsoft Teams. There’s no Linux app yet, but there’s an open source Electron App that I use. I just downloaded the .deb file from the Releases page.

Configuration and Utilities

Here are some of the tools that I like:

  • MenuLibre: A great tool for adding stuff to the app launcher
  • 7-Zip: In case I need to zip or unzip stuff with the 7zip benefits
  • Y PPA Manager: tool for managing PPA’s
  • Gnome Tweak Tool: allows changing advanced settings
  • Xiphos: a tool to read and study the Bible
sudo add-apt-repository ppa:webupd8team/y-ppa-manager 
sudo apt-get update 
sudo apt-get install menulibre \
      p7zip-full p7zip-rar \
      synaptic \
      y-ppa-manager \
      gnome-tweak-tool \

I learned about App Outlet from OMG Ubuntu. At the time I was trying to install it, the website had reached its usage limit and was down. As a result, I couldn’t download the .deb package. Instead, I just followed the directions on their website to build it.

cd ~/Downloads
git clone https://github.com/app-outlet/app-outlet.git
cd app-outlet
npm install
sudo apt-get install --no-install-recommends -y rpm
npm run electron:linux

A number of Gnome extensions are nice to have. First, I install this package so that I can install or manage them from Chrome:

sudo apt-get install chrome-gnome-shell

These are the extensions that I installed:

In Gnome Tweaks, I just added the Weekday to the Clock and the Battery Percentage on the Top Bar section. Under Windows, I unchecked “Attach Modal Dialogs”.

On the left bar, I right clicked on the app I don’t use often and selected “Remove from Favorites”: Firefox, Thunderbird, Rythmbox, Help, Amazon. I added Keepass and Chrome to the favorites.

On the Ubuntu settings, I changed a couple of time settings. I went to Details > Date & Time. I checked the Automatic Time Zone and changed Time Format to AM/PM.

To make working with AppImages easier, I installed the AppImageD. I followed the Install instructions on the Github Page. After installing, I can just drop the appimage binaries in the ~/bin directory and they are installed!

cd ~/Downloads/
wget "https://github.com/AppImage/appimaged/releases/download/continuous/appimaged-x86_64.AppImage"
chmod a+x appimaged-x86_64.AppImage
./appimaged-x86_64.AppImage --install

New this time, I have a QGeeM USB 3.0 to HDMI/DVI Converter. So, I had to download the driver from their website. I ran the commands:

cd ~/Downloads
unzip DisplayLink\ USB\ Graphics\ Software\ for\ Ubuntu\ 5.2.zip
chmod +x displaylink-driver-5.2.14.run
sudo ./displaylink-driver-5.2.14.run


I found Version:; Build ID: 1:6.3.2-0ubuntu2 installed. It may not make a difference now, but as new versions come out, this will install them automatically:

sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get dist-upgrade

I have a couple of setting changes that I like to make. In LibreOffice Writer, I went to View > User Interface > Tabbed. Then, I opened Impress, and went to Tools > Options. I checked Enable Remote Control under LibreOffice Impress > General.


I downloaded the package from Oracle’s download page. It has some prerequisites, so I used apt to install it:

sudo apt install ./virtualbox-6.0_6.0.14-133895_Ubuntu_bionic_amd64.deb
sudo apt --fix-broken install

I had some issues with it installing, and I lost track of what happened that made it actually install. I think it might have had something to do with the Oracle repository.

The big thing I keep forgetting is to set up the virtual networks. In File > Preferences … Networks. I added a new NAT Network. Then, I went to File > Host Network Manager. I clicked “Create” to add vboxnet0.

Programming Tools

These are the programming tools that I like to install:

  • GVim: power text editor with a keyboard focus; the GUI version of the vi editor
  • Git: Version control system, git-cola is a GUI for it
  • Meld: compare tool
  • Java: I use several tools that depend upon Java
  • MS Visual Studio Code: An IDE for websites and such
sudo apt-get install \
       vim \
       vim-gtk3 \
       git-cola \
       meld \
       nautilus-compare \
       openjdk-13-jdk \

My vim configuration file moves the temp file to a separate directory. So, I need to create that directory:

mkdir ~/.vimtmp

One thing that always catches me is the git user name and email. Before I can actually make commits, those settings have to be done. The following two commands fix it:

git config --global user.name "my name"
git config --global user.email my.email@email.com

Visual Studio Code has to come from the website. I doubled clicked on the .deb file to install it. Once open, I hit Ctrl+p for each of these lines:

ext install johnpapa.angular-essentials
ext install humao.rest-client
ext install raagh.angular-karma-test-explorer
ext install hbenl.vscode-jasmine-test-adapter
ext install dart-code.flutter

I also use Node and Angular CLI. I installed those with:

sudo apt-get install nodejs 
sudo apt-get install npm 
sudo npm install npm@latest -g
sudo npm install -g gulp 
sudo npm install -g grunt 
sudo npm link @angular/cli 

Note: I did get this error. I fixed it with the next npm command — installing npm. Found the answer here.

npm WARN npm npm does not support Node.js v10.15.2
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/
/usr/local/bin/gulp -> /usr/local/lib/node_modules/gulp/bin/gulp.js
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/gulp/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

+ gulp@4.0.2
added 314 packages from 217 contributors in 13.803s

I installed Eclipse from the website. I just extracted the tar file, and double clicked on the “eclipse-inst” file inside. The installer asks which base package you want to install. I just selected “Eclipse IDE for Java Developers”. After it was installed, I launched it and went to Help > Install New Software… I chose the following items to install:

  • Application Development Frameworks > e(fx)clipse – Minimal JavaFX OSGi Integration bundles
  • Collaboration > Dynamic Languages Toolkit – Mylyn Integration
  • Collaboration > Github Integration with task focused interface
  • Programming Languages > JavaScript Development Tools
  • Programming Languages > JavaScript Development Tools Chromium/V8 Remote Debugger
  • Programming Languages > PHP Development Tools (PDT)
  • Programming Languages > PHP Development Tools (PDT) PHPUnit Support
  • Web, XML, Java EE and OSGi Enterprise Development > Eclipse Java Web Developer Tools
  • Web, XML, Java EE and OSGi Enterprise Development > Eclipse Web Developer Tools
  • Web, XML, Java EE and OSGi Enterprise Development > Javascript Development Tools
  • Web, XML, Java EE and OSGi Enterprise Development > PHP Development Tools
  • Update 12/2/2019 — Programming Languages > PHP Development Tools (PDT) Composer Support

I like to use the Gluon Scene Builder for Java FX. I simply downloaded it from their website. I installed the .deb package by double clicking on it.

Visual Media Programs

These are the programs that I use for drawing things or taking screenshots, etc.

  • Gimp: for editing photos
  • Inkscape: vector-based drawings
  • Xournal: I use it for marking up PDFs
  • Flameshot: take and annotate screenshots
sudo add-apt-repository ppa:otto-kesselgulasch/gimp 
sudo apt-get install gimp \
        gimp-data-extras \
        inkscape \
        flameshot \

On the Flameshot configuration, I went to the General tab and checked Launch at startup. I also found some good instructions for connecting Flameshot to the Print Screen button. First, I had to release the Print Screen button:

gsettings set org.gnome.settings-daemon.plugins.media-keys screenshot '[]'
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name 'flameshot'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command '/usr/bin/flameshot gui'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding 'Print'

Then, I went to Settings and the Devices > Keyboard shortcuts. At the bottom of the list, click the “+” button. I entered “Flameshot” for the name and “/usr/bin/flameshot gui” for the Command.

Audio Media Programs

These are programs I use with audio:

  • Audacity: good for recording and editing sound files
  • MuseScore: edits sheet music
  • SoundConverter: converts between different audio between formats
  • EasyTag: edits the meta-information on MP3 files
sudo apt-get install audacity \
          soundconverter \
          musescore3 \

Video Media Programs 

These are the programs that I installed to work with video, both playing and editing:

  • mplayer: plays video from the command line
  • vlc: great GUI video player
  • cheese: nice for testing to see if the webcam works (already installed)
  • YouTube Downloader: can download video from Youtube on the command line
sudo apt-get install mplayer \
      vlc \

I also installed the codecs so that I wouldn’t have to fight with different formats that wouldn’t play.

sudo apt-get install \
     libdvdnav4 \
     libdvdread4 \
     gstreamer1.0-plugins-bad \
     gstreamer1.0-plugins-ugly \

Finally, I’ve done a little playing with OBS Studio. I added a repository for that:

sudo add-apt-repository ppa:obsproject/obs-studio 
sudo apt-get update
sudo apt-get install obs-studio 

KdenLive is the video editing program that I have been using. It is in the Ubuntu Repositories, but the latest version isn’t there. So, I simply downloaded the latest AppImage from the KDE website.

3D Printing

I use two different programs to create things on my 3D printer: OpenSCAD and Cura. OpenSCAD isn’t up to date in the App Store. So, I found it in the Snap Store.

sudo snap install openscad-nightly 

Cura is up to version 4.3 on the Ultimaker website. In the repositories, it is only showing version 3.3. So, I just downloaded it from their website.


I have a Dell E525w printer at home. I downloaded the driver from here. In the zip file, there’s a .deb package that I just installed by double clicking on it. I had issues using the regular printer dialogs in the Settings app. Instead, I added the printer from http://localhost:631. I used the driver: /usr/share/cups/model/Dell/Dell_Color_MFP_E525w.ppd.gz


I don’t do a lot of games, but I do have two that I like:

  • 0ad: a strategy game (The ppa:wfg/0ad didn’t work for some reason)
  • Super Tux Karts
sudo apt-get install 0ad supertuxkart

Leave a Comment

Your email address will not be published. Required fields are marked *