# Arch Linux Dotfiles & Hyprland Setup This repository manages your personal dotfiles and a modular, Wayland-ready desktop environment for Arch Linux using `paru`. ## Features - Modular setup: each aspect (packages, symlinks, shell, Neovim, Hyprland, sound, browsers, devtools, etc.) is handled by its own script in `modules/`. - All dotfiles and app configs are version-controlled and symlinked to your home directory. - Out-of-the-box integration for Hyprland, Waybar, Rofi, Mako, Alacritty, wlogout, and more. - Modern sound stack (PipeWire, WirePlumber, pavucontrol, etc.). - Volume notifications: see current volume as a Mako popup at the bottom center when changed. - Multi-monitor workspace rules: workspace 1 always on laptop, others on external (DP-1) if connected; all on laptop if standalone. - Brave browser always launches on workspace 10 and autostarts with Hyprland. - TTY/console uses German nodeadkeys layout (`de-latin1-nodeadkeys`). - Devtools module installs git, Python, Node.js, Docker, VS Code, opencode-bin, and more. - Easily extensible: add new modules or configs as needed. ## Setup 1. Clone this repository: ```sh git clone https://github.com/yourusername/dotfiles.git ~/git/dotfiles cd ~/git/dotfiles ``` 2. Run the setup script: ```sh ./setup.sh ``` When you run `setup.sh`, you will be prompted to select your device profile (`laptop` or `desktop`). This ensures that device-specific configs (e.g., battery, backlight, touchpad, monitor layout) are applied correctly for your hardware. You can also set the environment variable `DOTFILES_DEVICE` to skip the prompt: ```sh DOTFILES_DEVICE=desktop ./setup.sh ``` The script will install all required packages and symlink dotfiles and configs (including everything in `.config/`) to your home directory, using the correct device-specific fragments for Hyprland and Waybar. ## Customization - Add new dotfiles to the repo root (e.g., `.zshrc`, `.tmux.conf`). - Place app configs in `.config/` (e.g., `.config/hypr/hyprland.conf`). - Add or edit modules in the `modules/` directory to automate more setup steps. - To add custom scripts, place them in `.local/bin/` in the repo; they will be symlinked to `~/.local/bin/`. - To add browsers, edit `modules/06-browsers.sh` (Chrome, Firefox, Brave supported out of the box). - To add devtools, edit `modules/50-devtools.sh` (includes VS Code, opencode-bin, lazygit, etc.). ## Requirements - Arch Linux - [paru](https://github.com/Morganamilo/paru) (will be installed automatically if missing) - For TTY keymap: `kbd` package (should be present on most systems) ## Notable Integrations & Tips - **Browsers:** Chrome, Firefox, and Brave are installed via the browser module. Brave autostarts and is always on workspace 10. - **Devtools:** Includes VS Code (`visual-studio-code-bin`), opencode-bin, lazygit, and more. - **Volume OSD:** Volume changes show a notification at the bottom center of the screen (Mako). - **Multi-monitor:** Workspace 1 is always on the laptop display, others on DP-1 if connected. - **TTY Keymap:** Console uses German nodeadkeys layout for all users (system-wide via `localectl`). - **No official Teams/Outlook client:** Use the web app or AUR wrappers for best compatibility. - **TortoiseGit alternative:** Use GitKraken, Sublime Merge, SmartGit, or lazygit for graphical Git workflows. ## License MIT