Skip to content

muhbrohim/archfiles

Repository files navigation

archfiles

Personal Arch Linux dotfiles -- Hyprland + Wayland + Zsh + Neovim + WezTerm.

Sibling repo to winfiles; same philosophy (one bootstrap script, declarative package list, symlinked configs), rewritten for Arch.

Stack

Area Choice
Shell Zsh + Oh My Zsh
Prompt Oh My Posh (themes/pure.omp.json)
Terminal WezTerm (mux server, Alt+a leader)
Editor Neovim (LazyVim layout)
Window manager Hyprland (Wayland) + Hyprlock + Hypridle
Bar / launcher Waybar / Walker
Notifications Mako
Login manager greetd + tuigreet
Boot splash Plymouth (opt-in)
Audio PipeWire + WirePlumber
Browser Firefox
VPN openconnect + networkmanager-openconnect
AUR helper paru
Package list pacman.txt, aur.txt, snapshot pkglist.txt

Repository layout

Path Purpose
zsh/ .zshenv, .zshrc, aliases.zsh, functions/
themes/ Oh My Posh theme(s)
nvim/ Neovim config (LazyVim-style)
wezterm/ WezTerm config
ideavim/ .ideavimrc for JetBrains IDEs
vscode/ VS Code settings/keybindings/extensions
git/ .gitconfig (user identity is not set)
hypr/ Hyprland + Hyprlock + Hypridle configs
waybar/ Waybar config + theme
walker/ Walker launcher config + theme
mako/ Mako notification config
greetd/ config.toml sample for greetd
plymouth/ Splash setup notes
systemd/ User unit for the WezTerm mux server
install.sh Bootstrap
uninstall.sh Remove symlinks (--apply), opt. packages (--apps)
symlinks.sh Shared symlink table
pacman.txt Official-repo package list
aur.txt AUR package list
pkglist.txt Snapshot, rewritten on every install.sh run

Prerequisites

  • Arch Linux (/etc/arch-release must exist).
  • A normal user with sudo rights.
  • Internet.

Install

git clone git@github.com:muhbrohim/archfiles ~/archfiles
cd ~/archfiles
./install.sh

The bootstrap is idempotent and safe to re-run.

What install.sh does

  1. Pacman system update.
  2. Ensure base-devel + git.
  3. Bootstrap paru if missing.
  4. pacman -S --needed every line in pacman.txt.
  5. paru -S --needed every line in aur.txt.
  6. Install Oh My Zsh non-interactively + three custom plugins.
  7. Optionally chsh -s zsh.
  8. Enable NetworkManager + bluetooth (system), pipewire (user).
  9. Optionally drop greetd/config.toml.sample to /etc/greetd/config.toml and enable greetd.
  10. Symlink every entry in symlinks.sh.
  11. Install VS Code extensions if code is on PATH.
  12. Smoke-test the main commands.
  13. Write pkglist.txt via pacman -Qqe.

Post-install

  1. Set git identity:
    git config --global user.email "you@example.com"
    git config --global user.name  "Your Name"
  2. Edit hypr/hyprland.conf; replace MONITOR_PRIMARY / MONITOR_SECONDARY with the real connector names from hyprctl monitors.
  3. Reboot and choose the Hyprland (uwsm) session in greetd.
  4. Optional: enable the WezTerm mux user unit (systemctl --user enable --now ...).
  5. Optional: Plymouth splash -- see plymouth/README.md.

Privacy

This is a public repo. Anything machine-, employer-, or client-specific lives in files matching **/*.local (gitignored). .zshrc sources ~/.config/zsh/local.zsh and ~/.zshrc.local if they exist; put private quick links, aliases, or proxy URLs there.

The committed .gitconfig deliberately leaves [user] commented out so cloning never sets a misleading author. install.sh does not write your identity for you.

If you find a leak, please open an issue.

Uninstall

./uninstall.sh              # dry run
./uninstall.sh --apply      # remove symlinks
./uninstall.sh --apply --apps  # also remove pacman + AUR packages

~/.oh-my-zsh, fonts, the repo itself, and enabled services are never touched.

License

MIT. See LICENSE.

About

Dotfiles for arch linux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors