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.
- Download Go.
- Follow the installation instructions.
- Install Fyne dependencies using Fyne’s installation instructions.
git clone https://codeberg.org/irpc/irpc-client; cd irpc-clientgo 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