AetherShift is my personal Arch Linux and Hyprland environment.
It combines adaptive wallpaper-based colours, a custom Quickshell desktop shell, glass Rofi menus, media controls, gaming tools, system utilities and workflow automation into one cohesive daily-driver setup.
Change the wallpaper.
Shift the atmosphere.
Keep the workflow.
Preview • Features • Components • Installation • Keybinds • Credits
AetherShift began as a personal fork inspired by Vroomies by maxchennn.
It has since grown into a larger daily-driver environment with its own:
- Wallpaper-driven theme system
- Custom scripts and utilities
- Glass application menus
- Gaming and performance controls
- Screenshot and recording workflow
- Snapshot and restoration tools
- Maintenance and repair systems
- Productivity helpers
- Audio-device shortcuts
- Personal workflow integrations
This repository contains the configuration files behind that environment.
It is designed primarily for my own system, but it can also be used as a reference, starting point or source of individual components for another Hyprland setup.
AetherShift is built around three ideas.
The visual identity should come from the wallpaper rather than from one permanently hardcoded palette.
Every menu, panel and animation should serve a real purpose instead of existing only for screenshots.
Experimenting with a rice should not mean losing a working configuration. Repair scripts, backups and snapshots are treated as part of the desktop itself.
┌─────────────────┐
│ Wallpaper │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Matugen │
│ Colour analysis │
└────────┬────────┘
│
├──────────────┬──────────────┬──────────────┐
▼ ▼ ▼ ▼
Quickshell Rofi Kitty Hyprland
panels and UI glass menus terminal theme borders
Wallpapers are stored in:
~/Pictures/visionsSelecting a wallpaper can regenerate colours for:
- Quickshell
- Rofi
- Kitty
- Hyprland borders and effects
- Wallpaper menus
- Supporting scripts and widgets
Main theme controls:
SUPER + Shift + A Open wallpaper and theme picker
SUPER + Ctrl + A Apply a random adaptive theme
An optional boot-shuffle script can also apply a random wallpaper and colour scheme when Hyprland starts.
- Wallpaper-derived colour palettes
- Coordinated colours across desktop components
- Animated wallpaper transitions
- Random theme switching
- Generated glass-menu styling
- Vertical workspace bar
- Workspace indicators
- Adaptive foreground and accent colours
- MPRIS media integration
- Wallpaper-picker integration
- Compact music panel
- Desktop information widgets
- Central category-based action menu
- Adaptive borders and highlights
- Application launcher
- Theme and wallpaper controls
- System-management actions
- Audio and media shortcuts
- Screenshot and recording tools
- Gaming controls
- Maintenance and backup actions
- Power controls
- One-key gaming mode
- Dedicated gaming profile
- Reduced visual effects while gaming
- MangoHud support
- GameMode support
- Performance-oriented workspace controls
- CS2 troubleshooting profile
- Screenshot editor workflow
- Screen recording
- Drop-down terminal
- Floating system monitor
- Information centre
- Welcome and system-status popup
- Notes and todo menu
- Focus timer
- Caffeine mode
- Display blanking
- Power menu
- Rice repair script
- Snapshot and restore menu
- Configuration backups
- Package update shortcuts
- Pacman cache maintenance
- Orphan-package checks
- Journal cleanup
- Rice health checks
- GitHub dotfiles export
| Component | Role |
|---|---|
| Hyprland | Wayland compositor and window management |
| Quickshell | Main desktop shell, panels and widgets |
| Matugen | Wallpaper-based colour generation |
| Rofi | Glass application and action menus |
| Kitty | Terminal emulator |
| SwayNC | Notifications and notification centre |
| awww | Wallpaper daemon and transitions |
| PipeWire | Audio routing |
| Playerctl | MPRIS media control |
| Cava | Audio visualisation |
| MangoHud | Gaming performance overlay |
| GameMode | Gaming performance integration |
| Grim | Wayland screenshots |
| Slurp | Region selection |
| Swappy | Screenshot editing |
| wf-recorder | Screen recording |
| btop | System monitoring |
| Fastfetch | System information |
aethershift-hyprland/
├── .config/
│ ├── MangoHud/ # Gaming overlay configuration
│ ├── cava/ # Audio visualiser
│ ├── fastfetch/ # System-information layout
│ ├── hypr/ # Hyprland configuration and scripts
│ ├── kitty/ # Terminal configuration
│ ├── matugen/ # Adaptive colour templates
│ ├── quickshell/ # Desktop shell and QML components
│ ├── rofi/ # Launchers and glass menus
│ └── swaync/ # Notification styling
├── .gitignore
├── README.md
└── SYSTEM-INFO.txt
Important
AetherShift is a personal configuration repository, not a universal Hyprland installer.
The configuration contains assumptions based on my own setup, including:
- Arch Linux
- Hyprland
- PipeWire
- NetworkManager
- NVIDIA graphics
- Specific monitor names
- Specific audio-device names
- Personal directory paths
- My preferred applications and keybinds
You should read the configuration and installation steps before copying anything.
At minimum, expect to adjust:
- Monitor names
- Monitor resolutions and refresh rates
- Audio-device names
- Wallpaper paths
- GPU-related settings
- Keyboard layout
- Default applications
- User-specific paths
- Quickshell monitor targeting
- Arch Linux or an Arch-based distribution
- A working Hyprland installation
- NetworkManager
- PipeWire and WirePlumber
- A regular non-root user
- An AUR helper such as
yay
AetherShift expects a Nerd Font, particularly JetBrains Mono Nerd Font.
sudo pacman -S --needed \
ttf-jetbrains-mono-nerd \
noto-fonts \
noto-fonts-emojiBroken or missing icons usually indicate that the expected font is not installed.
sudo pacman -S --needed \
hyprland \
xdg-desktop-portal \
xdg-desktop-portal-hyprland \
xdg-desktop-portal-gtk \
pipewire \
pipewire-pulse \
wireplumber \
networkmanager \
kitty \
dolphin \
firefox \
rofi-wayland \
swaync \
swayidle \
grim \
slurp \
swappy \
wl-clipboard \
cliphist \
hyprpicker \
wf-recorder \
playerctl \
pamixer \
pavucontrol \
bluez \
bluez-utils \
blueman \
flatpak \
btop \
fastfetch \
gamemode \
mangohud \
vulkan-tools \
steam \
git \
rsync \
imagemagick \
curl \
libnotify \
pacman-contribSome packages may vary depending on your enabled repositories.
Using yay:
yay -S --needed \
quickshell-git \
matugen-bin \
awww-gitAUR package names can change over time. Search the AUR when one of the listed packages is unavailable.
cd ~
git clone https://github.com/Aetherelic/aethershift-hyprland.git
cd aethershift-hyprlandBACKUP_DIR="$HOME/.config-backups/aethershift-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"
for directory in \
hypr \
quickshell \
rofi \
kitty \
matugen \
swaync \
fastfetch \
MangoHud \
cava
do
if [ -e "$HOME/.config/$directory" ]; then
cp -a "$HOME/.config/$directory" "$BACKUP_DIR/"
fi
doneThe backup will be stored under:
~/.config-backups/mkdir -p ~/.config
rsync -a .config/ ~/.config/Make the included scripts executable:
find ~/.config/hypr/scripts \
-type f \
\( -name '*.sh' -o -name '*.py' \) \
-exec chmod +x {} +
chmod +x \
~/.config/quickshell/components/wall/wall.sh \
2>/dev/null || truemkdir -p \
~/Pictures/visions \
~/Pictures/Screenshots \
~/Videos/Recordings \
~/Documents/AetherelicPlace your wallpapers inside:
~/Pictures/visionsHigh-resolution wallpapers are strongly recommended because they become the visual foundation of the whole desktop.
Replace YOUR_WALLPAPER.png with an existing file:
ln -sf \
"$HOME/Pictures/visions/YOUR_WALLPAPER.png" \
"$HOME/.config/hypr/current_wallpaper"~/.config/hypr/scripts/generate-rofi-glass-theme.py \
2>/dev/null || true
~/.config/hypr/scripts/generate-rofi-theme.py \
2>/dev/null || true
~/.config/hypr/scripts/generate-hypr-theme.py \
2>/dev/null || true
~/.config/hypr/scripts/generate-kitty-theme.py \
2>/dev/null || trueApply the selected wallpaper through the Quickshell wallpaper script:
bash \
~/.config/quickshell/components/wall/wall.sh \
~/.config/hypr/current_wallpaperEnable Bluetooth when required:
sudo systemctl enable --now bluetooth.serviceStart the user audio services:
systemctl --user enable --now \
pipewire \
pipewire-pulse \
wireplumberRestart the desktop portals:
systemctl --user restart \
xdg-desktop-portal \
xdg-desktop-portal-hyprland \
xdg-desktop-portal-gtkhyprctl reload
hyprctl configerrorsNo output from hyprctl configerrors means Hyprland did not detect a configuration error.
Find your monitor names:
hyprctl monitorsThen inspect the Hyprland configuration:
nano ~/.config/hypr/hyprland.confThe original setup may contain references to a monitor such as:
DP-2
Your outputs may instead be named something like:
DP-1
HDMI-A-1
eDP-1
Also inspect Quickshell files that may contain monitor targeting:
~/.config/quickshell/components/Bar/bar.qml
~/.config/quickshell/components/MusicPanel.qml
The included helper scripts were designed around:
Output: Astro A50 Game
Input: Fifine Microphone
Find your own device names with:
wpctl statusThen edit:
~/.config/hypr/scripts/audio-game-output.sh
~/.config/hypr/scripts/audio-fifine-input.sh
Review the Hyprland configuration and action-menu scripts for references to applications such as:
- Kitty
- Dolphin
- Firefox
- Vesktop
- Steam
- btop
Replace them with your preferred applications where necessary.
| Keybind | Action |
|---|---|
SUPER + F1 |
Open the main action menu |
SUPER + Enter |
Open terminal |
SUPER + Shift + Enter |
Open file manager |
SUPER + Q |
Close active window |
SUPER + F |
Toggle fullscreen |
SUPER + Shift + F |
Open Firefox |
SUPER + Shift + A |
Open wallpaper and theme picker |
SUPER + Ctrl + A |
Apply a random adaptive theme |
SUPER + F12 |
Toggle gaming mode |
SUPER + G |
Enter gaming profile |
SUPER + Shift + G |
Leave gaming profile |
Print |
Capture an area and open the editor |
SUPER + Print |
Capture the full screen |
SUPER + I |
Open information centre |
SUPER + W |
Open welcome and system-status popup |
SUPER + Shift + M |
Open maintenance menu |
SUPER + Shift + B |
Open snapshot and restore menu |
SUPER + Shift + R |
Repair and refresh the rice |
SUPER + K |
Open notes and todo menu |
SUPER + Shift + K |
Open focus timer |
SUPER + Shift + C |
Toggle caffeine mode |
SUPER + Ctrl + Z |
Turn displays off |
SUPER + Shift + L |
Open power menu |
SUPER + Ctrl + B |
Export keybind cheat sheet |
SUPER + Ctrl + D |
Export GitHub dotfiles |
A full keybind reference can be exported to:
~/Documents/Aetherelic/AETHERELIC-KEYBINDS.mdOpen the action menu with:
SUPER + F1
The menu is divided into functional categories:
Apps
Rice / Theme
System
Audio / Media
Screenshots / Recording
Gaming
Notes / Info
Maintenance / Backup
Power
Its colours, borders and highlights are generated from the current wallpaper.
Toggle gaming mode with:
SUPER + F12
Gaming mode attempts to reduce desktop overhead by disabling or reducing effects such as:
- Blur
- Transparency
- Animations
- Non-essential visual processes
The dedicated gaming profile can be controlled with:
SUPER + G Enter gaming profile
SUPER + Shift + G Leave gaming profile
Basic Steam launch option:
gamemoderun %command%
With MangoHud:
mangohud gamemoderun %command%
Test without MangoHud when a game has problems with Vulkan overlays.
Print
SUPER + Print
The workflow uses:
grim → slurp → swappy → wl-copy
Screenshots are stored in:
~/Pictures/ScreenshotsScreen recording uses wf-recorder and can be accessed through:
SUPER + F1
└── Screenshots / Recording
Recordings are stored in:
~/Videos/RecordingsAetherShift includes a repair script for refreshing the main desktop components.
Run it with:
SUPER + Shift + R
Or manually:
bash ~/.config/hypr/scripts/repair-rice.shThe repair process can refresh:
- Quickshell
- Wallpaper daemon
- SwayNC
- Adaptive themes
- Audio defaults
- Hyprland configuration
Open the snapshot and restore menu with:
SUPER + Shift + B
Snapshots are stored in:
~/Aetherelic-Rice-SnapshotsThis allows experimental changes to be reverted without rebuilding the entire environment manually.
Open the maintenance menu with:
SUPER + Shift + M
Available actions include:
- Check for package updates
- Update the system
- Clean the Pacman cache
- List orphan packages
- Remove orphan packages
- Clean journal logs
- Run a rice health check
Review every maintenance action before confirming it.
SUPER + K
SUPER + Shift + K
Personal productivity files are stored in:
~/Documents/AetherelicSUPER + key above Tab
SUPER + Shift + key above Tab
The current configuration uses display blanking rather than an automatic lock workflow.
SUPER + Shift + C Toggle caffeine mode
SUPER + Ctrl + Z Turn displays off
Warning
This configuration may not automatically lock your session.
Anyone using AetherShift on a shared or portable computer should review the idle configuration and add a secure lock screen appropriate for their system.
hyprctl configerrorsInspect the file and line reported by Hyprland.
pkill quickshell 2>/dev/null || true
QML_XHR_ALLOW_FILE_READ=1 \
quickshell --path ~/.config/quickshell/shell.qmlpkill awww-daemon 2>/dev/null || true
awww-daemon &Then apply the current wallpaper:
awww img \
~/.config/hypr/current_wallpaper \
--transition-type fade \
--transition-duration 1.2 \
--resize crop~/.config/hypr/scripts/generate-rofi-glass-theme.py~/.config/hypr/scripts/generate-kitty-theme.pyOpen a new Kitty window after regenerating the theme.
wpctl statusSet the correct device manually:
wpctl set-default DEVICE_IDThen update the included audio helper scripts.
Restart the desktop portals:
systemctl --user restart \
xdg-desktop-portal \
xdg-desktop-portal-hyprland \
xdg-desktop-portal-gtkAetherShift uses Vesktop as the recommended Discord client for this workflow:
flatpak install flathub dev.vencord.VesktopSome parts of the repository were written specifically for my hardware and workflow.
These include references to:
- Astro A50 audio output
- Fifine microphone input
- NVIDIA graphics
DP-2monitor targeting- The
aetherelicusername - Personal document folders
- Personal wallpaper locations
These values are not intended to work unchanged on every computer.
AetherShift is based on and heavily inspired by Vroomies by maxchennn.
The original project established much of the visual direction, Quickshell foundation and music-player concept that inspired this environment.
Original showcase:
Blame It on Your Love feat. Vroomies
AetherShift adds my own:
- Adaptive theme scripts
- Glass action menus
- Gaming profiles
- Repair utilities
- Snapshot system
- Maintenance tools
- Recording workflow
- Information popups
- Productivity tools
- Daily-driver customisation
Credit remains with the original authors for their work and inspiration.
AetherShift is provided as a personal dotfiles repository.
It may require substantial editing before it is suitable for another system.
Installing it may overwrite existing configuration files. Always create and verify a backup before copying the repository into ~/.config.
Use the project as:
- A reference
- A personal fork
- A source of individual components
- A foundation for your own Hyprland environment
Do not treat it as a guaranteed universal installation script.


