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
- Install Pika Backup.
- Access backups: Files > Network > Server address:
ssh://caleb@192.168.1.79
- 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 - Enter password, follow instructions.
- 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
- Copy
$backup/.var/app/im.dino.Dino/
to~/.var/app/
. - Install Dino.
- Launch Dino and pin Dino to dash.
Firefox
$ rm -rf ~/.mozilla/
- Move
$backup/.mozilla/
to home directory. - Launch Firefox.
GPG and SSH.
- Move
$backup/.gnupg/
to home directory. - Move
$backup/.bashrc
to home directory. $ echo UPDATESTARTUPTTY | gpg-connect-agent
Password Manager
- Move
$backup/.password_store/
to home directory. $ sudo dnf install pass
GNU Emacs
$ sudo dnf install emacs
- Move
$backup/.emacs.d/
to home directory.
- Move
$backup/.var/app/org.gnome.Evolution/
to~/.var/app/
. - Install Evolution (from Flathub).
- Settings > Online Accounts > Email Server
- Email: csh@bluehome.net
- Enter password from
$ pass show Email/bluehome.net
- Sign In
- Launch Evolution and pin to dash.
- Menu > Edit > Accounts > csh@bluehome.net > Edit
- Add New Signature: Plain Text
- Defaults > Archive Folder: Archives > OK
Radio
- Move Shortwave's folder to
~/.var/app/
. - Install Shortwave from Flathub.
- Launch Shortwave and pin to dash.
Gemini Browser
- Move Lagrange's folder to
~/.var/app/
. - Install Lagrange from Flathub.
IRC
- Move Halloy's folder to
~/.var/app/
. - Install Halloy from Flathub.
$ 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
- Move
tubefeeder
folder to~/.var/app/
. - 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
orWiFi
icon in the system tray at the top-right corner of the screen.- Click the
>
next to the active connection.- Select
Wired Settings
orWireless Settings
.
- Select
- Click the
- 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.
- Disable
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/