Skip to content

Repository files navigation

Dotfiles

A considered Linux desktop, built around the way I work.

Arch Linux · Hyprland / i3 · Quickshell · Neovim

Desktop setup · Screenshots · Install · Repository guide


Empty i3 desktop with the Quickshell calendar and weather panel open

Desktop

Component Setup
Window managers Hyprland on Wayland · i3 on X11
Desktop shell Quickshell bar, panels, notifications, and OSDs
Launchers Fuzzel on Hyprland · rofi on i3
Compositor Hyprland effects · Picom for i3
Editor Neovim with lazy.nvim

The configs favor a quiet status surface, quick keyboard workflows, and panels that reveal detail only when needed. Shared helpers keep the Hyprland and i3 setups familiar across Wayland and X11.

Screenshots

Full desktop with the Quickshell Control Center open

Quickshell · Control Center

Quickshell calendar with weather forecast

Quickshell · Calendar and weather

Fuzzel themes

Three launcher palettes, including a light theme. These are design previews of the launcher configuration.

Slate Fuzzel theme preview

Slate · default

Graphite Fuzzel theme preview

Graphite · compact

Porcelain light Fuzzel theme preview

Porcelain · light

Install

The desktop configuration expects the repository at $HOME/dotfiles on Arch Linux.

git clone --recurse-submodules git@github.com:lukelex/dotfiles.git "$HOME/dotfiles"
cd "$HOME/dotfiles"
./linux/install/sync

For a headless server, use ./linux/install/all --server. For a specific machine, pass a committed host overlay, for example:

./linux/install/sync --host <name>

Repository guide

How installation works

sync reconciles packages, groups, config links, and services from the selected profile using the pinned dotpkg binary. On first use, it seeds $XDG_CONFIG_HOME/dotpkg/package.yaml from linux/packages.yaml; dotpkg stores its state beside that manifest.

Preview the reconciliation with:

./linux/install/sync --dry-run

The first run can still bootstrap yay and initialize dotpkg's local manifest and state. Existing installs keep their local manifest; use --refresh-manifest to adopt the repository version (a backup is saved beside it). Config conflicts are preserved unless --replace is passed. Use ./linux/install/all to include system setup, post-install steps, and verification, or ./linux/install/verify to check an existing setup.

For package and resource maintenance, see dotpkg --help. dotpkg clean only removes stale managed packages; dotpkg recover handles an interrupted transaction.

About

My Personal Linux Environment Configurations

Topics

Resources

Stars

10 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages