The Personal Website of Jeremy Boles

Chestnut

An HP Spectre x360 laptop.

Chestnut is one of my main workstations, and the first laptop I bought when I stopped using Apple products.

Specs

  • OS: Debian 13 Trixie
  • Window manager: GNOME
  • Display: 13.5-inch @ 267 DPI (3000×2000)
  • Disk: 2 TB NVMe SSD
  • CPU: Intel Core i7-1255U @ 4.7 GHz (×10)
  • GPU: Intel Iris Xe
  • RAM: 16 GB DDR4-4266
  • Weight: 1.349 kg

Post-Installation Setup

Boot Splash

Chestnut booted into a wall of text and a graceless prompt to unlock the disk. That one isn’t this laptop’s fault; the fix lives on the Debian page, because every machine needs it.

Drivers

I made sure the laptop’s drivers were installed and loaded.

sudo apt install firmware-misc-nonfree intel-microcode
echo "i915" | sudo tee -a /etc/initramfs-tools/modules
sudo update-initramfs -u

And finally, I installed Plymouth’s themes package and set a clean, simple unlock prompt.

sudo apt install plymouth-themes
sudo plymouth-set-default-theme -R bgrt

GRUB Speed & Appearance

With Plymouth working, I wanted to speed up boot so a computer this fast wouldn’t seem to stall at GRUB. So I opened GRUB’s config again and set a few more values.

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash loglevel=3 vt.global_cursor_default=0"
GRUB_DISABLE_OS_PROBER=true
GRUB_GFXPAYLOAD_LINUX=keep
GRUB_TIMEOUT=1
GRUB_TIMEOUT_STYLE=hidden

With that booting cleanly, I enabled HDR in GNOME’s settings, since this screen supports it. But when I did, some animations turned choppy. That sent me back to GRUB’s config to disable PSR (Panel Self Refresh).

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.enable_psr=0 loglevel=3 vt.global_cursor_default=0"

That apparently costs more power, so I plan to turn PSR back on soon and see whether the choppiness has been fixed.

YubiKey GPG + SSH Agent

sudo apt install gnupg scdaemon pcscd yubikey-manager

Enable SSH support in gpg-agent and its socket:

echo "enable-ssh-support" >> ~/.gnupg/gpg-agent.conf
systemctl --user enable --now gpg-agent-ssh.socket

Mask (not just disable) the competing agents that GNOME wants to use:

systemctl --user disable --now ssh-agent.socket ssh-agent.service
systemctl --user mask gcr-ssh-agent.socket gcr-ssh-agent.service
systemctl --user mask ssh-agent.socket ssh-agent.service

Set SSH_AUTH_SOCK via environment.d:

mkdir -p ~/.config/environment.d
cat > ~/.config/environment.d/90-gpg-ssh.conf <<'EOF'
SSH_AUTH_SOCK=/run/user/1000/gnupg/S.gpg-agent.ssh
EOF

Finally, gnome-session runs an XDG autostart file outside systemd that relaunches the keyring ssh-agent and stomps SSH_AUTH_SOCK at login. Override it for the user session:

mkdir -p ~/.config/autostart
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/
echo "Hidden=true" >> ~/.config/autostart/gnome-keyring-ssh.desktop

eDP Panel Won’t Wake

I stepped away for a while, and when I came back the laptop wouldn’t wake. The fix was to use a new kernel via trixie-backports:

echo "deb http://deb.debian.org/debian trixie-backports main non-free-firmware" | sudo tee /etc/apt/sources.list.d/backports.list
sudo apt update
sudo apt install -t trixie-backports linux-image-amd64 firmware-misc-nonfree