As the year was turning, I finally quit procrastinating and updated my laptop to Ubuntu 23:10. I hadn’t even finished my article about getting the laptop in the first place. Time to get on the ball! (And I procrastinated in getting it proofread and published, sorry.)
I’ve been trying to take notes as I install each version of Ubuntu. Then, when the next version comes out, it’s so much easier to do the install just following the notes from the last time! But, getting all the way to publishing has been more and more difficult.
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.
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.
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:
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.
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.
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:
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:
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.
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:
Keep Awake: Let’s me keep the screen on when I’m at home and don’t want to worry about unlocking it after I walk away.
Bing Wallpaper: updates the desktop background with a new picture every day
Clipboard Indicator: keeps a list of copied text so that I can go back to it
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.
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.
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.
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.
I got a new computer! I’ve finally left the Dell XPS line! This is my first time getting a laptop that already has Linux on it. And, I’m excited to have a little larger screen now. (Actually, I’m a bit slow. I’ve had it almost 7 months now, so I can comment a little better on things I like and don’t like.)
I thought I was going to use Duplicati for my backups, but my explorations didn’t go so well. I looked around for alternatives, and I found UrBackup. So, let’s do a little experiment to see how it works. Below are my notes as I tried it out.
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.
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.
I took a little less time this install, but it still takes me some time going through these notes and getting it right. This is what I’ve done to get my computer setup this time on Impish Indri Ubuntu 21.10.
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.
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
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.
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';
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:
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:
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.
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:
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:
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:
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.
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:
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:
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.
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.
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
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)
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:
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.