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

Introduction

This book contains all my computing notes for my server and my personal laptop.

My Chromebook (Miller) has 4 GB RAM and runs Fedora Workstation. It runs Dino, Evolution, Shortwave, and Firefox. Configuration files are on Codeberg.

My ThinkCentre (Farnsworth) has 8 GB RAM and runs Trisquel GNU/Linux. It runs Jellyfin and Nginx.

I also have a VPS for IRCNow that runs a web server and IRC server on OpenBSD.

Restore From Backup

The following describes how to completely restore my Chromebook (Miller) from backup, and documents all its configuration.

Hostname

Set hostname: Settings > About > Device Name: miller

Access Backup

  1. Install Pika Backup.
  2. Access backups: Files > Network > Server address: ssh://caleb@192.168.1.79
  3. Setup Backup > Use Existing Repository > Location on Disk > caleb@192.168.1.79 > Ctrl+L > sftp://caleb@192.168.1.79/mnt/husky/archives/backups/backup-miller-caleb/ > Select
  4. Enter password, follow instructions.
  5. Archives > [Most recent date] > Browse saved files

From how on, the directory shown under "Browse saved files" will be indicated by the placeholder $backup.

Snikket

  1. Copy $backup/.var/app/im.dino.Dino/ to ~/.var/app/.
  2. Install Dino.
  3. Launch Dino and pin Dino to dash.

Firefox

  1. $ rm -rf ~/.mozilla/
  2. Move $backup/.mozilla/ to home directory.
  3. Launch Firefox.

GPG and SSH.

  1. Move $backup/.gnupg/ to home directory.
  2. Move $backup/.bashrc to home directory.
  3. $ echo UPDATESTARTUPTTY | gpg-connect-agent

Password Manager

  1. Move $backup/.password_store/ to home directory.
  2. $ sudo dnf install pass

GNU Emacs

  1. $ sudo dnf install emacs
  2. Move $backup/.emacs.d/ to home directory.

Email

  1. Move $backup/.var/app/org.gnome.Evolution/ to ~/.var/app/.
  2. Install Evolution (from Flathub).
  3. Settings > Online Accounts > Email Server
  4. Email: csh@bluehome.net
  5. Enter password from $ pass show Email/bluehome.net
  6. Sign In
  7. Launch Evolution and pin to dash.
  8. Menu > Edit > Accounts > csh@bluehome.net > Edit
  9. Add New Signature: Plain Text
  10. Defaults > Archive Folder: Archives > OK

Radio

  1. Move Shortwave's folder to ~/.var/app/.
  2. Install Shortwave from Flathub.
  3. Launch Shortwave and pin to dash.

Gemini Browser

  1. Move Lagrange's folder to ~/.var/app/.
  2. Install Lagrange from Flathub.

IRC

  1. Move Halloy's folder to ~/.var/app/.
  2. Install Halloy from Flathub.

Or build from source.

$ sudo dnf install openssl-devel alsa-lib-devel
$ git checkout 2025.06

Make some changes in irc/Cargo.toml:

arti-client = { version = "0.26", default-features = true, features = ["onion-service-client", "rustls", "compression", "tokio", "static-sqlite"] }

Then:

$ cargo build --release --all-features

Put the following .desktop file in ~/.local/share/applications/:

[Desktop Entry]
Name=Halloy
Comment=IRC client written in Rust
Type=Application
Keywords=IRC;IM;Chat;
Categories=Network;IRCClient;
Exec=/home/caleb/.local/src/halloy/target/release/halloy %U
Icon=org.squidowl.halloy
StartupWMClass=org.squidowl.halloy
MimeType=x-scheme-handler/irc;x-scheme-handler/ircs;x-scheme-handler/halloy;
Terminal=false

Don't forget to clone and build Halloy in ~/.local/src/.

YouTube

  1. Move tubefeeder folder to ~/.var/app/.
  2. Install Pipeline from Flathub.

Desktop

  • Displays > Night Light > On
  • Power > Power Saving > Automatic Suspend > When Plugged In > Off
  • Power > General > Show Battery Percentage > On
  • System > Date & Time > Time Format > 24-hour
  • System > Date & Time > Clock & Calendar > Week Day > On
  • Keyboard > Add Input Source > Russian, Hebrew
  • Settings > Users > Change Avatar > Select A File... > CH.png

Other Apps

  • Picture Of The Day

Scripts

  • Move $backup/.local/bin/ to home directory.

Fonts

  • Move $backup/.local/share/fonts/ to home directory.

Rust

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ cargo install mdbook just bat

Hosts

Fix /etc/hosts so that calebh.top can be accessed from within the home network. The home network is subject to NAT hairpinning.

$ sudo emacs -nw /etc/hosts

Add to /etc/hosts file:

# Loopback entries; do not change.                                              
# For historical reasons, localhost precedes localhost.localdomain:             
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
# See hosts(5) for proper format and other examples:                            
# 192.168.1.10 foo.example.org foo                                              
# 192.168.1.13 bar.example.org bar                                              
192.168.1.79 calebh.top

Niri

Niri is a Wayland compositor inspired by the GNOME extension PaperWM. As such, there are many similarities with GNOME, so it will be familiar to GNOME users. I've found it a joy to use.

Installation

$ sudo dnf copr enable yalter/niri
$ sudo dnf install niri

Other important software is needed for normal desktop use.

$ sudo dnf install mako

Configuration

Chromebooks don't really have a Print Screen key, so we'll use other key combos in ~/.config/niri/config.kdl.

    Mod+P { screenshot; }
    Ctrl+Mod+P { screenshot-screen; }
    Alt+P { screenshot-window; }

Auto-start mako.

// This line starts waybar, a commonly used bar for Wayland compositors.
spawn-at-startup "waybar"
spawn-at-startup "mako"

Waybar

$ git clone https://github.com/rubyowo/dotfiles
$ git checkout f925cf8e3461420a21b6dc8b8ad1190107b0cc56
$ cp config/waybar ~/.config

Change timezone.

$ sed s/Asia\/Dubai/America\/Chicago/ ~/.config/waybar/config

Get a font for the icons.

$ wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/AdwaitaMono.zip
$ unzip AdwaitaMono.zip
$ mv AdwaitaMonoNerdFont* ~/.local/share/fonts/

In style.css:

* {
  font-family: AdwaitaMono Nerd Font;

Swaylock

Blaring white lock screens are awful! Put the following in ~/.config/swaylock/config:

color=000000

Quad9 DNS

IPv4

  • Click the Network or WiFi icon in the system tray at the top-right corner of the screen.
    • Click the > next to the active connection.
      • Select Wired Settings or Wireless Settings.
  • Click the gear icon next to your connection.
  • Click the IPv4 tab.
  • Disable Automatic DNS.
  • Enter the Quad9 IP addresses of your preferred service.

Multiple IP addresses can be entered in the list using commas.

9.9.9.9, 149.112.112.112
  • If you will not use IPv6, click Apply to complete the setup process, and then confirm you're using Quad9.

IPv6 (Optional)

If your network supports IPv6, it's also recommended to configure the Quad9 IPv6 addresses. If you're not sure if IPv6 is configured on your network, you can test that here: https://test-ipv6.com/.

  • Select the IPv6 tab.
    • Disable Automatic DNS.
      • Enter the Quad9 IP addresses of your preferred service.

Multiple IP addresses can be entered in the list using commas.

2620:fe::fe, 2620:fe::9
  • Click Apply to complete the setup process.

Verify Configuration

Confirm you're using Quad9 by visiting on.quad9.net in your preferred browser.

Taken from the Quad9 documentation.

Don't forget: Disconnect and reconnect yoru Wi-Fi!

Sync to Web Server

Add your user to the www-data group.

$ sudo usermod -a -G www-data $USER

Edit the sudoers file.

$ sudo visudo

Add the following line to the end of the file.

caleb ALL=NOPASSWD:/usr/bin/rsync

Push to the server with the following command:

$ rsync -auv --rsync-path="sudo rsync" source/ caleb@calebh.top:/var/www/calebh.top/destination/