A highly modular, robust, and fully automated dotfiles deployment for Arch Linux (X11). This project transforms a base Arch Linux installation into a fully functional, aesthetically pleasing, and highly productive desktop environment with just one script.
- Bulletproof Installer: Automated deployment script (
install.sh) with safe backup mechanisms,sudokeep-alive, strict path resolution, and advanced flags (--dry-runand--linkfor developers). - Dynamic Theming Engine: Built-in Python script (
theme_builder.py) usingpywalto automatically generate system-wide color schemes (Polybar, Rofi, Dunst, i3) instantly from any wallpaper. Includes static themes (Pro Dark) out of the box. - True Multi-Monitor Support: Polybar automatically detects and scales across all connected displays seamlessly.
- Instant Keybinding Cheatsheet: Never forget a shortcut. Press
Mod + F1to instantly parse and view all your active i3 keybindings via an elegant Rofi menu. - Blazing Fast Terminal Environment: Pre-configured
ZshwithStarshipprompt (async Git fetching enabled) and dynamicFastfetchpresets. - Custom Rofi Tooling: Specialized Rofi menus for:
- Network Management (
nmcliGUI) - Power Menu
- Theme / Wallpaper Switcher
- Dashboard
- Network Management (
- First Boot Greeter: Interactive setup upon first login to configure default applications like your web browser.
Before running the installer, ensure you have:
- A fresh or existing Arch Linux installation (X11 environment).
- An active internet connection.
- A user account with
sudoprivileges.
Clone the repository and run the installation script. The script will automatically install necessary packages (AUR included via yay), backup your existing dotfiles, and deploy the new configurations.
git clone https://github.com/adrenaline404/arch-i3wm-x11.git
cd arch-i3wm-x11
./install.sh./install.sh --dry-run: Simulates the installation process without making any actual changes to your system or installing packages. Perfect for reviewing what the script does../install.sh --link: Usessymlinksinstead of copying files. Ideal if you plan to modify the dotfiles and want the changes reflected immediately in your cloned Git repository.
Once installed and rebooted, log into the i3 session. Your main modifier key ($mod) is typically the Windows/Super key.
**Press
$mod + F1**at any time to open the Rofi Cheatsheet. It dynamically reads youri3/configand displays all available shortcuts!
| Keybinding | Action |
|---|---|
$mod + Enter |
Open Terminal (Kitty) |
$mod + d |
Open App Launcher (Rofi) |
$mod + q |
Close focused window |
$mod + [1-9] |
Switch to workspace 1-9 |
$mod + Shift + [1-9] |
Move focused window to workspace 1-9 |
| Keybinding | Action |
|---|---|
$mod + Shift + e |
Open Power Menu |
$mod + Shift + n |
Open Network Manager |
$mod + t |
Open Theme (pro-dark, custom pywall) |
$mod + Shift + w |
Wallpaper Switcher |
$mod + Shift + d |
Open Rofi Dashboard |
$mod + Shift + x |
Lockscreen |
You can change your system's entire look with a few clicks.
- Open the Gallery: Run the Wallpaper Manager via Rofi.
- Import or Select: Choose an existing image or import a new one.
- Dynamic Generation: Upon selecting an image, you will be prompted to either "Set Wallpaper Only" or "Generate Dynamic Theme (Pywal)".
- Selecting Pywal will instantly re-color your Polybar, Rofi, Dunst notifications, and i3 borders to match your wallpaper!
A lightweight, API-free weather module integrated into Polybar, utilizing wttr.in with smart caching and dynamic GUI interactions.
Key Features:
API-Free & Efficient: Retrieves data directly from wttr.in—no API keys or registration required.
Smart RAM Caching: Stores weather data in /tmp for 15 minutes to minimize network requests, ensure instant bar reloads, and prevent server rate-limiting.
Dynamic GUI Setup: Prompts for a default city via zenity during first_setup.sh. Unconfigured states elegantly fallback to a "Set Location" module prompt.
Interactive Mouse Bindings:
Left-Click: Displays a detailed forecast tooltip (feels-like temperature, wind, humidity, moon phase) via dunst.
Right-Click: Opens a rofi prompt to update the target city on-the-fly without manually editing configuration files.
Dependencies: curl, rofi, libnotify, zenity (handled automatically by the installer).
A quick overview of how the repository is organized:
ARCH-I3WM-X11/
├── configs/ # Base configurations (polybar, rofi, dunst, kitty, picom, fastfetch)
├── scripts/ # The brain behind the rice (pywal generator, network, battery, etc.)
├── themes/ # Static theme bases (Pro-Dark) and Pywal targets
├── install.sh # The robust deployment script
└── .zshrc # Custom Zsh configuration
Contributions, issues, and feature requests are welcome! Feel free to check issues page if you want to contribute.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'feat: Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Built by adrenaline404.