Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Caleb’s EliteBook

My laptop is an HP EliteBook 840 G2 with 8 GB RAM running Fedora Workstation. I got it from eBay in November 2025 at the suggestion of Gideon “Gnafu the Great” Mayhak, one of the support staff at my phone company, JMP.chat. The laptop is remarkably sturdy, and there’s plenty of memory for my use case: Web browsing, email, chat, and video conferencing, and a bit of Rust programming.

The manual for the EliteBook can be found on the HP website.

SSH

To get SSH to work, you may need to run the following command first.

echo UPDATESTARTUPTTY | gpg-connect-agent

Everything else should be covered by your dotfiles.

Touchpad

Touchpad fails after waking from suspend. I found a solution for it.

sudo rmmod i2c_i801 && sudo modprobe i2c_i801

To make this command run automatically, place the following in /lib/systemd/system-sleep/restart-touchpad.

#!/usr/bin/env bash

if [[ $1 == post ]]; then
    sudo rmmod  i2c_hid_acpi
    sudo modprobe i2c_hid_acpi
fi

Make sure to make the script executable.

sudo chmod +x /lib/systemd/system-sleep/restart-touchpad

IRPC

Install Internet Relay PictoChat from source.

  1. Download Go.
  2. Follow the installation instructions.
  3. Install Fyne dependencies using Fyne’s installation instructions.
  4. git clone https://codeberg.org/irpc/irpc-client; cd irpc-client
  5. go install codeberg.org/irpc/irpc-client@latest

Applications

I use the following applications.

  • Authenticator*
  • Cheogram CLI Dialer
  • Delta Chat
  • Evolution
  • Firefox
  • Fractal*
  • GNU Emacs
  • Gajim
  • Halloy*
  • Newsflash*
  • Pika Backup*
  • Podcasts*
  • Secrets
  • Shortwave*
  • Tuba

*: Written in Rust.

Halloy

SASL on Libera.Chat is configured in config.toml with the following lines. I keep the password in a text file.

[servers.liberachat.sasl.plain]
username = "KE0VVT"
password_file = "/home/caleb/.var/app/org.squidowl.halloy/config/halloy/pass-liberachat.txt"

Use single pane rather than opening each channel in a new pane every time. This prevents panes from stacking up.

[actions.sidebar]
buffer = "replace-pane"

[actions.buffer]
click_channel_name = "replace-pane"
click_username = "replace-pane"

GNU Emacs

My GNU Emacs config is simple. It can be found in my dotfiles.

Farnsworth

Farnsworth is a Lenovo ThinkCentre running GNU Guix System. It primarily serves as a Jellyfin media server.

Jellyfin

Deploy Jellyfin by adding the following to the system configuration.

	    ;; Jellyfin
	    (service elogind-service-type)
	    (service containerd-service-type)
	    (service docker-service-type)
	    (service oci-container-service-type
		     (list
		      (oci-container-configuration
		       (image "jellyfin/jellyfin")
		       (provision "jellyfin")
		       (network "host")
		       (ports
			'(("8096" . "8096")))
		       (volumes
			'("jellyfin-config:/config"
			  "jellyfin-cache:/cache"
			  "/home/caleb/Media:/media")))))

Updates

Update the system.

guix pull
sudo guix system reconfigure ~/.dotfiles/Configs/guix/.config/guix/system/farnsworth.scm

This will take a very long time.

If guix pull takes too long (days) check /gnu/store/ for corruptions.

guix gc --verify=contents