Configuration files from my setup, ready to download and reuse.
Ghostty: ft-paper
A light terminal theme inspired by the Financial Times, with a paper background and slate text.
Save it as ~/.config/ghostty/themes/ft-paper (or $XDG_CONFIG_HOME/ghostty/themes/ft-paper if you use a custom config directory). Set theme = ft-paper in your Ghostty configuration, then reload the configuration.
See the Ghostty theme documentation for details.
Herdr: ft-paper
A matching light interface for Herdr, the terminal workspace manager. Its sidebar, tab bar and popups otherwise stay dark on the paper background.
Download the ft-paper theme for Herdr
Herdr has no theme files: it reads a built-in theme name plus token overrides from its configuration. Paste these sections into ~/.config/herdr/config.toml, merging the [ui] key into that section if you already have one, then reload with herdr server reload-config.
The terminal base theme takes the pane background and the ANSI palette from the host terminal, so pair this with the Ghostty theme above.
# ft-paper for Herdr — a light UI to match the ft-paper terminal theme.
#
# Herdr has no theme files: it only takes a built-in theme name plus token
# overrides. Paste these sections into ~/.config/herdr/config.toml, then run
# `herdr server reload-config` (or press prefix+q).
#
# Pair it with the ft-paper terminal theme, available at
# https://camillehdl.dev/artifacts/ghostty/ft-paper — the "terminal" base theme
# below takes its pane background and ANSI palette from the host terminal.
[theme]
# "terminal" keeps the pane background and ANSI palette of the host terminal.
name = "terminal"
# The overrides below are tuned for the light ft-paper palette, so don't let
# Herdr swap themes with the host's light/dark appearance.
auto_switch = false
[theme.custom]
# The "terminal" base theme only inherits background/foreground and the 16 ANSI
# colors; every other UI token still comes from a dark built-in palette, which is
# why menus, popups and the tab bar are unreadable on ft-paper's paper ground.
# These map Herdr's tokens onto the ft-paper palette.
# Paper surfaces, stacking from the #fff1e5 pane background downwards.
# panel_bg is the tab bar / popup ground, and doubles both as the active tab's
# text color over the accent background and as the sidebar's section rules, so
# it has to stay light but one step deeper than sidebar_bg.
panel_bg = "#efdcca"
sidebar_bg = "#f7e7d8"
surface_dim = "#f7e7d8"
surface0 = "#f2dfce"
surface1 = "#efdcca"
active_row_bg = "#f2dfce"
selection_bg = "#efdcca"
# Slate ink. overlay0/overlay1 are dim *text* (sidebar section labels, hints),
# not separators, so they are darkened versions of the palette's dim foreground
# rather than the muted #b8afa5, which only reaches 1.5:1 on paper.
text = "#262a33"
subtext0 = "#4a4f59"
overlay1 = "#6b6259" # ~4.9:1 on paper
overlay0 = "#7d746b" # ~3.8:1 on paper
# ft.com claret accent, plus status colors dark enough to read on paper.
accent = "#990f3d"
red = "#cc0000"
green = "#00733a"
yellow = "#99521f"
peach = "#bf6626"
blue = "#0f5499"
teal = "#0d7680"
mauve = "#593380"
# Merge this key into your existing [ui] section if you already have one.
[ui]
# Same claret as the terminal cursor, used for status indicators and the sidebar.
accent = "#990f3d"Homebrew
My selection of packages for macOS.
With Homebrew installed, download the file and install its packages:
curl --fail --location \
https://camillehdl.dev/artifacts/homebrew/Brewfile \
--output Brewfile
brew bundle install --file=./Brewfiletap "bramstein/webfonttools"
tap "homebrew/services"
tap "shivammathur/extensions"
tap "shivammathur/php", trusted: true
# Search tool like grep, but optimized for programmers
brew "ack"
# Codec library for encoding and decoding AV1 video streams
brew "aom"
# Bourne-Again SHell, a UNIX command interpreter
brew "bash"
# Programmable completion for Bash 4.2+
brew "bash-completion@2"
# Clone of cat(1) with syntax highlighting and Git integration
brew "bat"
# Secure and free password manager for all of your devices
brew "bitwarden-cli"
# Resource monitor. C++ version and continuation of bashtop and bpytop
brew "btop"
# GNU multiple precision arithmetic library
brew "gmp"
# GNU File, Shell, and Text utilities
brew "coreutils"
# Suite of command-line tools for converting to and working with CSV
brew "csvkit"
# Cross-platform, efficient and practical CSV/TSV toolkit in Golang
brew "csvtk"
# Perl lib for reading and writing EXIF metadata
brew "exiftool"
# Modern, maintained replacement for ls
brew "eza"
# Like neofetch, but much faster because written mostly in C
brew "fastfetch"
# Simple, fast and user-friendly alternative to find
brew "fd"
# OpenType text shaping engine
brew "harfbuzz"
# Framework for layout and rendering of i18n text
brew "pango"
# OCR (Optical Character Recognition) engine
brew "tesseract"
# Play, record, convert, and stream select audio and video codecs
brew "ffmpeg"
# Collection of GNU find, xargs, and locate
brew "findutils"
# Command-line fuzzy finder written in Go
brew "fzf"
# Interpreter for PostScript and PDF
brew "ghostscript"
# Distributed revision control system
brew "git"
# Syntax-highlighting pager for git and diff output
brew "git-delta"
# Git extension for versioning large files
brew "git-lfs"
# GNU Privacy Guard (OpenPGP)
brew "gnupg"
# GNU grep, egrep and fgrep
brew "grep"
# Agent multiplexer that lives in your terminal
brew "herdr"
# Improved top (interactive process viewer)
brew "htop"
# Lightweight and flexible command-line JSON processor
brew "jq"
# Simple terminal UI for git commands
brew "lazygit"
# Curses-based tool for viewing and analyzing log files
brew "lnav"
# Collection of tools that nobody wrote when UNIX was young
brew "moreutils"
# Ambitious Vim-fork focused on extensibility and agility
brew "neovim"
# OpenBSD freely-licensed SSH connectivity tools
brew "openssh"
# 7-Zip (high compression file archiver) implementation
brew "p7zip"
# New zlib (gzip, deflate) compatible compressor
brew "zopfli"
# Parallel gzip
brew "pigz"
# Execute binaries from Python packages in isolated environments
brew "pipx"
# PDF rendering library (based on the xpdf-3.0 code base)
brew "poppler"
# Framework for managing multi-language pre-commit hooks
brew "pre-commit"
# Show ps output as a tree
brew "pstree"
# Monitor data's progress through a pipe
brew "pv"
# Perl-powered file rename script with many helpful built-ins
brew "rename"
# Search tool like grep and The Silver Searcher
brew "ripgrep"
# Readline wrapper: adds readline support to tools that lack it
brew "rlwrap"
# Utility that provides fast incremental file transfer
brew "rsync"
# Terminal multiplexer with VT100/ANSI terminal emulation
brew "screen"
# Add a public key to a remote machine's authorized_keys file
brew "ssh-copy-id"
# Non-interactive SSH password auth
brew "sshpass"
# Simplified and community-driven man pages
brew "tldr"
# Terminal multiplexer
brew "tmux"
# Parser generator tool
brew "tree-sitter-cli"
# Extremely fast Python package installer and resolver, written in Rust
brew "uv"
# Visual Binary Diff
brew "vbindiff"
# Internet file retriever
brew "wget"
# Process YAML, JSON, XML, CSV and properties documents from the CLI
brew "yq"
# Shell extension to navigate your filesystem faster
brew "zoxide"
# General-purpose scripting language
brew "shivammathur/php/php@8.4", link: true, trusted: true
# Terminal emulator that uses platform-native UI and GPU acceleration
cask "ghostty"
# Utility to provide quick look previews for files that aren't natively supported
cask "glance-chamburr"
# Open-source cross-platform alternative to AirDrop
cask "localsend"
# Menu bar manager
cask "thaw"
npm "corepack"