Skip to content
lukelexPublic

About

My Personal Linux Environment Configurations

Topics

Resources

Stars

10 stars

Watchers

1 watching

Forks

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.

Webcam reactions

Desktop syncs install checksum-pinned OpenEffects 0.1.4 native packages (x86_64) before dotpkg links its settings and enables its user service on default.target. The GTK preview dependency is declared in the manifest. Reactions are enabled, the physical camera is autodetected, and capture/effects processing stops when no application consumes the virtual camera. OpenEffects is managed by pacman, not dotpkg's package-clean stage, until an upstream package origin is available.

To migrate an existing install, review your local manifest before running:

./linux/install/sync --refresh-manifest --replace

Refreshing backs up the local manifest; --replace can replace conflicting config paths across the desktop profile. Chrome is the shared default browser; its managed chrome-flags.conf enables PipeWire camera support. Fully quit and reopen Chrome after applying it, then select OpenEffects Virtual Camera in your calling app.

Microsoft Edge is not installed. The archqms host overlay additionally links its flags file for an independently installed Edge. On that machine use ./linux/install/sync --host archqms --refresh-manifest --replace and fully quit and reopen Edge after applying it.

About

My Personal Linux Environment Configurations

Topics

Resources

Stars

10 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages