Improves productivity and usability for both emacs and vi mode users. 🤖 Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai> |
||
|---|---|---|
| .config | ||
| .github | ||
| .local/bin | ||
| .vscode | ||
| modules | ||
| .zshrc | ||
| AGENTS.md | ||
| README.md | ||
| setup.sh | ||
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
- Clone this repository:
git clone https://github.com/yourusername/dotfiles.git ~/git/dotfiles cd ~/git/dotfiles - Run the setup script:
./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:
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 (will be installed automatically if missing)
- For TTY keymap:
kbdpackage (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