Cybersnake223
Hypr
Shell

Vicious Viper Dotfiles

Last updated Jul 9, 2026
454
Stars
13
Forks
0
Issues
0
Stars/day
Attention Score
84
Language breakdown
No language data available.
โ–ธ Files click to expand
README

Vicious Viper Logo



Vicious Viper

A wallpaper-synced Hyprland rice for Arch Linux.
Material You theming ยท Automated backups ยท Modular installer ยท Clean daily workflow.


๐Ÿ–ผ Preview ยท โœจ Features ยท ๐Ÿงฉ Stack ยท ๐Ÿ“ฆ Prerequisites ยท โšก Installation ยท ๐Ÿ“‚ Layout ยท ๐Ÿšฉ Flags ยท โŒจ๏ธ Keybinds ยท ๐ŸŽจ Theming ยท ๐ŸŒ Zen ยท ๐Ÿ”„ Updating ยท ๐Ÿ”ง Troubleshoot



๐Ÿ–ผ Preview



โœจ Features

| ๐Ÿ”ฎ | ๐Ÿ’พ | ๐ŸŽ› | ๐Ÿช„ | ๐Ÿš | | :-------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------: | | Material You theming โ€” Matugen derives a full palette from your wallpaper and applies it to every component | Safe installer โ€” every file that would be overwritten is backed up to a timestamped directory first | Modular installs โ€” choose exactly which modules to deploy: configs, scripts, icons, themes, fonts, dotfiles | Dry-run mode โ€” preview every single action without touching a single file | Shell-aware PATH patching โ€” detects Zsh, Bash, Fish, Ksh, and falls back to POSIX .profile |

| โ†ฉ๏ธ | ๐Ÿ”ค | ๐ŸŒ | ๐Ÿ“œ | ๐ŸŽจ | | :-------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------: | | One-command undo โ€” restore all your originals with ./install.sh --uninstall | Bundled fonts โ€” JetBrains Mono Nerd, Font Awesome, Icomoon Feather, Nerd Symbols โ€” installed and cached | Zen Browser CSS โ€” custom userChrome.css and userContent.css tuned to match the Viper aesthetic | 50+ custom scripts โ€” automatically marked executable and patched into PATH | Live theming โ€” change wallpaper, run matugen, everything recolors instantly |



๐Ÿงฉ Stack

| Role | Tool | | :------------------: | :-------------------------------------------------------------------------------------------------- | | ๐Ÿ— Base | Arch Linux | | ๐ŸชŸ Compositor | Hyprland | | ๐Ÿ“Š Bar | Waybar | | ๐Ÿ–ฅ Terminal | Kitty + Foot | | ๐Ÿš Shell | Zsh + Starship | | ๐Ÿ”” Notifications | Mako | | ๐Ÿš€ Launcher | Rofi Wayland fork | | ๐ŸŒ Browser | Zen Browser | | ๐Ÿ”’ Locker | Hyprlock | | ๐Ÿ“ Files | Nautilus + Yazi | | ๐Ÿ“ Editor | Neovim | | ๐Ÿ–ผ Wallpaper | awww | | ๐ŸŽจ Theming | Matugen | | ๐Ÿ“ก System Info | Fastfetch | | ๐ŸŽต Audio | cmus + Cava + mpv | | ๐Ÿ“ˆ Monitor | btop | | โฌ‡ Downloads | aria2 |



๐Ÿ“ฆ Prerequisites

[!IMPORTANT]
The installer checks for these and warns about anything missing. It will not block installation unless core system utilities like cp or find are absent.

Tested On

| | | | :------------: | :------------------------------------------------ | | ๐Ÿ–ฅ OS | Arch Linux (latest) | | GPU | Intel / AMD / NVIDIA (all supported via Hyprland) | | ๐ŸชŸ Display | Wayland (Hyprland) |

Core packages

yay -S hyprland waybar foot kitty zsh rofi mako       \
        hyprlock matugen-bin btop yazi fastfetch neovim starship          \
        cava cmus mpv nautilus zen-browser-bin aria2 advcpmv

Supporting packages

Click to expand


| Package | Purpose | | ----------------------------------------------- | ----------------------------------------- | | xdg-desktop-portal-hyprland | Wayland portal โ€” screenshare, file picker | | polkit-gnome | GUI authentication agent | | grim + slurp + wl-clipboard | Screenshot toolchain | | brightnessctl | Brightness control | | pavucontrol | Audio volume GUI | | pipewire + pipewire-pulse + pipewire-alsa | Audio stack | | wireplumber | PipeWire session manager | | networkmanager | Networking | | bluez + bluez-tools | Bluetooth | | xorg-xwayland | X11 app compatibility | | eza | Better ls | | fd | Better find | | bat | Better cat | | bleachbit | System cleaner script dependency |

Fonts

The .fonts/ directory is bundled and installed automatically. To install manually:

yay -S ttf-jetbrains-mono-nerd ttf-font-awesome nerd-fonts-symbols-only
fc-cache -f



โšก Installation

[!CAUTION]
Run --dry-run first on an existing setup. The installer backs up every file it will overwrite, but you should always confirm what it touches before committing.

Quick start

git clone https://github.com/Cybersnake223/Hypr
cd Hypr
chmod +x install.sh
./install.sh --dry-run   # preview first
./install.sh             # install when ready

What happens during install

[1] โœ…  Verify core system utilities
[2] ๐Ÿ”  Check Hyprland ecosystem packages
[3] ๐Ÿ’พ  Backup all files that will be overwritten
[4] ๐Ÿ“  Copy selected modules into $HOME
[5] ๐Ÿ”‘  chmod +x all scripts in ~/.local/bin/scripts
[6] ๐Ÿ”ค  Rebuild font cache via fc-cache -f
[7] ๐Ÿ›ค  Detect shell and optionally patch PATH
[8] ๐Ÿ“‹  Print install summary with log path

Backups land here:

~/.local/share/hypr-dotfiles-backups/<YYYYMMDD-HHMMSS>/

Each backup contains a .manifest of every installed path โ€” used by --uninstall to restore precisely.

Manual install (no script)

The installer is just a Bash script โ€” review it, then replicate manually:

for dir in .config .icons .themes .fonts; do
  [ -d "$dir" ] && cp -r "$dir" "$HOME/"
done
[ -d .local/bin/scripts ] && cp -r .local/bin/scripts "$HOME/.local/bin/"
for f in .Xresources .gtkrc-2.0; do
  [ -f "$f" ] && cp "$f" "$HOME/"
done
find "$HOME/.local/bin/scripts" -type f -exec chmod +x {} +
fc-cache -f
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc



๐Ÿ“‚ File Layout

$HOME
โ”œโ”€โ”€ .config/
โ”‚   โ”œโ”€โ”€ hypr/             โ† Hyprland compositor
โ”‚   โ”œโ”€โ”€ waybar/           โ† Status bar
โ”‚   โ”œโ”€โ”€ rofi/             โ† App launcher
โ”‚   โ”œโ”€โ”€ nvim/             โ† Neovim
โ”‚   โ”œโ”€โ”€ zsh/              โ† Zsh (uses $ZDOTDIR)
โ”‚   โ”œโ”€โ”€ kitty/            โ† Kitty terminal
โ”‚   โ”œโ”€โ”€ foot/             โ† Foot terminal
โ”‚   โ”œโ”€โ”€ mako/             โ† Notifications
โ”‚   โ”œโ”€โ”€ yazi/             โ† TUI file manager
โ”‚   โ”œโ”€โ”€ mpv/              โ† Media player
โ”‚   โ”œโ”€โ”€ btop/             โ† System monitor
โ”‚   โ”œโ”€โ”€ matugen/          โ† Color templates
โ”‚   โ”œโ”€โ”€ fastfetch/        โ† System info
โ”‚   โ”œโ”€โ”€ cava/             โ† Audio visualizer
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ .local/bin/scripts/   โ† 50+ custom shell scripts
โ”œโ”€โ”€ .fonts/               โ† Bundled fonts
โ”œโ”€โ”€ .icons/               โ† Icon theme
โ”œโ”€โ”€ .themes/              โ† GTK/Qt themes
โ”œโ”€โ”€ .Xresources
โ””โ”€โ”€ .gtkrc-2.0

/etc/ (system-level โ€” not installed, apply manually): โ”œโ”€โ”€ auto-cpufreq.conf โ† CPU governor tuning โ”œโ”€โ”€ pacman.conf โ† Pacman parallel downloads + eye candy โ””โ”€โ”€ pacman.d/



๐Ÿšฉ Installer Flags

| Flag | What it does | | :----------------------: | :----------------------------------------------- | | --dry-run | ๐Ÿ” Preview every action โ€” zero changes made | | --yes | โœ… Skip all confirmation prompts | | --select | ๐ŸŽ› Interactively pick which modules to install | | --no-backup | โš ๏ธ Skip backup โ€” also disables --uninstall | | --uninstall | โ†ฉ๏ธ Restore originals from the most recent backup | | --list-backups | ๐Ÿ“‹ Show all backups with timestamps and sizes | | --install-deps | ๐Ÿ“ฆ Auto-install missing Hyprland ecosystem deps | | --install-nvim-deps | ๐Ÿ“ฆ Auto-install Neovim system dependencies | | --skip-deps | ๐Ÿš€ Skip the ecosystem dependency check | | --version | โ„น๏ธ Show version and exit | | -h / --help | ๐Ÿ“– Show usage |

# First-timer recommended flow
./install.sh --dry-run

Standard install

./install.sh

Non-interactive (CI / scripted)

./install.sh --yes --skip-deps

Pick only what you want

./install.sh --select

Undo the last install

./install.sh --uninstall

See all saved backups

./install.sh --list-backups

--select module picker

[โœ“]  1  .config       Application configs (hypr, waybar, rofi, nvim, zshโ€ฆ)
[โœ“]  2  scripts       Custom scripts โ†’ ~/.local/bin/scripts
[ ]  3  .icons        Icon theme
[โœ“]  4  .themes       GTK/Qt themes
[โœ“]  5  .fonts        Custom fonts (triggers fc-cache rebuild)
[โœ“]  6  dotfiles      Root dotfiles (.Xresources, .gtkrc-2.0)

Toggle a number, press Enter to confirm.

Shell-aware PATH patching

| Shell | Line added | File patched | | ------------ | --------------------------------------- | -------------------------------------- | | zsh | path=(~/.local/bin $path) | ~/.zshrc | | bash | export PATH="$HOME/.local/bin:$PATH" | ~/.bashrc | | fish | fishaddpath $HOME/.local/bin | ~/.config/fish/conf.d/hypr_path.fish | | ksh / mksh | export PATH="$HOME/.local/bin:$PATH" | ~/.kshrc | | Other | export PATH="$HOME/.local/bin:$PATH" | ~/.profile |



โŒจ๏ธ Keybinds

[!NOTE]
ALT is the primary modifier across the entire setup.

๐Ÿ”ง System


| Keybind | Action | | ------------- | ---------------------- | | F1 | Toggle mute (speakers) | | F2 / F3 | Volume โˆ’/+ 10% | | F4 | Toggle mute (mic) | | F7 | Toggle Wi-Fi | | F9 | Lock screen | | F11 / F12 | Brightness โˆ’/+ 10% | | Print | Screenshot |

๐Ÿš€ Apps & Launchers


| Keybind | Action | | --------------- | --------------------------- | | ALT + Enter | Terminal (Kitty) | | ALT + D | App launcher (Rofi) | | ALT + R | Yazi (TUI file manager) | | ALT + N | Neovim | | ALT + M | cmus | | ALT + H | btop | | ALT + T | aerc (email) | | ALT + E | Emoji picker | | ALT + X | Power menu | | ALT + B | Bluetooth menu | | ALT + L | AirPods TUI | | ALT + Y | YouTube downloader | | ALT + V | Clipboard history | | ALT + W | Change wallpaper | | ALT + K | Kill window | | ALT + C | Dismiss notifications | | ALT SHIFT + T | Nautilus (GUI files) | | ALT SHIFT + P | Audio mixer (wiremix) | | ALT SHIFT + V | Watch video | | ALT SHIFT + S | Universal snip (QuickShell) | | ALT SHIFT + K | System cleaner | | ALT SHIFT + D | aria2 downloader | | ALT SHIFT + C | Script editor | | ALT SHIFT + E | Config editor | | ALT SHIFT + N | Wi-Fi menu |

๐ŸŒ Web shortcuts (personal โ€” edit before use)


[!NOTE]
These open personal bookmarks hardcoded in the Hyprland config. Edit them before adopting this setup.

| Keybind | Action | | --------------- | ------------------ | | ALT SHIFT + B | Zen Browser | | ALT SHIFT + I | Zen private window | | ALT + G | GitHub | | ALT SHIFT + Y | YouTube | | ALT SHIFT + G | Gemini | | ALT SHIFT + W | Wallhaven | | ALT SHIFT + O | ChatGPT | | ALT SHIFT + R | Reddit |

๐ŸชŸ Window management


| Keybind | Action | | --------------------- | ----------------- | | ALT + Q | Close window | | ALT + F | Toggle fullscreen | | ALT + P | Toggle floating | | ALT + J | Toggle split | | ALT + โ†‘ โ†“ โ† โ†’ | Move focus | | ALT SHIFT + โ†‘ โ†“ โ† โ†’ | Swap window | | ALT CTRL + โ†‘ โ†“ โ† โ†’ | Resize window | | ALT + LMB drag | Move window | | ALT + RMB drag | Resize window |

๐Ÿ—‚ Workspaces


| Keybind | Action | | ---------------------- | ----------------------------- | | ALT + 1โ€“0 | Switch to workspace 1โ€“10 | | ALT SHIFT + 1โ€“0 | Move window to workspace 1โ€“10 | | ALT + Scroll up/down | Cycle workspaces | | ALT + ` | Toggle scratchpad | | ALT SHIFT + ` | Move window to scratchpad |



๐ŸŽจ Theming

Every color, everywhere โ€” driven by your wallpaper.


This setup uses Matugen โ€” a Material You color extraction engine. Change your wallpaper, run Matugen, and Waybar, Rofi, Mako, Hyprlock, GTK apps, and the terminal all recolor automatically.

# Set wallpaper and regenerate palette
aww set /path/to/wallpaper.jpg
matugen image /path/to/wallpaper.jpg
# Force a refresh from the cached wallpaper
matugen image ~/.config/hypr/wallpaper/current.jpeg
[!NOTE]
Matugen templates live in .config/matugen/. Edit them to control exactly how color tokens map to each app's config format.



๐ŸŒ Zen Browser

Custom styling for Zen Browser is included under .zen/chrome/ to match the Viper aesthetic.

| File | Purpose | | -------------------------------- | ------------------------------------------ | | .zen/chrome/userChrome.css | Browser chrome โ€” sidebar, tab bar, toolbar | | .zen/chrome/userContent.css | Internal pages โ€” new tab, about: pages | | .zen/chrome/zen-logo-mocha.svg | Custom logo asset |

[!IMPORTANT]
The installer does not copy .zen/ automatically. Apply it manually:
cp -r .zen/chrome "$HOME/.zen/chrome"

Then enable custom CSS in about:config:

toolkit.legacyUserProfileCustomizations.stylesheets = true

Restart Zen. If your profile is not at ~/.zen/ (e.g. Flatpak installs use ~/.var/app/), find the correct path via about:support โ†’ Profile Directory.



๐Ÿ”„ Updating

git pull
./install.sh --dry-run   # preview what changed
./install.sh             # apply

Each run creates a fresh backup. To roll back after an update:

./install.sh --uninstall      # restore most recent backup
./install.sh --list-backups   # or inspect all available backups



๐Ÿ”ง Troubleshooting

Waybar / Rofi / Mako not launching

./install.sh --dry-run
which hyprland waybar rofi mako hyprlock matugen kitty foot zsh

Scripts fail with command not found

# Zsh
echo 'path=(~/.local/bin $path)' >> ~/.zshrc
source ~/.zshrc

Bash / others

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc

GTK 2 theme broken after nwg-look

cp /path/to/Hypr/.gtkrc-2.0 ~/.gtkrc-2.0

Colors didn't update after wallpaper change

matugen image /path/to/your/wallpaper

Icon glyphs showing as boxes

yay -S ttf-font-awesome nerd-fonts-symbols-only
fc-cache -f

--uninstall says "No install manifest found"

The installer was never run, or the backup directory was deleted. Restore files manually from the repo tree.

Something went wrong mid-install

# Show the last 50 lines of the most recent install log
tail -50 /tmp/hypr-install-*.log 2>/dev/null



๐Ÿ” Security

Do not open a public GitHub issue for vulnerabilities. See SECURITY.md for responsible disclosure.


๐Ÿค Contributing

PRs are welcome for fixes, improvements, and documentation updates. Include screenshots when UI is affected.

๐Ÿ’ฌ Getting Help

Need help or have questions? Start a discussion:

For bugs and issues, use the Issue Tracker.

๐Ÿ“„ License

MIT โ€” see LICENSE for details.



Crafted with ๐Ÿ’œ by Cybersnake


footer

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท Cybersnake223/Hypr ยท Updated daily from GitHub