This is the software I like to have on various platforms, and is a work in progress (and so may morph wildly over time according to my personal whims) that I've started mostly for my own use. Recently I used this list in rebuilding my personal workstation after an awful day. Documentation saves (as do backups)!
My personal workstation and laptop are currently running Linux Mint 22.3 (Zena, based on Ubuntu 24.04), moderately tailored for my own use. Previously, I was on Ubuntu 22.04 LTS Desktop. For me, Mint requires considerably less customization to be tolerable, and that made switching to it a lot less painful than it otherwise could have been.
I prefer distro packages where available and not too far out of date, then the latest vendor official packages or binaries when I can can find them (except where it would be too disruptive: like when they overwrite critical dependencies). I will turn to vendor AppImages where packages or binaries aren't available. If I can't find it anywhere else, I'll use a vendor's Flatpak or PPA. I do not use snaps.
Spidery dark type on bright white backgrounds may be "Modern", but they're hard for me to read. Apparently, I'm not alone [1]. As a result, I use dark themes wherever possible. I (and apparently 5 million others) also use the Dark Reader (https://darkreader.org/) extension in LibreWolf (also available for Brave) to force a dark theme on web content (when it doesn't make things worse).
For nearly all server software other than email (postfix) and web proxy (nginx), I try to use containers with Docker, rather than bare-metal services. Here are a few:
- Portainer (https://portainer.io)
- PgAdmin4 (https://hub.docker.com/r/dpage/pgadmin4/)
- Home Assistant (https://hub.docker.com/r/homeassistant/home-assistant)
- Eclipse Mosquitto (a/k/a MQTT, https://hub.docker.com/_/eclipse-mosquitto/)
- PhotoPrism (https://docs.photoprism.app/getting-started/docker/)
- Minecraft (https://github.com/itzg/docker-minecraft-server)
- Standard install of the default Linux Mint Desktop (Cinnamon).
(some are already installed by default - and yes, I intend to update the footnotes and reorder this list more logically)
- vim [2]
- ufw (enable with at least ssh allowed)
- rsync
- rclone
- p7zip-full file compression
- btop
- flatpak
- fonts-firacode [3]
- extrepo
- secure-delete
- ratbagd
- piper
- git-all
- nginx (every developer desktop needs a real web server)
- nginx-extras (trust me, you'll want this)
- postfix [4]
- postgresql
- ttf-mscorefonts-installer
- fonts-roboto
- fonts-powerline
- meld
- python3 [5]
- pipx
- nodejs
- openjdk-21-jre-headless
- lua5.4
- golang
- rustc
- cargo
- openssh-server
- bridge-utils
- qemu-system-x86 [6]
- libvirt-daemon-system
- libvirt-clients
- virt-manager
- libguestfs-tools
- iperf3 (test network speed)
- btop
- wireshark
- ffmpeg
- audacity
- easytag (mp3 tag editor)
- simple-scan
- imagemagick
- pandoc
- adb (Android Debug Bridge)
- zbar-tools, zbarcam-gtk [7]
- zint, zint-qt [8]
- avrdude (flash AVR microcontrollers)
- Weather
- Lock keys indicator
On laptops:
- tlp [9]
- wavemon (curses-based wifi network browser)
- Calibre (ebook reader/editor/publisher, https://calibre-ebook.com/download_linux)
- Blender (https://www.blender.org/download/)
- gitbackup (https://github.com/amitsaha/gitbackup, this is truly awesome software)
- vim-plug (https://github.com/junegunn/vim-plug)
- Backblaze b2 (CLI for bucket admin, https://www.backblaze.com/docs/cloud-storage-command-line-tools)
- Restic (https://github.com/restic/restic/releases)
- PyEnv (https://github.com/pyenv/pyenv)
- nvm (https://github.com/nvm-sh/nvm)
- Genymotion (Android emulator, https://www.genymotion.com/)
- Ookla Speedtest CLI (https://www.speedtest.net/apps/cli)
- Linux Malware Detector (https://www.rfxn.com/projects/linux-malware-detect)
These don't use the native packaging system at all, and in some cases don't come with an uninstall function. Many also don't alert you when updates are available. You'll need to take care to check periodically for updates.
- LibreWolf (https://librewolf.net/installation/debian/) [10]
- Brave (https://brave.com/linux/) [11]
- skychart (https://ap-i.net/skychart/en/download
- mkvtools (https://mkvtoolnix.download/downloads.html#ubuntu)
- postgresql (https://www.postgresql.org/download/linux/ubuntu/)
- AstroDMx Capture (https://www.astrodmx-capture.org.uk/astrodmx-capture-downloads/)
- PostgreSQL (https://www.postgresql.org/download/linux/ubuntu/)
- Proton Mail (https://proton.me/support/mail-desktop-app)
- Syncthing (https://apt.syncthing.net) [12]
- Docker (https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository)
- Signal (https://signal.org/download/)
- HTTP Toolkit (https://httptoolkit.com/download/linux-deb/)
- VSCodium (https://github.com/VSCodium/vscodium/releases) [13]
- Obsidian (https://obsidian.md/download) [14]
- Tor Browser (https://www.torproject.org/download/)
- ClamAV (https://www.clamav.net/downloads)
- Xmind (free version, https://xmind.com/download?download=linux_deb)
Using native packaging, most of these can easily be uninstalled. If integrated with the package system they usually get regular updates.
- appimaged (https://github.com/probonopd/go-appimage/releases) [15]
- Bitwarden (https://bitwarden.com/download)
- GIMP (https://www.gimp.org/downloads/)
- Inkscape (https://inkscape.org/release/)
- Stellarium (https://stellarium.org)
- Siril (https://siril.org)
- Flatseal (com.github.tchx84.Flatseal)
- Foliate ebook reader (com.github.johnfactotum.Foliate)
- Discord (com.discordapp.Discord)
Flatpaks also get regular updates.
- OpenRGB (laptop keyboard lighting,
add-apt-repository ppa:thopiekar/openrgb)] - Variety (wallpaper changer,
add-apt-repository ppa:variety/stable)
Like snaps and flatpaks, most PPAs are community created. That's why I usually only install those created by the upstream project or vendor. They can be handy because they use the native (deb) packaging system, and are generally easy to uninstall if they fail.
(in a virtual environmement python -m venv .venv) [16]
- pip (
pip install --upgrade pip) - jupyter notebook
- numpy
- matplotlib
- pandas
- gmsh (view STL files)
- yt-dlp
If running Linux Mint, use pipx to install modules as a user when not using a virtual environment.
- yarn (npm install yarn)
- Bitwarden (all browsers, https://bitwarden.com) (not on mobile)
- Dark Reader
Hopefully, as we grow older, we become wiser. Browser extensions are a useful feature, but can impact performance and privacy (how do you pay for an extension without transmitting identity information to the vendor?). This is why I'm totally on board with the trend towards incorporating built-in ad blocking and other features (e.g. Brave's "Shields". or LibreWolf's integration of its own uBlock Origin build).
- Google Messages for the Web (https://messages.google.com/web)
- Mastodon (https://mastodon.social/home)
Chromium-derived browsers like Brave can setup desktop shortcuts to progressive web apps or web pages. See this gist for more.
Not rooted for safety. I'm currently running a Motorola smartphone and Samsung tablet, both budget models. While I try to avoid depending on Google software and services, that isn't possible in areas where the big G dominates: like navigation [17]. Thanks to a serious open source alternative web browser communities (e.g. IronFox, Brave) we do have solid choices beyond the Big Three (Google, Microsoft, Mozilla).
- File Manager Plus [18]
- Brave
- Proton Mail
- Proton Calendar
- Bitwarden
- Acode code editor (paid version)
- Scientific calculator plus 991 (Tools for Student) [19]
- Discord messenger
- Signal
- Stellarium
- Moon+ Reader Pro
- AntennaPod
- Mastodon
- Obsidian
- PDF Viewer lite (AVR-Apps)
- Caffeine [20]
- Syncthing-Fork
- Collabra Office [21]
- OsmAnd (maps and navigation)
- Tor browser
- Health Connect
From F-Droid (https://f-droid.org/)
- IronFox [22]
- Termux [23]
- Aegis Authenticator
- Fossify Voice Recorder
- Fossify Gallery
- uBlock Origin (https://ublockorigin.com)
- Dark Reader
My employer provides me with a Windows laptop for work, and enforces an approved list of standard software. As my first job at the company included locking down our then-new Windows desktops with group policies, the irony of now having to live under those restrictions as a "power user" isn't lost on me.
[1] Raluca Budiu. "Dark Mode vs. Light Mode: Which Is Better?". Neilsen Norman Group. 2 February 2020, https://www.nngroup.com/articles/dark-mode/.
[2] Everything else fails eventually. Vim continues. I use the shipping full vim package (not vim-tiny), which in Ubuntu 22.04 is version 8. See my vimrc for hints on customization.
[3] My favorite font for code editing.
[4] Postfix is my go to when I need to send mail over the Internet or my local network, or receive mail from services like cron (in the last case the server would be configured as Local only). Hanif Jetha and Mark Drake, "How to Install and Configure Postfix on Ubuntu 20.04" is a good place to start, https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-on-ubuntu-20-04.
[5] See Managing python (for most of us), for a standard python setup and how to maintain it. If you need the latest python version, then pyenv is your best option.
[6] Tried VMware Player and Oracle VirtualBox for a while, but finally returned to KVM because it really has improved over time (e.g., support for 3D acceleration in Linux guests using VirGL). Packages to install on Ubuntu are: qemu-system-x86, libvirt-daemon-system, libvirt-clients, bridge-utils, virt-manager. The kernel modules previously loaded with qemu-kvm are not included with qemu-system-86. If you want to experiment with non-x86(64) architectures, load qemu-system.
[7] QR-Code readers (webcam and image) for Linux (https://zbar.sourceforge.net/index.html).
[8] Zint QR-Code Studio (QR-Code creation) for Linux (https://sourceforge.net/projects/zint/)
[9] The Ubuntu package installs with the default config, which worked just fine on most laptops. Enable with systemctl enable tlp.service and start with tlp start.
[10] LibreWolf, an open source fork of Firefox, has replaced the latter on all my Linux systems (there's no Android build for LibreWolf). Librewolf's default settings are reasonably privacy-protecting, making the job of customizing it much easier than Firefox.
[11] I have replaced Chrome with Brave on all my systems, including my smartphone, because the former is more privacy-respecting, and its reasonable defaults makes less work for me in customizing it.
[12] For the small number of files I actually need access to across devices, Syncthing works pretty well. Follow the documentation. Hint: I always grab the Syncthing Device IDs for each device and enter them manually in the Syncthing config on my primary device (e.g., my desktop machine). I then follow the prompts on each device to complete the sharing process. Syncthing lags a little during configuration, so give each node time to set up. For sync of photos on phones and tablets, I set up a separate sync folder (e.g. /storage/emulated/0/DCIM/Camera) that I then push to the Pictures folder on my desktop machine.
[13] Open source (MIT license) fork of Visual Studio Code, without the proprietary bits like telemetry and AI domination.
[14] Obsidian is a freemium note-taking application. Notes are stored in markdown format with associated attachments (images, documents, etc.) in a "vault" (folder, with or without sub-folders) of your choosing. I share a folder with my Linux and Android devices over Syncthing, and point my desktop and mobile versions of the app at it as my vault. Despite depending on Syncthing having a good day, this solution works well for me.
[15] go-appimage is a project providing tools for managing AppImages on the desktop from "the inventor of the AppImage format". This includes appimaged, a systemd user daemon that automatically creates desktop launchers for AppImages found in specific directories, like ~/Applications. To deploy grab the appimaged image, drop in your designated AppImage directory (for me this is ~/Applications), and execute (./appimaged*).
[16] How you manage python depends on a lot of factors, including whether you have a need to switch versions for different projects. In Managing python (for most of us) I outline how I've tried to do it.
[17] I struggle with moving off Google Maps and onto OsmAnd. The latter has a definite advantage for off-grid and near off-grid travel, but Google's interface is still much better and its results not as prone to misdirection. However, given the example of Google Search's decline in usefulness, I am concerned that relying too heavily on AI in the design, testing, and maintenance process will result in a quality crash for Maps.
[18] After using many file managers on Android over the years, I settled on this one from AlphaInventor (https://www.alphainventor.com). Files by Google wasn't bad, but it didn't support SFTP on my local network, File Manager Plus does.
[19] Best scientific calculator app on Android. Emulates the Casio 991 Plus and Graphing Calculator 84 Plus. Also works as a phone :-)
[20] Caffeine allows you to prevent Android from putting your device to sleep while something important is happening on it.
[21] A functional alternative to Microsoft Office for Android. On the desktop I use LibreOffice (which Linux Mint installs by default).
[22] IronFox is another fork of Firefox, compiled for Android. It has its own private F-Droid repository. Like LibreWolf, its defaults are reasonably privacy-protecting. Moving to IronFox as my default browser on Android has made web browsing on a smart phone tolerable again.
[23] Little used, but essential, Termux has been a mainstay of my Android experience for over a decade. It's basically tiny Linux-in-a-box.