Includes modular setup, device profile support, and documentation. 🤖 Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai>
66 lines
3.3 KiB
Markdown
66 lines
3.3 KiB
Markdown
# 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
|