1
Software and Settings
David Young edited this page 2026-10-26 16:01:09 -06:00

Software and Settings

The desktop

GNOME with the Tiling Shell extension, set up as a three-column layout that works especially well on ultrawide monitors. The Tiling Shell icon in the top bar changes the layout. Super + arrow keys move windows between tiles.

The Tailscale GNOME extension shows your tailnet status in the top bar.

Where software comes from

Source Defined in Examples
pacman packages.conf GNOME, Neovim, tmux, Go, Rust, Node, Docker, Tailscale, Element, LibreOffice, Ghostty, kitty, opencode
AUR (via yay) packages.conf Helium browser, Winboat
Flathub install-flatpaks.sh Chrome, Firefox, Brave, Zen, VS Code, VSCodium, Signal, Telegram, Thunderbird, Obsidian, Logseq, OBS, Kdenlive, Inkscape, Zoom, Trayscale, LocalSend, Boxes and more
mise install-mise-ruby-rails.sh Ruby and Rails
pipx packages.conf (PIPX) terrahour
Their own installers claude.sh, sandbox/setup.sh Claude Code, Hermes Agent

update installs anything newly added to these lists, and removes anything listed in remove-packages.conf.

To install more apps yourself, use yay -S <package> or browse https://flathub.org. To suggest something for everyone, open an issue or pull request.

Shell

~/.bashrc sources ~/.local/share/coredesktop/shell/bashrc, which sets up:

  • the starship prompt (your own ~/.config/starship.toml wins if you have one)
  • zoxide: z <part of a path> jumps to a directory you've used before
  • fzf: Ctrl-R searches history, Ctrl-T inserts a file path, Alt-C changes directory
  • eza for ls, ll, la and lt
  • aliases: g (git), lg (lazygit), d (docker), ld (lazydocker), gcm, gcam, gcad, .., ..., ff (fuzzy-find with preview), eff (open the result in your editor)
  • functions:
    • n: open Neovim
    • open: open a file or URL in its default app
    • compress and decompress: make and unpack .tar.gz archives
    • fip, dip and lip: start, stop and list SSH port forwards
    • ga and gd: create and remove git worktrees

Anything you add to ~/.bashrc after the CoreDesktop line overrides it.

Networking

  • mDNS: reach other machines on your LAN as <name>.local, and SSH to this one the same way. If systemd-resolved is enabled, the installer applies a fix so mDNS still works. For the details, see fixmdns.sh and the Arch wiki.
  • Tailscale: installed and running. configure core joins it to your Core's network.
  • Printing: CUPS is enabled.

Firewall

ufw is on. Incoming connections are blocked, except:

  • SSH (22)
  • mDNS (5353/udp)
  • LocalSend (53317)
  • anything arriving over Tailscale

ufw-docker is installed too, because otherwise ports published by Docker containers get around ufw.

sudo ufw status                          # show the rules
sudo ufw allow <port>/tcp                # open a port, e.g. for a dev server
sudo ufw-docker allow <container> <port> # let a container's port through

Docker

Docker is installed and running, and you're in the docker group, which takes effect from your next login.

GPU drivers

The installer adds the Vulkan driver for Intel and AMD GPUs. For NVIDIA GPUs, if archinstall's proprietary driver wasn't chosen, it installs NVIDIA's driver:

  • the open kernel modules for GTX 16xx / RTX 20xx and newer
  • the 580xx legacy driver for older cards, back to the GTX 900 series

System defaults

  • SSH connections notice a dropped link within a minute instead of hanging. Override this per host in ~/.ssh/config.
  • Logins allow 10 wrong passwords before locking the account for 2 minutes. Arch's default is 3 tries, then 10 minutes.
  • Shutdown waits at most 10 seconds for a service that won't stop, instead of 90.
  • If memory runs out, systemd-oomd closes the app causing it instead of freezing the whole desktop.
  • Boot doesn't wait for the network.
  • Commands run over SSH (ssh <machine> <command>) can find tools in ~/.local/bin and mise.

Backups

Migrate is installed as migrate, and borg and Déjà Dup are available too.