Skip to content

Repository files navigation

Dotfiles

This is a collection of configurations and customizations I've hoarded, throughout the years, in order to tweak my various desktops into supporting my preferred workflows.

Information

Rice Showcase

  • Operating System is Arch Linux;
  • Window Management is handled by Hyprland;
  • Top & Bottom bars are built with Polybar;
  • Widgets are built with Eww;
  • Notifications are provided by Wired;
  • Window decoration and animations are from Picom;
  • Wallpapers are by the talented Byrotek;
  • Application Launcher is rofi;
  • Code editing using NeoVim.

Installation

Configuration is done through symlinks and relative paths.

$ git clone --recurse-submodules git@github.com:lukelex/dotfiles.git
$ cd dotfiles && ./linux/install/all

For a headless homelab server, run ./linux/install/all --server. This installs terminal tooling, OpenSSH, and Docker without an AUR helper, GUI packages, display services, desktop configuration, or personal Git settings. Profile packages, groups, and services are defined in linux/packages.yaml and parsed by the bundled static yq binary. The common section applies to every profile; profile sections contain only their additions. Package values list the Unix groups required by that package. Packages can also declare repository-to-target config links, such as linux/config/nvim:$XDG_CONFIG_HOME/nvim. Desktop install options live under profiles.desktop.options. Each option has prompt, default, and packages fields; the installer discovers every option at runtime and asks whether to install its package set.

Run ./linux/install/all --dry-run to preview every action without touching the system. The config stage skips links that would overwrite existing files; pass --replace (e.g. ./linux/install/configs --replace) to overwrite them.

Run ./linux/install/sync --server (or --desktop) to reconcile a profile. Each package, group, service, and config-link stage requires confirmation. Only resources previously recorded under $XDG_STATE_HOME/dotfiles/install are eligible for removal.

Run ./linux/install/validate-packages to verify every installable manifest package is available from the configured Arch repositories or AUR. Repository packages use the local pacman sync databases; AUR candidates are checked with batched AUR RPC requests.

About

My Personal Linux Environment Configurations

Topics

Resources

Stars

10 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages