personal computing

I need a deep topic to hold ideas about my personal computing. This is it.

I replicate personal computing configurations between devices. A current technology used is syncthing. When I get a new device I install it; note: I don’t use the Android client, as I don’t have Android devices that meet my personal computing standards.

I use Gnome and Flatpak, so I install syncthing from Flathub.

flatpak install flathub me.kozec.syncthingtk

I currently have four synced directories:

  • docs (~/docs) - my primary workspace; as projects finish I move them out of docs into an archive, keeping this a relatively lean amount of space.
  • sync (~/.sync) - currently syncs my KeePassXC vault, but separate for other, crucial files.
  • task (~/.task) - my taskwarrior files. I use syncthing rather than taskserver, since I only work on a single computer at a time, so I don’t get merge errors or anything. Occasionally I switch before syncing (I have it “watch” the directory, so syncing normally happens in near real-time), and the biggest issue I have is sometimes creating multiple versions of a recurring task template (one on both machines).
  • music (~/music) - syncs music from the archive to whichever machine I’m actively using. Considered syncing to phone for this purpose. Works well with my conversion to opus.
  • .dotfiles (~/.dotfiles) - configuration files. This was added to the sync roster as part of this exercise, because it makes a lot of sense of me. :slight_smile:

To synchronize via syncthing one needs to add a Device Identification to the other device’s client. They provide QR code. I have two methods, depending on how rushed I am:

  1. Install Gajim, send ID to myself via XMPP+OMEMO
  2. Scan with barcode app and send to myself via Conversations and XMPP+OMEMO

Then I use the client on the existing device (likely to be Gajim) to get the ID and finish adding it.

I cache data feeds with FreshRSS, and normally read them with FeedReader, an RSS reader for Gnome. It is deprecated, and the developer is working on a client in Rust called NewsFlash. As FreshRSS uses the so-called “Google Reader” style API, and work to access it is underway in NewsFlash.

In the meantime I don’t have a clear upgrade path. I get by with FeedReader on devices that still have it.

flatpak install flathub com.gitlab.newsflash

I use KeePassXC for password management. I sync the vault via syncthing. Installed via flatpak:

flatpak install flathub org.keepassxc.KeePassXC

I use stow to keep my dotfiles in order.

sudo dnf install stow

I spent considerable time considering if I should keep my dotfiles in git or fossil. But since I am already using syncthing, I’ve started syncing ~/.dotfiles as well, and then using stow as needed for that machine.

To install my taskwarrior config:

[maiki@violet ~]$ cd .dotfiles/
[maiki@violet .dotfiles]$ stow -S task/

And done.

I use taskwarrior, and I get that from Fedora:

sudo dnf install task

Gajim for jabber chat! And OMEMO for privacy (who knows what the admin at mage.party can see?!).

Flatpak for the win:

flatpak install flathub org.gajim.Gajim

Flatpak apps may be containerized with access to each other, that’s how they have permission to operate together. For Gajim that means plugins are installed via flatpak as well, and have some docs at flathub · Wiki · gajim / gajim · GitLab.

[maiki@violet ~]$ flatpak search gajim.plugin
Name                  Description                                  Application ID               Version Branch Remotes
URL Image Preview Pl… Display a preview of links to images         …im.Plugin.url_image_preview         stable flathub
PGP Plugin            XMPP Extension Protocol (XEP) for secure mu… org.gajim.Gajim.Plugin.pgp           stable flathub
OpenPGP Plugin        Experimental OpenPGP XEP-0373 Implementation ….gajim.Gajim.Plugin.openpgp         stable flathub
OMEMO Plugin          XMPP Extension Protocol (XEP) for secure mu… org.gajim.Gajim.Plugin.omemo         stable flathub
Ayatana Appindicator… Integrate Gajim with the Ayatana AppIndicat… …m.Gajim.Plugin.appindicator         stable flathub

Installing OMEMO as a flatpak is so simple! And it just works, too. :star_struck:

flatpak install flathub org.gajim.Gajim.Plugin.omemo

While I’m at it, I’ll go ahead and install the image previewer, which previews images served to me from the jabber server.

flatpak install flathub org.gajim.Gajim.Plugin.url_image_preview

Years ago I started customizing my user-dirs.dirs, and have been reducing the directories in my home since.

Today, I keep the following user-dirs.dirs in my .dotfiles:

XDG_DOWNLOAD_DIR="$HOME/dl"
XDG_TEMPLATES_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/docs"
XDG_DESKTOP_DIR="$HOME/"
XDG_PUBLICSHARE_DIR="$HOME/"
XDG_MUSIC_DIR="$HOME/music"
XDG_PICTURES_DIR="$HOME/"
XDG_VIDEOS_DIR="$HOME/"

Which gives me this sweet home layout:

[maiki@violet ~]$ tree . -L 1
.
├── dl
├── docs
└── music

And Nautilus uses the config as well:

:sunglasses:

I use Deja Dup for incremental backups. However, I don’t use it on most computers, just lime, the family server, which houses the photos archive.

flatpak install flathub org.gnome.DejaDup

The idea is that all my files I use actively are synced to lime, and then backed up. That’s enough redundancy for me, personally.

I’m use a couple of binaries: fossil and hugo. Since these are essentially single user and may be static (meaning I choose when to upgrade, regardless of package manager), I’m going to try something new: using syncthing on a new share at ~/.bin.

If I look at my warez (the hard and soft instruments of processing), syncing parts of my “home” directory to various devices as needed really works for me. This could be a useful way to keep my binaries synced, when not using flatpak. :thinking:

I was going to add that to my .bashrc and noticed:

# User specific environment
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
    PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH

So I moved .bin to .local/bin, which is fine with me. I’ll need to keep this in mind, depending on my environment…

My “personal computing” extends to at least one Android device, so it is worth noting how I use such devices.

Now that I’ve got LineageOS as the base, I install F-Droid, and install and configure select applications. :slight_smile:

Oh, I actually configure F-Droid! But it is mainly to not use a “data connection” (meaning mobile SIM) to update, ever.

Looking at my Pixel XL, which apps do I need?

  • barcode scanner (I rarely need it, but always do)
  • Conversations (XMPP)

:thinking:

And probably a different web browser…

I think I might start this from scratch, and not load a bunch of these until I reach for them, and then assess.

Oh, but definitely syncthing-android!

When I check email I use a single computer to check all accounts, and process as a batch. Because sometimes email requires a response, I put aside this time to correspond.

I considered adding accounts to the tablet, but I prefer a full keyboard to process email, and I also don’t want my credentials carried on many devices. In this way I continue to marginalize email in my tech stack. :slight_smile:

Turned on lime after a while, watching the sync happen:

:sunglasses: