This repository contains my complete Garuda Linux Hyprland configuration backup, including all ~/.config files, UI scaling fixes for high-DPI displays, and custom desktop files.
• Just run ./sync-config.sh
whenever you make config changes
• The script will handle everything automatically!
- OS: Garuda Linux (Hyprland edition)
- Display: 4K (3840x2160) @ 144Hz with 1.25x scaling
- Window Manager: Hyprland
- Status Bar: Waybar
- Terminal: Warp (with custom scaling)
- Total Config Directories: 65+ applications (cleaned of sensitive data)
├── hypr/ # Hyprland configuration (legacy)
│ ├── hyprland.conf # Main Hyprland config
│ ├── hypridle.conf # Idle management
│ ├── hyprstart # Startup script
│ └── scripts/ # Custom scripts
├── dotconfig/ # Complete ~/.config backup (65+ apps)
│ ├── hypr/ # Hyprland configuration
│ ├── waybar/ # Status bar configuration
│ ├── kitty/ # Terminal emulator
│ ├── nvim/ # Neovim configuration
│ ├── warp-terminal/ # Warp terminal settings
│ ├── fish/ # Fish shell
│ ├── foot/ # Terminal emulator
│ ├── starship.toml # Shell prompt configuration
│ ├── gtk-*/ # GTK themes and settings
│ ├── qt5ct/ & qt6ct/ # Qt theming
│ ├── mako/ # Notification daemon
│ ├── wofi/ # App launcher
│ ├── swaylock/ # Lock screen
│ ├── swaync/ # Notification center
│ ├── ranger/ # File manager
│ ├── btop/ # System monitor
│ ├── helix/ # Text editor
│ ├── mpv/ # Media player
│ ├── vlc/ # VLC media player
│ ├── alacritty/ # Terminal emulator
│ ├── geany/ # Text editor
│ ├── Thunar/ # File manager
│ ├── libreoffice/ # Office suite
│ ├── microsoft-edge-dev/ # Edge browser
│ ├── google-chrome-*/ # Chrome variants
│ ├── vivaldi-*/ # Vivaldi browser
│ ├── Windsurf/ # Code editor
│ ├── wpaperd/ # Wallpaper daemon
│ ├── systemd/ # User systemd services
│ ├── psd/ # Profile sync daemon
│ ├── garuda*/ # Garuda Linux tools
│ ├── nwg-*/ # NWG suite apps
│ ├── Kvantum/ # Qt theme engine
│ └── ... (40+ more apps)
├── desktop-files/ # Custom .desktop files with scaling fixes
│ ├── dev.warp.Warp.desktop # Warp terminal (scaled down)
│ ├── obsidian.desktop # Obsidian (scaled up)
│ └── ...
├── other-configs/ # Legacy config files
│ ├── .bashrc
│ ├── .zshrc
│ └── waybar/ # Waybar configuration
└── scripts/ # Custom scripts
- Warp Terminal: Scaled down (1.0x) for crisp text
- Obsidian: Scaled up (1.5x) for better readability
- System Default: 1.25x scaling for 4K display
- Custom window sizing for applications
- Floating window controls
- Workspace management
- 4K display support with proper scaling
- Per-application scaling controls
- Consistent UI across different app types
🔒 SECURITY NOTE: The following sensitive data has been removed from this backup:
- API keys and tokens from VS Code history files
- 1Password configuration and data
- Environment files (.env)
- Go telemetry tokens
- Any other files containing credentials or secrets
# Create timestamped backup
cp -r ~/.config ~/.config.backup-$(date +%Y%m%d-%H%M%S)
cp -r ~/.local/share/applications ~/.local/share/applications.backup-$(date +%Y%m%d-%H%M%S)
# Example: Restore only Hyprland configuration
cp -r dotconfig/hypr ~/.config/
# Example: Restore only Waybar
cp -r dotconfig/waybar ~/.config/
# Example: Restore terminal configurations
cp -r dotconfig/kitty ~/.config/
cp -r dotconfig/warp-terminal ~/.config/
# Only do this if you're sure!
cp -r dotconfig/* ~/.config/
cp desktop-files/* ~/.local/share/applications/
update-desktop-database ~/.local/share/applications
cp other-configs/.bashrc ~/
cp other-configs/.zshrc ~/
hyprctl reload
systemctl --user restart waybar
Variable | Purpose | Values |
---|---|---|
GDK_SCALE |
GTK applications | 1.0, 1.25, 1.5, 2.0 |
QT_SCALE_FACTOR |
Qt applications | 1.0, 1.25, 1.5, 2.0 |
ELECTRON_SCALE |
Electron apps | 1.0, 1.25, 1.5, 2.0 |
For Electron apps (VS Code, Discord, Obsidian), use:
--force-device-scale-factor=1.5
[Desktop Entry]
Name=MyApp
Exec=env GDK_SCALE=1.5 QT_SCALE_FACTOR=1.5 myapp --force-device-scale-factor=1.5
- Increase scaling values in desktop files
- Common values: 1.25, 1.5, 1.75, 2.0
- Decrease scaling values in desktop files
- Use values like 0.8, 1.0
- Check Hyprland window rules in
hypr/hyprland.conf
- Ensure floating windows have proper size rules
Current monitor setup:
monitor = eDP-2, [email protected], 0x0, 1.25
See hypr/hyprland.conf
for complete keybinding list.
Key shortcuts:
Super + Return
: Kitty terminalSuper + T
: Fullscreen KittySuper + F1
: FirefoxSuper + Shift + R
: Reload Hyprland
The sync-config.sh
script automates the process of updating this repository with your current configuration:
# Run the sync script
./sync-config.sh
# Then commit the changes
git add .
git commit -m "Update configuration $(date +%Y-%m-%d)"
git push
- ✅ Copies all important configuration directories
- ✅ Automatically removes sensitive data (API keys, passwords, etc.)
- ✅ Updates desktop files with scaling fixes
- ✅ Updates README with current directory count
- ✅ Provides colored output and progress feedback
- ✅ Handles missing directories gracefully
- Environment files (
.env
) - API keys and tokens
- Browser local storage and session data
- 1Password data
- VS Code history files
- Credentials and secrets
- Garuda Linux team for the base configuration
- Hyprland community for window management
- Various scaling solutions adapted for high-DPI displays