ThinkPad Install Notes

Previously, I posted that I got a new computer and some of my thoughts on the new computer. Well, even though it came with Ubuntu (the older 22.04 release), I still had to set it up the way I like that. That means another Installation Notes article. Here’s everything I did to get it running like my old laptop.

Restoring Files

First thing to do is to copy all of files over from the old laptop. Here’s my list of things to copy.

  • ~/.ssh: SSH connection setup
  • ~/.cert: needed for my VPN
  • ~/app: my programming files
  • ~/Documents: As the name says, my documents
  • ~/DigitalEagleServices: work-related files
  • ~/Insync: I have a few files in here that help with setting things back up, otherwise Insync will restore them
  • ~/.config/google-chrome: Actually, I skipped this one because I switched to Chromium
  • ~/.remmina: setup for Remmina
  • ~/.sword: All the Bibles and Commentaries for Xiphos
  • ~/.vim: configuration for the gVim editor
  • ~/.vimrc: main config file for gVim
  • ~/.local/share/fonts: fonts that I have collected over the years
  • /etc/NetworkManager/system-connections: VPN and Wifi connections
  • .local/share/applications: I restored of few of the application shortcuts
  • ~/bin: programs … this is automatically on the path
  • ~/Zotero: data from the Zotero application, could also be in ~/snap/zotero-snap/common/Zotero
  • ~/.config/obs-studio: OBS Studio configuration
  • ~/OBS Setup: my support files for OBS like backgrounds, etc.
  • ~/.config/Postman: Postman configuration

The SSH files need special permissions:

chmod 600 ~/.ssh/*
chmod 644 ~/.ssh/authorized_keys2
chmod 644 ~/.ssh/known_hosts
chmod 644 ~/.ssh/config
chmod 644 ~/.ssh/*.pub

Screenshots/Flameshot

Screenshots tend to be first on the list to install just so that I can document the install. I installed Flameshot for that.

sudo apt install flameshot

Then, I also like for the print screen button to trigger flameshot. So, I set that up as well with the following commands:

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'

Password Manager/Authpass

The next thing is my password manager so that I can get into things. Authpass has been my favorite so far. I found there’s a new repository with the latest version. It’s published through Package Cloud. Unfortunately, that repository doesn’t work.

sudo apt install curl
curl -s https://packagecloud.io/install/repositories/authpass/authpass/script.deb.sh | sudo bash

I am assuming 20.04 isn’t supported, so I get this error message:

Err:8 https://packagecloud.io/authpass/authpass/ubuntu focal Release  
  404  Not Found [IP: 52.52.159.34 443]
Reading package lists... Done                   
E: The repository 'https://packagecloud.io/authpass/authpass/ubuntu focal Release' does not have a Release file.

Instead, the snap in the Software Store looks up to date, so I’m just going to go with that.

I did have to run this command afterward:

snap connect authpass:password-manager-service

Shortcuts

To start, I installed Menu Libre. That makes it easy to add shortcuts that go on the menu.

sudo apt install menulibre

I also selectively restored some of the shortcuts in the $HOME/.local/applications directory. The filenames for the Flutter applications are a bit finicky to get the icon displaying.

I did have a few of the “.desktop” shortcut files that would not show up in the menu. I finally found out that I had forgotten to copy the shell script that it was pointing to. I also found it wouldn’t show up when the icon that I had chosen wasn’t there. The bottom line is to not forget to restore all of the pieces.

Browser

I usually use Chrome as my daily driver for the browser, but this laptop came with Firefox and Chromium pre-installed. I decided to give Chromium a shot. The only problem is that it doesn’t seem to sync with my Google account as far as browser history and favorites, etc. So, I have to rebuild all of that.

One big setting that I was used to was that it would reopen all of my previous tabs. That’s probably a bad habit, but I’m sticking with it for now. The setting is under “On Startup”.

Work Software

My remote desktop tool is Vmware Horizon for a little bit longer. I downloaded the 64-bit Linux bundle from Vmware’s website. I installed it with these commands:

cd ~/Downloads/
sudo chmod +x VMware-Horizon-Client-2309.1-8.11.1-22775487.x64.deb
sudo apt install python3
sudo ./VMware-Horizon-Client-2309.1-8.11.1-22775487.x64.deb

Next, I need Teams for at least a little longer, too. Microsoft has retired their official client for a PWA. The “Teams for Linux” project encapsulates that PWA into a separate app. It’s a snap that you can either install from the Software Center or the command line.

sudo snap install teams

Finally, Postman is the last work-related app. I probably should put this under the programming section, but for now, it’s work related. I just downloaded it from the official download page.

cd ~/Downloads
tar -xzvf postman-linux-x64.tar.gz -C ~/bin

I restored my shortcut, but I had used MenuLibre previously to create the shortcut.

Clouds

I use both Dropbox and OneDrive. Dropbox is an easy download and install from the official download page. I downloaded the 14.04 – 22.04 version.

sudo apt install python3-gpg
sudo apt install ~/Downloads/dropbox_2020.03.04_amd64.deb

After a few minutes it pops up a wizard to go through. That downloads the proprietary binary and lets you authenticate to connect your account.

Next, Microsoft doesn’t have a OneDrive client for Linux. So, I’ve been using Insync. I downloaded the appropriate version from the Downloads page.

sudo apt install ~/Downloads/insync_3.8.4.50481-focal_amd64.deb

Networking

The Wifi worked out of the box. But, the VPNs I had to install. I just install them all so they were available if I needed them.

sudo apt 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 \
    network-manager-vpnc-gnome

Also, I added a few lines to the /etc/hosts file. There are a few machines that I connect to and don’t want to have to remember the IP Address.

Productivity

The current LibreOffice version installed is Version: 6.4.7.2. But, 7.5 (release notes) is listed as the current on the website. So, I installed the repository to get the latest. Then, I had to update.

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

I’ve been using Joplin for my notes. I installed it with:

snap install joplin-desktop

When I clicked Synchronize, it walked me through connecting it to where I saved it in the Cloud.

Next, I use Xiphos for my Bible App. The content I just restored by copying the .sword directory from my old laptop. I had to add a repository, so I installed the program with:

sudo add-apt-repository ppa:pkgcrosswire/ppa
sudo apt install xiphos

Finally, Zotero is my last productivity tool. I installed it with:

sudo apt install curl
curl -sL https://raw.githubusercontent.com/retorquere/zotero-deb/master/install.sh | sudo bash
sudo apt update
sudo apt install zotero

Application Packages

To be able to install different types of programs, I installed the AppImage support first.

cd ~/Downloads/
sudo apt install libfuse2
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

Then, I installed Flatpak support next:

sudo apt install flatpak

Miscellaneous Settings and Utilities

Here are few tools that I like. 7zip, Synaptic, and Gnome Tweaks help with compression, package installs, and special settings changes. I installed all three with:

sudo apt install p7zip-full p7zip-rar \
       synaptic \
       gnome-tweaks

Balana Etcher is the last utility. I stuck with the App Image on their website, but I found instructions for installing from a deb package. Maybe I’ll try that next time.

Now, for the settings. In the main settings application, I set the format under Date & Time to AM/PM. I also added an avatar under the Users section.

This is new for this laptop, or at least I didn’t notice it on my last laptop. I found there was a place to add my fingerprint.

When I clicked on it, it gives me an option to add a new fingerprint.

After I selected which finger I was using, I was able to scan the fingerprint multiple times. It seemed to work fine.

After that, I opened up the Tweaks application (Gnome Tweaks). Under “Top Bar”, I enabled the Weekday and the Battery Percentage. Under “Windows”, I disabled Attach Modal Dialogs.

Gnome Extensions

I like customizing things and making it my own, so Gnome Extensions are a must. First, I installed the package that gives Chrome access to control them.

sudo apt install chrome-gnome-shell

Then, I installed this extension into Chromium.

Unfortunately, this only works for Chrome. Chromium is only offered as a snap package and doesn’t have access to do extensions. You’ll get this error message: “Although GNOME Shell integration extension is running, native host connector is not detected. Refer documentation for instructions about installing connector.”

My solution was to use Firefox. I tried to remove the Firefox snap and install the deb version. From the output, it seems this was already done. (Using the Brave browser was another solution I saw recommended, but I didn’t try that)

snap remove firefox
apt install firefox

Then, I installed this Firefox extension. Then, I got this error message: “Your native host connector do not support following APIs: v6. Probably you should upgrade native host connector or install plugins for missing APIs. Refer documentation for instructions.” It seemed to work in spite of that error message.

From what I read, it sounds like newer versions of Ubuntu have this mess all fixed with the Extension Manager program. I’ll have to try that on the next go around.

These are the extensions that I installed:

Media Programs

I installed Inkscape, Xournal, and Gimp for working with drawings, PDFs, and photos.

sudo apt install xournal \
         gimp

Note: for now I kept with the deb package for Gimp, but the Downloads page mentions that flatpak is more up to date. I might try that next time.

Inkscape on the other hand did have a newer version. I went to the Downloads page and downloaded the AppImage. I just moved that to the bin directory.

To deal with sound-related tasks, I installed audacity, soundconverter, musescore3, and easytag.

sudo apt install audacity \
           soundconverter \
           musescore3 \
           easytag

I downloaded the Midas M32 application to control our sound board from the website. I had to search for “m32 edit” to find it. I downloaded the Linux version, and installed it with:

mkdir ~/bin/m32
tar -xzvf ~/Downloads/M32-Edit_LINUX_4.3.tar.gz -C ~/bin/m32/

Then, I used the Menu Editor to add a shortcut.

For my video endeavors, I installed mplayer, vlc, yt-dlp, obs-studio, blender, and kdenlive.

sudo apt install mplayer \
       vlc \
       kdenlive \
       yt-dlp

For OBS Studio, I added a repository to keep it up to date.

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

Then, I installed the loopback device so that I can use the OBS output on Teams.

sudo apt install -y v4l2loopback-dkms

I installed blender with the snap.

sudo snap install blender --classic

I installed all the codecs with:

sudo apt install \
      libdvdnav4 \
      libdvd-pkg \
      gstreamer1.0-plugins-bad \
      gstreamer1.0-plugins-ugly \
      ubuntu-restricted-extras
sudo dpkg-reconfigure libdvd-pkg 

Finally, for KdenLive, I downloaded the App Image from their website.

3D Printing

I installed OpenScad for designing things to print.

snap install openscad

Then, I downloaded Cura from the Downloads page and placed the App Image in my bin directory. At first, I downloaded the “Linux-Modern” version. But, there was a compiler or python mismatch, and it gave me this error:

[71893] Error loading Python lib '/tmp/.mount_UltiMaolbPAJ/libpython3.10.so.1.0': dlopen: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.35' not found (required by /tmp/.mount_UltiMaolbPAJ/libpython3.10.so.1.0)

After I downloaded just the regular Linux 64-bit version, it worked fine. I was able to start it and go through the wizard. That made me sign into a Cura account and then pick my printer (Monoprice Select Mini V2)

Virtualization

I use Virtualbox. I normally just install it from apt, but version 6 is in the repositories. Version 7 is on the Download page. I downloaded the Ubuntu 20.04 option for version 7.0.6.

sudo apt install ~/Downloads/virtualbox-7.0_7.0.6-155176_Ubuntu_focal_amd64.deb

When I opened it, I went to File > Tools > Network Manager. I added a NAT Network and Host-only network.

Miscelleneous Programming Tools

Gvim came preinstalled,which surprised me, but it’s cool. I still needed to create my temporary directory for it. I installed git, git-cola, and meld.

sudo apt install \
        git-cola \
        meld
mkdir ~/.vimtmp

I configured git with:

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

Flutter

I enjoy using the Flutter framework, so I installed it. First, I installed the dependencies:

sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev

Then, I installed Flutter itself and ran the doctor.

sudo snap install flutter --classic
flutter doctor

Running Flutter doctor downloads the necessary binary.

Android studio is also required to download key parts of the SDK. I like to use it for the IDE anyway. I downloaded it from the bug button on the website. I extracted the tarball to the bin directory, and then I created a shortcut with Menu Editor to ~/bin/android-studio/bin/studio.sh

 tar -xzvf ~/Downloads/android-studio-2022.1.1.21-linux.tar.gz -C ~/bin

After installing and opening an existing project, I went to File > settings. Under Appearance & Behavior > System Settings > Android SDK, I installed the SDK Tools > Command line tools and the SDK Platforms > Android 13.0. In the plugins section, I installed the Flutter plugin (that also installed the Dart plugin)

I ran into another problem because I’m using Chromium instead of Chrome. Setting this environment variable worked fine:

export CHROME_EXECUTABLE=/snap/bin/chromium
flutter doctor

Since that worked, I added that export to the end of ~.bashrc

Finally, I ran the flutter doctor command to accept the licenses:

flutter doctor --android-licenses

I did notice this error when I tried to create the Virtual Device.

Docking Station

I’m still using my Dell Docking Station. I don’t like it because I think that this Display Link driver conflicts with Nvidia. But, I’m not ready to spend more money to replace it, so we’ll install it anyway and see how it goes. I downloaded the package from the Downloads page.

cd Downloads
unzip DisplayLink\ USB\ Graphics\ Software\ for\ Ubuntu5.6.1-EXE.zip
chmod +x displaylink-driver-5.6.1-59.184.run
sudo ./displaylink-driver-5.6.1-59.184.run

It did require a reboot before it worked. Then, it does work. I have two 4k screens running through the Dock, and I love the setup. The only problem is that if I try to run a video or a game like 0ad, it crashes after a short time. It momentarily resets back to the laptop screen and then tries to reload the two monitors possibly in a different order/configuration.

Wine

I usually reinstall my Windows programs, but this time I decided to try to restore them. I copied the wine prefixes (I had them setup in ~/.local/share/wineprefixes). Then, I installed wine:

sudo apt install wine

Then, I had to make the symbolic link to the c: drive in the dosdevices folder. That didn’t copy over right.

ln -s ../drive_c c:

Exploring Duplicati

I need a backup solution, and I wanted to explore how Duplicati worked. I’ve been using Attic, but the code seems to be old and not getting updated. Before I go installing it on my actual server, I wanted to run through it once in a virtual environment.

Spoiler alert: Duplicati didn’t do what I wanted. I’m glad I ran through it in a test environment before committing to it. It seems like it is designed for personal or single computer setups. It doesn’t have a good way to copy files over the network to the server. It might be able to copy them to a remote drive, but not pull them from a remote computer/laptop.

So, here’s a walk through of what I tried.

Read More

Dart and Nginx

I’ve been enjoying Flutter a lot. I’ve written a couple of apps, and I’m getting a good handle on the dart language. Now, I’d like to use dart for the whole system rather than having half of my code in PHP and the other half in Dart/Flutter.

I found the solution in Dart Shelf. The code is hosted at GitHub, and it can easily be installed as any other Dart package.

The best use case is that I can have a shared package between the Flutter front-end and the Dart shelf back-end. So, I can create, for example, a Transaction class that represents a transaction in my system. I can give the class toJson() and fromJson() methods that will convert between a Json-formatted string. Then, I can easily send it from the Flutter front-end to the back-end and have the same code running on both sides. I only maintain it in one place.

So, I learned how to make all that work pretty quickly. The challenge is how do I push that out onto a server already setup as a website. The server is using Nginx, and I don’t want to replace all the other stuff that Nginx is already doing.

Read More

Ubuntu 21.04: Programming Apps

I got really behind proof-reading and finalizing these notes. So, I’m publishing them after I already installed the next version. Better late than never, right?

VirtualBox

I use Virtualbox to run Windows and some development virtual machines.

sudo apt install virtualbox

Then, I went to File > Host Network Manager and clicked the “Create” button because some of my machines rely on vboxnet0.

Tools

sudo apt install \
        vim \
        vim-gtk3 \
        git-cola \
        meld
mkdir ~/.vimtmp
  • Vim (gtk version is for the Gvim – Gui): The improved Vi editor. It’s handy to be used to the key combinations for when I get to work on servers at work.
  • Git-Cola: is a Gui for Git, and it will also install Git as a dependency
  • Meld: a text compare tool

To setup Git, I ran the following commands:

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

Visual Studio

I’ve been using Visual Studio for my Angular Development. I could use it for Flutter development, but I prefer Android Studio for that. I just downloaded the deb package from the website.

sudo apt install  ~/Downloads/code_1.58.2-1626302803_amd64.deb

I have a few extensions that I have been installing. They are quick to install using Ctrl+P and then these commands:

  • 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

Node JS

I use Node JS here and there for different projects. Here’s what I did to install it…

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

Flutter

I’m finding that I enjoy Flutter most these days. I referred to the instructions as I installed.

I used the snap method to install it:

sudo snap install flutter --classic

First things first, I had to run flutter doctor. That downloads the biggest part of flutter.

flutter doctor

I installed the “additional Linux requirements”:

sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev

I downloaded Android Studio from the website. I just installed it by extracting it into the bin directory:

mkdir ~/bin/studio
tar -xzvf ~/Downloads/android-studio-ide-202.7486908-linux.tar.gz -C ~/bin/studio

Once extracted, I used the menu editor (MenuLibre) to create a launcher:

  • command: ~/bin/studio/android-studio/bin/studio.sh
  • icon: ~/bin/studio/android-studio/bin/studio.svg

To allow the programs to run on the Linux desktop, I ran this command:

flutter config --enable-linux-desktop

MySQL and PHP

I use MySQL and PHP on the backend of several projects. To make it easy to develop with those, I installed both this way:

sudo apt install mariadb-server-10.5 \
                  php7.4-fpm \
                  php-mysql \
                  composer

Note: By doing php7.4-fpm instead of just php7.4, it avoids installing the whole Apache web server.

Rather than restoring the database from my old computer, I’ll just do a refresh from my production server. I did have to prep the database:

sudo mysql
create database matthew;
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
Dell XPS 15

Ubuntu 21.04: Essentials

I’m a little late to the party here. I’ve been fighting with this install for 6 months! It got to the point that my laptop wouldn’t suspend and would crash when I would reboot. The next version of Ubuntu was released before I could get this proof read and published!

Restoring Files

I’ve been keeping a list of the files that I restore so I don’t forget anything. I like formatting the drive and starting from scratch, but I have to be careful what I copy back, otherwise it defeats the purpose. Maybe this list will help you think through what you need to backup and restore on your system:

  • ~/.ssh: connection keys for SSH connections 
  • ~/app: (as in application development) this is where I keep my play space for programming projects
  • ~/Documents: where most of my regular files, like documents, of course
  • ~/DigitalEagleServices: work-related files
  • ~/Insync: OneDrive files (saves times resyncing from the Internet)
  • ~/.config/google-chrome: my Google Chrome browser profile, restores bookmarks, last used tabs, browser history, etc.
  • ~/.remmina: the configuration for Remmina, the remote desktop software 
  • ~/.sword: the data files for the sword project, which I use with Xiphos
  • ~/.vim: my custom configurations for the Vi editor
  • ~/.vimrc: the actual configuration file for the Vi editor
  • ~/.local/share/fonts: extra fonts that I have collected over the years
  • /etc/NetworkManager/system-connections: this saves all of my wireless connections and VPN connections (I’m not sure this worked this time)
  • .local/share/applications: I review this directory for shortcuts to apps that I use
  • ~/bin: certain programs and scripts that I installed manually
  • ~/Zotero: research data, depending on how you installed it may be in ~/snap/zotero-snap/common/Zotero
  • ~/.config/obs-studio: my setup (scenes, etc) for OBS Studio

Permissions are important for the SSH files. Here’s how I fixed them:

chmod 600 ~/.ssh/*
chmod 644 ~/.ssh/authorized_keys2
chmod 644 ~/.ssh/known_hosts
chmod 644 ~/.ssh/config
chmod 644 ~/.ssh/*.pub

The network manager connection files also have to have certain permissions. So, it is easier to restore them to my Downloads directory and then use these commands:

cd ~/Downloads/system-connections/
chmod 600 *
sudo chown root:root *
sudo cp * /etc/NetworkManager/system-connections/
sudo service NetworkManager restart

Screenshots

Flameshot is my current screenshot tool. I need it installed sooner than later to help document. First off, it’s easy to install with:

sudo apt install flameshot

To make it better, I like it mapped to the print screen button. That way I get the control of Flameshot for every screenshot. Here’s the commands I can run on the command-line to make that happen:

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'

Finally, I went to Configuration > General and checked “Launch at startup”.

Note: My old favorite was Shutter. I haven’t installed it and gone back to it yet.

Browser

My favorite browser so far has been Google Chrome. I could make arguments for other browsers, but Chrome has been my favorite for a while. I downloaded the browser package from Google’s Website and installed it by double clicking on it in the Downloads folder (opened in the Software Center).

Don’t forget, I also restored my profile in ~/.config/google-chrome to keep all of my bookmarks and such. After that, I just had to sign in to my Google account at the upper right corner of the browser because it said the sync was paused. I had to sign in to all of the websites because it lost the session, but that was no big deal. I was back in business where I left off.

I also went to System Settings > Default Applications and set the default for Web to Chrome.

Password Management

On past installations, I have used KeePass2. Since getting into Flutter, I found AuthPass, which is a KeePass implementation in Flutter. So, I’m jumping ship and going for it. Their blog post documents an Apt repo, but that didn’t work. Here’s what I tried:

sudo add-apt-repository ppa:codeux.design/authpass
sudo apt-get install authpass

Here’s the error you get when you try to update:

E: The repository 'http://ppa.launchpad.net/codeux.design/authpass/ubuntu hirsute Release' does not have a Release file.
 N: Updating from such a repository can't be done securely, and is therefore disabled by default.

Instead, I found a snap that I could install:

sudo snap install authpass

Cloud Syncs

Dropbox is the easiest cloud to get working. I don’t use it as much, but it’s nice to have. I just downloaded it from the website. I installed it and the dependency with:

sudo apt install python3-gpg
sudo apt install ~/Downloads/dropbox_2020.03.04_amd64.deb

After installing, it popped open a prompt to start Dropbox. That places the indicator icon by the clock. It also downloaded the “proprietary” binary required to make it work. It also opened a browser window to do the log in. I had trouble making that work until I signed into the website first and then connected the desktop client.

OneDrive itself doesn’t have a sync client. So, I have been using InSync. I just downloaded that from their website. Then, I installed with:

sudo apt install ~/Downloads/insync_3.4.2.40983-focal_amd64.deb

Like Dropbox, a short while after installing, it prompts to start InSync:

It starts by asking which account type you want to sync. When I picked Microsoft OneDrive, it opened the browser to a sign in page.

After signing in, this window took me through a few steps. I accepted the defaults until I got to the folders to sync. Then, I picked my folder for KeePass and for Joplin.

Work Software

I use VMWare Horizon for connections. I downloaded it from the website and installed with these commands:

cd ~/Downloads/
sudo chmod +x VMware-Horizon-Client-2103-8.2.0-17742757.x64.bundle
sudo apt install python
sudo ./VMware-Horizon-Client-2103-8.2.0-17742757.x64.bundle

I accepted the default for all of the questions after accepting the agreements. I had no problems with the install.

Teams is another key software needed for work. It allows me to chat and screenshare with others. I downloaded the official client from the website. I downloaded the deb file for the desktop client.

sudo apt install ~/Downloads/teams_1.4.00.13653_amd64.deb

Display

I have an Nvida card, so I wanted to install the driver. Last Ubuntu version automatically installed the drvier. This time, I had to do it myself. I opened the Additional Drivers app an selected the 465 driver:

After trying the 465 and 470 drivers for a while, I found it was locking up a lot. Chrome and Teams would crash everytime I would open the laptop lid up. I guess restoring after a suspend caused memory issues. Worse, it would lock up everytime I would disconnect from my D6000 dock. So, I tried the 450 driver I had on the previous version of Ubuntu.

Battery

I haven’t done some good testing to confirm, but I think Power Top has doubled my battery life. I installed with:

sudo apt-get install tlp powertop
sudo tlp start
sudo tlp-stat -s

Just because it’s fun to see as the years go by, here’s the stats:

--- TLP 1.3.1 --------------------------------------------
 +++ System Info
 System         = Dell Inc.  XPS 15 7590
 BIOS           = 1.10.0
 Release        = Ubuntu 21.04
 Kernel         = 5.11.0-22-generic #23-Ubuntu SMP Thu Jun 17 00:34:23 UTC 2021 x86_64
 /proc/cmdline  = BOOT_IMAGE=/vmlinuz-5.11.0-22-generic root=/dev/mapper/vgubuntu-root ro quiet splash vt.handoff=7
 Init system    = systemd v247 (247.3-3ubuntu3.1)
 Boot mode      = UEFI
 +++ TLP Status
 State          = enabled
 RDW state      = enabled
 Last run       = 11:30:47 PM,     10 sec(s) ago
 Mode           = AC
 Power source   = AC

Networking

To be prepared for any VPN requirement, I install all the VPNs:

sudo apt 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 \
    network-manager-vpnc-gnome

Productivity

LIbreOffice comes pre-installed. But, to keep it up to date, I added the official repository:

sudo add-apt-repository ppa:libreoffice/ppa

For Bible study software, I use Xiphos. Remember up in the backup section, I restored the .sword directory for the Bible text and commentaries.

sudo apt install xiphos

I’ve been using Zotero off and on for a while now. It’s hard to figure out the best way to install in a way that keeps it automatically updated. I finally found a place that claims to update the repository within 24 hours of updates. So, I’ll use that.

wget -qO- https://github.com/retorquere/zotero-deb/releases/download/apt-get/install.sh | sudo bash
sudo apt update
sudo apt install zotero

Restoring the data directory was a big challenging because I had use the snap before. I had to move the data from ~/snap/zotero-snap/common/Zotero to ~/Zotero

I’ve been using Joplin as my notes application. I installed it from the software center, but I noticed it was a snap app:

snap install joplin-desktop

After installing, I went to Tools > Options > Synchronization, and I changed the target to OneDrive. After that, I exited back out to the main app and clicked the Synchronize button. That took me through the login process.

Printing

The cups-browsed service is very annoying because it adds printers that don’t get removed. So, a laptop that travels around a bit just collects printers that never get removed.

sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed

To install my Dell E525W printer, I downloaded the driver from the Dell website. I unzipped and installed the deb package:

cd ~/Downloads/
unzip Printer_E525w_Driver_Dell_A00_Linux.zip
sudo apt install ./dell-color-mfp-e525w_1.0-28_all.deb

I have found the settings app unreliable for working with printers. So, I used the cups web interface at http://localhost:631. I added an IPP printer with the URL ipp://DELLA40A1E/ipp/ and the PPD file located at: /usr/share/cups/model/Dell/Dell_Color_MFP_E525w.ppd.gz

Application Package Systems

Ubuntu comes with the ability to use DEB packages and snap packages. I used this to add AppImages:

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

And, I added Flatpak:

sudo apt install flatpak

Misc Utilities

Here are just a few utilities that I install:

sudo apt install menulibre \
       p7zip-full p7zip-rar \
       synaptic \
       gnome-tweak-tool
  • Menu Libre is a menu editor that makes it easy to add .desktop files to the menu system
  • 7Zip is handy for compression, although I rarely use it
  • synaptic just makes it easier to see what is installed
  • gnome-tweak-tool has a few settings that lets you tweak your system

Balena Etcher is one more utility that is great for putting images onto USB drivers for installing. I downloaded the AppImage from their website.

To finished the tweaks, I opened the regular settings app and made these changes:

  • Changed the time display on the top bar to 12 hour display under Date & Time > Time Format
  • Added the percentage by the battery indicator under Power > Suspend & Power Button > Show Battery Percentage (at the bottom)
  • Added the an avatar picture for my login under Users > click on the picture

In the Tweaks app (Gnome Tweak Tool), I made the following setting changes:

  • Added the weekday to the date with Top Bar > Clock > Weekday
  • Changed the modal behavior by unchecking Windows > Attach Modal Dialogs

Extensions

Before I can install any extensions, I had to install the chrome plugin:

sudo apt install chrome-gnome-shell

I also had to have this extension from the Chrome Store. Actually, I just restored my Chrome profile so the extension came with that.

So, then, these are the extensions that I like:

I retired these two extensions. I list them because maybe I’ll go back:

  • Caffeine: the tool I used to use stop the computer from going to sleep
  • Do Not Disturb Button: I used to use this for hiding notifications during meetings. It’s no longer maintained.

Media Apps

I’ve had issues with old versions of Gimp and collaborating with others . According to Gimp’s website, 2.10.24 is the latest version. Gimp came installed as a snap and it is actually the latest version. So, I left it alone.

sudo apt install inkscape \
         xournal
  • Inkscape: My go to program for drawing (vector-based drawing)
  • Xournal: I use it for annotating PDFs

These are the programs I use with audio:

sudo apt install audacity \
           soundconverter \
           musescore3 \
           easytag
  • Audacity: good for editing sound
  • soundconverter: good for changing sound formats
  • Musescore: good for working with sheet music
  • Easytag: good for changing the files’ meta-data

Video-related

These are the basic programs I like:

sudo apt install mplayer \
       vlc \
       youtube-dl
  • mplayer: simple video player
  • vlc: good player that will play about anything
  • youtube-dl: makes it easy to download things from YouTube

For the codecs, I installed:

sudo apt install \
      libdvdnav4 \
      libdvd-pkg \
      gstreamer1.0-plugins-bad \
      gstreamer1.0-plugins-ugly \
      ubuntu-restricted-extras
sudo dpkg-reconfigure libdvd-pkg 

Note: If you forget that second (reconfigure) command, you’ll get errors like this every apt install:

libdvd-pkg: apt-get check failed, you may have broken packages. Aborting…
 N: Download is performed unsandboxed as root as file '/home/skp/Downloads/insync_3.4.2.40983-focal_amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

For OBS, I repeated what I did on the last version of Ubuntu:

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

I found most of the plugins and such came over by restoring the config directory. One thing I did have to do was download the plugin from Dev47Apps and put it into ~/.config/obs-studio/plugins

Finally, I use Kdenlive for editing videos. I just downloaded the AppImage from their download page.

Resources

Video in Flutter

I started a quick app to try to organize a group of photos, which I intend to turn into a video. The problem is that I have a bunch of videos in the batch as well that I need to review. I thought I could get the video to work inside my app, but long story short, I wasn’t able to figure it out. I don’t think video is supported on the Linux platform. Maybe if I was working on Android, it would be a different story.

Anyway, maybe some of my notes will be helpful if you are trying things similar.

Read More