mirror of
https://github.com/duma799/hyprduma-config.git
synced 2026-05-14 14:41:00 +00:00
468 lines
12 KiB
Markdown
468 lines
12 KiB
Markdown
# HyprDuma Dotfiles
|
|
|
|
https://github.com/user-attachments/assets/17ff7195-82e0-4b48-9309-1a5ec9d6e5a4
|
|
|
|
Personal Hyprland configuration focused on productivity and ergonomics.
|
|
|
|
## Features
|
|
|
|
### Enhanced Keybindings
|
|
- **[KEYBINDS.md](KEYBINDS.md)** - Complete keybindings reference
|
|
|
|
### Visual & UX
|
|
- Minimal gaps (10px/40px) for space efficiency
|
|
- Blur effects and transparency
|
|
- Smooth custom animations with bezier curves
|
|
- **Pywal integration** - Dynamic colors from wallpaper (optional)
|
|
|
|
### Input
|
|
- 3-finger gestures (horizontal: workspace, vertical: fullscreen)
|
|
- Dual keyboard layout (US/RU with `ALT + SHIFT` toggle)
|
|
- Numlock enabled by default
|
|
- Optimized touchpad scrolling
|
|
|
|
### Display Setup
|
|
- Dual monitor configuration (HDMI-A-1 flipped + eDP-1)
|
|
- Workspaces 1-4 on external monitor
|
|
- Workspaces 5-10 on laptop screen
|
|
|
|
---
|
|
|
|
## Complete Installation Guide
|
|
|
|
Follow these steps in order to install the complete setup from scratch.
|
|
|
|
### Prerequisites: Install AUR Helpers (Optional but Recommended)
|
|
|
|
If you don't have yay and paru installed yet, you can install both:
|
|
|
|
```bash
|
|
# Install yay
|
|
sudo pacman -S --needed git base-devel
|
|
git clone https://aur.archlinux.org/yay.git
|
|
cd yay
|
|
makepkg -si
|
|
cd .. && rm -rf yay
|
|
|
|
# Install paru
|
|
git clone https://aur.archlinux.org/paru.git
|
|
cd paru
|
|
makepkg -si
|
|
cd .. && rm -rf paru
|
|
```
|
|
|
|
### Step 1: Install Required Packages
|
|
|
|
```bash
|
|
# Install all required packages in one command
|
|
sudo pacman -S hyprland hyprlock hyprshot wlogout kitty waybar swaybg waypaper wofi nautilus wireplumber pipewire-pulse brightnessctl playerctl adwaita-cursors python-pywal
|
|
```
|
|
|
|
### Step 2: Install Caelestia Shell (Recommended)
|
|
|
|
Caelestia is a modern shell with AI features that integrates with the pywal theming system.
|
|
|
|
```bash
|
|
# Install Caelestia via yay
|
|
yay -S caelestia-shell # caelestia-shell-git is bleeding edge & unstable one
|
|
|
|
# Start Caelestia daemon (it will auto-restart when pywal colors change)
|
|
caelestia shell -d &
|
|
```
|
|
|
|
**Note:** Caelestia runs as a background service and integrates with pywal for dynamic color theming.
|
|
|
|
### Step 3: Clone This Repository
|
|
|
|
```bash
|
|
# Clone to a temporary location
|
|
cd ~/Downloads
|
|
git clone https://github.com/duma97/hyprduma-config.git
|
|
cd hyprduma-config
|
|
```
|
|
|
|
### Step 4: Backup Existing Configs (If Any)
|
|
|
|
```bash
|
|
# Backup existing Hyprland config
|
|
[ -d ~/.config/hypr ] && mv ~/.config/hypr ~/.config/hypr.backup
|
|
|
|
# Backup existing waybar config
|
|
[ -d ~/.config/waybar ] && mv ~/.config/waybar ~/.config/waybar.backup
|
|
|
|
# Backup existing wlogout config
|
|
[ -d ~/.config/wlogout ] && mv ~/.config/wlogout ~/.config/wlogout.backup
|
|
```
|
|
|
|
### Step 5: Install Hyprland Configuration
|
|
|
|
```bash
|
|
# Create Hypr config directory
|
|
mkdir -p ~/.config/hypr
|
|
|
|
# Copy main config
|
|
cp hyprland.conf ~/.config/hypr/
|
|
cp hyprland-colors.conf ~/.config/hypr/
|
|
|
|
# Create screenshots directory (used by config)
|
|
mkdir -p ~/Pictures/Screenshots
|
|
```
|
|
|
|
### Step 6: Configure Your Applications
|
|
|
|
**IMPORTANT:** Edit the config file to set your preferred applications.
|
|
|
|
```bash
|
|
# Open the config file
|
|
nvim ~/.config/hypr/hyprland.conf
|
|
|
|
# Find lines 27-34 and adjust these variables:
|
|
# $terminal = kitty # Your terminal
|
|
# $fileManager = dolphin # Your file manager
|
|
# $menu = wofi --show drun # Your app launcher
|
|
# $telegram = Telegram # Path to Telegram
|
|
# $spotify = spotify # Path to Spotify
|
|
# $vscode = code # Path to VSCode
|
|
# $browser = your-browser # Your browser command
|
|
```
|
|
|
|
### Step 7: Install Pywal Integration (Strongly Recommended)
|
|
|
|
Pywal provides dynamic color theming based on your wallpaper.
|
|
|
|
```bash
|
|
# Install pywal templates (REQUIRED for color generation)
|
|
mkdir -p ~/.config/wal/templates
|
|
cp -r wal/templates/* ~/.config/wal/templates/
|
|
|
|
# Copy the color application and wallpaper sync scripts
|
|
cp pywal.sh ~/.config/hypr/
|
|
cp sync-caelestia-wallpaper.sh ~/.config/hypr/
|
|
chmod +x ~/.config/hypr/pywal.sh
|
|
chmod +x ~/.config/hypr/sync-caelestia-wallpaper.sh
|
|
|
|
# Also copy to home directory for easier access
|
|
cp pywal.sh ~/pywal.sh
|
|
chmod +x ~/pywal.sh
|
|
|
|
# Setup Kitty terminal to use pywal colors
|
|
mkdir -p ~/.config/kitty
|
|
cp kitty/kitty.conf ~/.config/kitty/
|
|
|
|
# Configure bash shell to load pywal colors
|
|
# Add these lines to your ~/.bashrc if they're not already there:
|
|
cat >> ~/.bashrc << 'EOF'
|
|
|
|
# Import pywal colorscheme from cache
|
|
(cat ~/.cache/wal/sequences &)
|
|
|
|
# To add support for TTYs (optional)
|
|
source ~/.cache/wal/colors-tty.sh 2>/dev/null
|
|
EOF
|
|
|
|
# Generate initial colors from a wallpaper
|
|
wal -i /path/to/your/wallpaper.png
|
|
|
|
# Or use included wallpaper
|
|
wal -i wallpapers/sakura.jpg
|
|
|
|
# Apply colors to all components
|
|
~/pywal.sh
|
|
|
|
# Reload bash to apply shell colors
|
|
source ~/.bashrc
|
|
```
|
|
|
|
**What this does:**
|
|
- Generates a color scheme from your wallpaper
|
|
- Applies colors to Hyprland window borders
|
|
- Applies colors to Caelestia shell (if installed)
|
|
- Applies colors to Kitty terminals
|
|
- Applies colors to bash shell
|
|
- Restarts necessary services to apply changes
|
|
|
|
### Step 8: Start Hyprland
|
|
|
|
```bash
|
|
# If you're in a TTY, start Hyprland
|
|
Hyprland
|
|
|
|
# If already in Hyprland, reload the config
|
|
# Press SUPER + SHIFT + R (or restart Hyprland session)
|
|
```
|
|
|
|
---
|
|
|
|
## Post-Installation
|
|
|
|
### Setting Wallpaper with Pywal
|
|
|
|
```bash
|
|
# Generate colors and apply them
|
|
wal -i /path/to/wallpaper.png && ~/pywal.sh
|
|
|
|
# Or use the wallpapers included in this repo
|
|
wal -i ~/.config/hypr/wallpapers/sakura.jpg && ~/pywal.sh
|
|
```
|
|
|
|
**Note about waypaper and Caelestia:**
|
|
- This config uses **swaybg** as the wallpaper backend (not hyprpaper)
|
|
- Use `waypaper` GUI (Super+W) to select wallpapers
|
|
- Waypaper with swaybg backend automatically saves and restores your wallpaper on login
|
|
- **Important**: Caelestia shell has its own wallpaper management that may conflict with waypaper
|
|
- The config includes `sync-caelestia-wallpaper.sh` to automatically sync Caelestia's wallpaper reference with swaybg
|
|
- This sync happens automatically on startup and when you open waypaper (Super+W)
|
|
- For pywal integration, use `wal -i` as shown above, then run the apply script (which also syncs Caelestia)
|
|
|
|
### System-Wide Theme Syncing (Dark/Light Mode)
|
|
|
|
The enhanced `pywal.sh` script now supports system-wide theme synchronization, making browsers, GTK apps, and other applications respect PyWal color scheme and dark/light mode preference.
|
|
|
|
#### Basic Usage
|
|
|
|
```bash
|
|
# Apply dark theme with wallpaper (default)
|
|
~/.config/hypr/pywal.sh ~/Pictures/wallpaper.jpg
|
|
|
|
# Apply light theme with wallpaper
|
|
~/.config/hypr/pywal.sh ~/Pictures/wallpaper.jpg light
|
|
|
|
# Switch to light mode (keep current wallpaper)
|
|
~/.config/hypr/pywal.sh "" light
|
|
|
|
# Switch to dark mode (keep current wallpaper)
|
|
~/.config/hypr/pywal.sh "" dark
|
|
|
|
# Refresh themes (reapply current colors)
|
|
~/.config/hypr/pywal.sh
|
|
```
|
|
|
|
#### Enhanced System-Wide Support (Optional)
|
|
|
|
For full system-wide theming across all applications, install these optional packages:
|
|
|
|
**1. GTK Theme Support**
|
|
|
|
```bash
|
|
# Install GTK theme generator
|
|
yay -S wal-gtk-theme-git
|
|
|
|
# The script will automatically generate GTK themes
|
|
# GTK apps (Nautilus, GNOME apps, etc.) will use PyWal colors
|
|
```
|
|
|
|
**2. Firefox Theme Support**
|
|
|
|
```bash
|
|
# Install pywalfox backend
|
|
yay -S python-pywalfox
|
|
pywalfox install
|
|
|
|
# Then install the Pywalfox extension from Firefox Add-ons:
|
|
# https://addons.mozilla.org/en-US/firefox/addon/pywalfox/
|
|
```
|
|
|
|
**3. Qt Application Support (Optional)**
|
|
|
|
```bash
|
|
# Install Qt theming tools
|
|
yay -S qt5ct qt6ct kvantum
|
|
|
|
# Set environment variables
|
|
echo "QT_QPA_PLATFORMTHEME=qt5ct" >> ~/.config/environment.d/qt.conf
|
|
echo "QT_STYLE_OVERRIDE=kvantum" >> ~/.config/environment.d/qt.conf
|
|
```
|
|
|
|
**4. Create GTK Configuration Files**
|
|
|
|
```bash
|
|
# Create GTK 3 settings
|
|
mkdir -p ~/.config/gtk-3.0
|
|
cat > ~/.config/gtk-3.0/settings.ini << 'EOF'
|
|
[Settings]
|
|
gtk-theme-name=FlatColor
|
|
gtk-icon-theme-name=Papirus-Dark
|
|
gtk-font-name=Sans 10
|
|
gtk-cursor-theme-name=Adwaita
|
|
gtk-cursor-theme-size=24
|
|
gtk-application-prefer-dark-theme=1
|
|
EOF
|
|
|
|
# Create GTK 4 settings (same content)
|
|
mkdir -p ~/.config/gtk-4.0
|
|
cp ~/.config/gtk-3.0/settings.ini ~/.config/gtk-4.0/
|
|
```
|
|
|
|
#### What Gets Themed
|
|
|
|
Once configured, the following applications will sync with your PyWal colors:
|
|
|
|
- **Hyprland**: Window borders and decorations
|
|
- **Caelestia Shell**: Status bar and UI elements
|
|
- **Kitty Terminal**: Background, foreground, and color palette
|
|
- **GTK Applications**: File managers (Nautilus), settings, GNOME apps
|
|
- **Firefox**: Browser UI via Pywalfox (if installed)
|
|
- **Chrome/Chromium**: Via system dark mode preference
|
|
- **Qt Applications**: Via qt5ct/qt6ct (if configured)
|
|
- **Bash Shell**: Terminal color sequences
|
|
|
|
#### Automatic Dark/Light Mode by Time (Optional)
|
|
|
|
Create a script to automatically switch themes based on time of day:
|
|
|
|
```bash
|
|
# Create auto-theme script
|
|
cat > ~/.local/bin/auto-theme.sh << 'EOF'
|
|
#!/bin/bash
|
|
HOUR=$(date +%H)
|
|
|
|
if [ $HOUR -ge 18 ] || [ $HOUR -lt 6 ]; then
|
|
# Dark mode (6 PM to 6 AM)
|
|
~/.config/hypr/pywal.sh "" dark
|
|
else
|
|
# Light mode (6 AM to 6 PM)
|
|
~/.config/hypr/pywal.sh "" light
|
|
fi
|
|
EOF
|
|
|
|
chmod +x ~/.local/bin/auto-theme.sh
|
|
|
|
# Add to Hyprland config to run on startup
|
|
echo "exec-once = ~/.local/bin/auto-theme.sh" >> ~/.config/hypr/hyprland.conf
|
|
```
|
|
|
|
#### How It Works
|
|
|
|
The enhanced `pywal.sh` script:
|
|
1. Generates PyWal colors from wallpaper (or switches theme mode)
|
|
2. Creates GTK themes via `wal-gtk` (if installed)
|
|
3. Sets system-wide dark/light preference via `gsettings`
|
|
4. Updates Firefox theme via `pywalfox` (if installed)
|
|
5. Reloads Hyprland, Caelestia, and Kitty with new colors
|
|
6. Automatically detects if theme is light or dark based on background brightness
|
|
|
|
### Monitor Configuration
|
|
|
|
If you have different monitors, adjust lines 4-18 in `~/.config/hypr/hyprland.conf`:
|
|
|
|
```bash
|
|
nvim ~/.config/hypr/hyprland.conf
|
|
|
|
# Edit monitor configuration:
|
|
# monitor = eDP-1, 1920x1080@144, 1920x0, 1
|
|
# monitor = HDMI-A-1, 1920x1080@144, 0x0, 1, transform, 2
|
|
```
|
|
|
|
### Keyboard Layout
|
|
|
|
Default is US/RU with ALT+SHIFT toggle. To change, edit `~/.config/hypr/hyprland.conf` line 42:
|
|
|
|
```
|
|
kb_layout = us, ru # Change to your layouts
|
|
```
|
|
|
|
---
|
|
|
|
## Documentation
|
|
|
|
- **[KEYBINDS.md](KEYBINDS.md)** - Complete keybindings reference
|
|
- **[PYWAL-SETUP.md](PYWAL-SETUP.md)** - Detailed pywal integration guide
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Hyprland won't start
|
|
- Check if all required packages are installed
|
|
- Review error logs: `journalctl -b | grep hyprland`
|
|
|
|
### Applications don't launch
|
|
- Make sure you edited the app variables in `hyprland.conf` (lines 27-34)
|
|
- Check if the applications are actually installed
|
|
|
|
### Pywal colors not applying
|
|
|
|
**If colors work in Hyprland but not in terminals/shell:**
|
|
|
|
1. **Check if templates are installed:**
|
|
```bash
|
|
ls ~/.config/wal/templates/
|
|
# Should show: hyprland-colors.conf, caelestia-scheme.json
|
|
```
|
|
|
|
If missing, copy them:
|
|
```bash
|
|
mkdir -p ~/.config/wal/templates
|
|
cp ~/.config/hypr/wal/templates/* ~/.config/wal/templates/
|
|
```
|
|
|
|
2. **Regenerate colors:**
|
|
```bash
|
|
wal -R && ~/pywal.sh
|
|
```
|
|
|
|
3. **Check bash configuration:**
|
|
```bash
|
|
grep -A 5 "pywal" ~/.bashrc
|
|
```
|
|
|
|
If missing, add:
|
|
```bash
|
|
cat >> ~/.bashrc << 'EOF'
|
|
|
|
# Import pywal colorscheme from cache
|
|
(cat ~/.cache/wal/sequences &)
|
|
|
|
# To add support for TTYs (optional)
|
|
source ~/.cache/wal/colors-tty.sh 2>/dev/null
|
|
EOF
|
|
|
|
source ~/.bashrc
|
|
```
|
|
|
|
4. **Check Kitty configuration:**
|
|
```bash
|
|
grep "colors-kitty" ~/.config/kitty/kitty.conf
|
|
```
|
|
|
|
Should show: `include ~/.cache/wal/colors-kitty.conf`
|
|
|
|
If it shows `kitty-colors.conf` (wrong filename), fix it:
|
|
```bash
|
|
sed -i 's/kitty-colors.conf/colors-kitty.conf/g' ~/.config/kitty/kitty.conf
|
|
killall -SIGUSR1 kitty # Reload kitty
|
|
```
|
|
|
|
5. **Verify pywal cache files exist:**
|
|
```bash
|
|
ls ~/.cache/wal/hyprland-colors.conf
|
|
ls ~/.cache/wal/colors-kitty.conf
|
|
ls ~/.cache/wal/sequences
|
|
```
|
|
|
|
**General pywal troubleshooting:**
|
|
- Ensure the script is executable: `chmod +x ~/pywal.sh`
|
|
- Check if pywal cache exists: `ls ~/.cache/wal/`
|
|
- Manually reload: `~/pywal.sh`
|
|
|
|
### Caelestia colors not updating
|
|
```bash
|
|
# Restart Caelestia daemon
|
|
pkill caelestia && sleep 0.5 && caelestia shell -d &
|
|
```
|
|
|
|
### Wallpaper not showing on startup
|
|
```bash
|
|
# Restore wallpaper with waypaper
|
|
waypaper restore
|
|
|
|
# Manually restart swaybg if needed
|
|
pkill swaybg && swaybg &
|
|
```
|
|
|
|
---
|
|
|
|
## Note
|
|
|
|
Everything is still in progress. Feel free to customize and adjust to your needs!
|