Important
Terminal-first approach: This guide uses the command line extensively. Every command is explained and copy-paste ready. If you're new to terminals, this is a great opportunity to learn - by the end, you'll be more confident navigating your system.
Most tools used in Cybrland are TUI/CLI - fast, lightweight, and fitting the aesthetic.
(TUI = Text UI, keyboard navigation in terminal; CLI = Command-line, pure terminal commands; GUI = Graphical UI, mouse-driven, visual windows)
On Arch Linux:
# Essential tools
sudo pacman -S kitty fish hyprland waybar rofi swaync
# Font
curl -L https://github.com/ryanoasis/nerd-fonts/releases/latest/download/GeistMono.zip -o GeistMono.zip
mkdir -p ~/.local/share/fonts
unzip GeistMono.zip -d ~/.local/share/fonts/GeistMono
fc-cache -fv
# Optional utilities
sudo pacman -S broot btop cava firefox fzf lm_sensors micro nvtop starship yazi git fastfetch newsboat
# Hardware monitoring setup
sudo sensors-detectYou'll need a terminal text editor for configuration files. This guide uses $EDITOR as a placeholder. Check what you have set:
echo $EDITOR
echo $VISUALIf nothing prints, set them now (using fish):
# Quick edits in terminal
set -Ux EDITOR micro
# Full IDE/editor (can be resource-intensive)
set -Ux VISUAL codeChoose any editor you prefer (nano, vim, neovim). Just make sure it's installed first.
Caution
Critical setup step: Programs like btop, broot, fzf, yazi, and fish rely on your terminal's ANSI color palette. Configure kitty first, or colors will be incorrect.
- Install kitty → kitty setup
- Configure ANSI colors (included in kitty config)
- Install other programs
# Should show 16 colored bars labeled COLOR 0 through COLOR 15
for i in (seq 0 15)
echo -e "\e[48;5;$i""m COLOR $i \e[0m"
endIf you use a different terminal, extract ANSI values from CYBRkitty and apply them to your terminal emulator. Make sure your terminal of choice supports truecolor and transparency.
Before installing, complete these steps to avoid conflicts:
mkdir -p ~/.backup_configs
cp -r ~/.config/hypr ~/.backup_configs/hypr 2>/dev/null
cp -r ~/.config/kitty ~/.backup_configs/kitty 2>/dev/null
cp -r ~/.config/waybar ~/.backup_configs/waybar 2>/dev/null
cp -r ~/.config/rofi ~/.backup_configs/rofi 2>/dev/null
cp -r ~/.config/btop ~/.backup_configs/btop 2>/dev/null
# add other configs you want to backupThese dotfiles include systemd user services for:
- Wallpaper rotation daemon
- Idle/lock management (hypridle)
- Notification daemon (swaync)
- Status bar (waybar)
Check for conflicts with existing services:
systemctl --user list-units --type=service | grep -E 'idle|lock|notify|bar|wallpaper'Launch Hyprland with a test config before applying permanently:
cp -r ~/.config/hypr ~/.config/hypr_test
Hyprland --config ~/.config/hypr_test/hyprland.confQuick recovery if Hyprland won't start:
cat > ~/.local/bin/revert-hypr << 'EOF'
#!/usr/bin/env bash
mv ~/.config/hypr ~/.config/hypr_broken
cp -r ~/.backup_configs/hypr ~/.config/hypr
echo "Reverted to backup config"
EOF
chmod +x ~/.local/bin/revert-hyprRecommended sequence to avoid dependency issues:
- kitty - Terminal emulator (provides ANSI colors for everything else)
- fish - Shell (optional but recommended)
- hyprland - Window manager
- waybar + swaync + rofi - UI components
- Everything else - Utilities, themes, extras
Each component has its own setup guide.
Download only what you need manually or using sparse checkout. See component-specific guides:
Warning
This will overwrite existing configs in ~/.config/. Back up your current setup first! See step 4.
# 1. Clone repository without files and commit history (metadata only)
git clone --depth=1 --filter=blob:none --no-checkout https://github.com/scherrer-txt/cybrland.git
# 2. Enter repository
cd cybrland
# 3. Enable sparse checkout
git sparse-checkout init --cone
# 4. Select which directory to download
git sparse-checkout set foo
# 5. Download selected files
git checkout main
# 6. Move to your config
mv foo ~/.config/
# 7. Clean up
cd ~ && rm -rf cybrland
# Never skip step 7, because:
# - Removes git repository and history
# - Prevents accidental commits under wrong identity
# - Saves disk space
# - You only need the config files, not git metadataI provided a one-line version in each readme.md, which you can copy & paste into your terminal, and it looks like this:
git clone --depth=1 --filter=blob:none --no-checkout https://github.com/scherrer-txt/cybrland.git && cd cybrland && git sparse-checkout init --cone && git sparse-checkout set foo && git checkout main && mv foo ~/.config/ && cd ~ && rm -rf cybrlandWarning
This will overwrite existing configs in ~/.config/. Back up your current setup first! See step 4.
# Clone repo and cleanup
git clone --depth=1 https://github.com/scherrer-txt/cybrland.git ~/cybrland
cd ~/cybrland
rm -rf assets stylus .git # Saves ~170 MB
# Move configs to ~/.config
for dir in */; do
[[ -d "$dir" ]] && cp -r "$dir" ~/.config/
done
cd ~ && rm -rf ~/cybrland
# Make all scripts executable
chmod +x \
~/.config/rofi/scripts/clipboard/clipboard \
~/.config/rofi/scripts/emoji/emoji \
~/.config/rofi/scripts/keybindings/keybindings \
~/.config/rofi/scripts/powermenu/powermenu \
~/.config/rofi/scripts/screenshot/screenshot \
~/.config/rofi/scripts/screenshot/screenshot_selection \
~/.config/rofi/scripts/wallpaper/wallpaper \
~/.config/waybar/scripts/* \
~/.config/hypr/scripts/* \How it works:
- Clones repo with minimal history (
--depth=1) - Removes unnecessary files (assets, stylus source, git history)
- Copies all config directories to
~/.config/ - Cleans up temporary clone
- Makes scripts executable
You will need to adjust monitor settings for waybar and hyprland, see documentation for guidance.
After setup, test these components:
- Visual/UI:
- Monitors are working properly
- Waybar displays correctly (modules, colors, icons)
- Rofi launchers work (app launcher, power menu, etc)
- Kitty colors match screenshots
- Window decorations (blur, transparency, borders)
- Functionality:
- Keybinds respond (try SUPER+ENTER for terminal)
- Wallpaper rotation works
- Screen lock triggers on idle
- Hardware monitoring (CPU/GPU/temps in waybar)
- Audio controls (volume, media playback)
| Issue | Solution |
|---|---|
| Wrong colors | Verify kitty config loaded: kitty --debug-config | grep color |
| Waybar missing modules | Check journalctl --user -u waybar for errors |
| Keybinds not working | Verify Hyprland loaded config: hyprctl version |
| Services not starting | Check systemctl --user status [service-name] |