mirror of
https://github.com/duma799/hyprduma-config.git
synced 2026-05-14 06:31:00 +00:00
Reorganize repo into config/, scripts/, and docs/ directories
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
# Hyprland Keybinds Cheatsheet
|
||||
|
||||
## Quick Reference Guide
|
||||
|
||||
### 🎮 System Controls
|
||||
|
||||
| Keybind | Action |
|
||||
|---------|--------|
|
||||
| `SUPER + C` | Close window |
|
||||
| `SUPER + P` | Poweroff |
|
||||
| `SUPER + RETURN` | Wlogout |
|
||||
| `SUPER + M` | Exit Hyprland |
|
||||
| `SUPER + L` | Lock screen |
|
||||
| `SUPER + Z` | Toggle floating |
|
||||
| `SUPER + X` | Fullscreen |
|
||||
| `SUPER + O` | Toggle split direction |
|
||||
|
||||
---
|
||||
|
||||
### 🚀 Applications
|
||||
|
||||
| Keybind | Application |
|
||||
|---------|-------------|
|
||||
| `SUPER + Q` | Terminal |
|
||||
| `SUPER + F` | File Manager |
|
||||
| `SUPER + B` | Browser |
|
||||
| `SUPER + T` | Telegram |
|
||||
| `SUPER + V` | VSCode |
|
||||
| `SUPER + S` | Spotify |
|
||||
| `SUPER + W` | Waypaper |
|
||||
| `SUPER + R` | App Launcher |
|
||||
| `SUPER + SHIFT + S` | Screenshot |
|
||||
| `CTRL + SHIFT + ESCAPE` | Task Manager |
|
||||
|
||||
---
|
||||
|
||||
### 🪟 Window Management (ALT-based)
|
||||
|
||||
| Keybind | Action |
|
||||
|---------|--------|
|
||||
| `ALT + ←/→/↑/↓` | Move focus |
|
||||
| `ALT + TAB` | Cycle windows |
|
||||
| `SUPER + TAB` | Cycle windows backwards |
|
||||
| `ALT + CTRL + ←/→/↑/↓` | Resize window |
|
||||
| `ALT + SHIFT + ←/→/↑/↓` | Move window |
|
||||
|
||||
---
|
||||
|
||||
### 🗂️ Workspace Management (SUPER-based)
|
||||
|
||||
#### Switch Workspace
|
||||
| Keybind | Action |
|
||||
|---------|--------|
|
||||
| `SUPER + [1-9, 0]` | Go to workspace 1-10 |
|
||||
| `SUPER + ←` | Previous workspace |
|
||||
| `SUPER + →` | Next workspace |
|
||||
| `SUPER + Scroll Up/Down` | Cycle workspaces |
|
||||
|
||||
#### Move Window to Workspace
|
||||
| Keybind | Action |
|
||||
|---------|--------|
|
||||
| `SUPER + SHIFT + [1-9, 0]` | Move & follow |
|
||||
| `SUPER + SHIFT + ←/→` | Move to prev/next & follow |
|
||||
| `SUPER + CTRL + [1-9, 0]` | Move silently (don't follow) |
|
||||
| `SUPER + CTRL + ←/→` | Move to prev/next silently |
|
||||
|
||||
---
|
||||
|
||||
### 🖱️ Mouse Actions
|
||||
|
||||
| Action | Function |
|
||||
|--------|----------|
|
||||
| `SUPER + Left Click + Drag` | Move window |
|
||||
| `SUPER + Right Click + Drag` | Resize window |
|
||||
| `SUPER + Scroll` | Switch workspace |
|
||||
|
||||
---
|
||||
|
||||
### 🎵 Multimedia Keys
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `XF86AudioRaiseVolume` | Volume up (5%) |
|
||||
| `XF86AudioLowerVolume` | Volume down (5%) |
|
||||
| `XF86AudioMute` | Toggle mute |
|
||||
| `XF86AudioMicMute` | Toggle mic mute |
|
||||
| `XF86MonBrightnessUp` | Brightness up |
|
||||
| `XF86MonBrightnessDown` | Brightness down |
|
||||
| `XF86AudioNext` | Next track |
|
||||
| `XF86AudioPrev` | Previous track |
|
||||
| `XF86AudioPlay/Pause` | Play/Pause |
|
||||
|
||||
---
|
||||
|
||||
### 👆 Touchpad Gestures
|
||||
|
||||
| Gesture | Action |
|
||||
|---------|--------|
|
||||
| 3-finger swipe horizontal | Switch workspace |
|
||||
| 3-finger swipe vertical | Toggle fullscreen |
|
||||
|
||||
---
|
||||
|
||||
## Pro Tips
|
||||
|
||||
### Window Management Workflow
|
||||
1. **Focus a window**: `ALT + Arrow Keys`
|
||||
2. **Resize it**: `ALT + CTRL + Arrow Keys`
|
||||
3. **Move it**: `ALT + SHIFT + Arrow Keys`
|
||||
4. **Send to another workspace**: `SUPER + CTRL + [number]`
|
||||
5. **Switch workspace**: `SUPER + [number]`
|
||||
|
||||
### Multi-Monitor Workflow
|
||||
- Workspaces 1-4 are on external monitor (HDMI-A-1)
|
||||
- Workspace 5 is on laptop screen (eDP-1)
|
||||
- Use `SUPER + SHIFT + [number]` to throw windows between monitors
|
||||
|
||||
### Screenshots
|
||||
1. Press `SUPER + SHIFT + S`
|
||||
2. Select area with mouse
|
||||
3. Find in `~/Pictures/Screenshots/Screenshot_YYYY-MM-DD_HH:MM:SS.png`
|
||||
|
||||
---
|
||||
|
||||
## Keyboard Layout Toggle
|
||||
|
||||
| Keybind | Action |
|
||||
|---------|--------|
|
||||
| `ALT + SHIFT` | Switch between US and Russian |
|
||||
|
||||
---
|
||||
@@ -0,0 +1,247 @@
|
||||
# Pywal Integration Guide
|
||||
|
||||
Dynamic color theming based on your wallpaper, applied system-wide to Hyprland, Caelestia, Kitty, GTK apps, Firefox, and more.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- `python-pywal` installed (`sudo pacman -S python-pywal`)
|
||||
- Hyprland window manager
|
||||
- Caelestia shell (optional, for full integration)
|
||||
|
||||
## Setup
|
||||
|
||||
If you used the auto-installer (`install.py`), pywal is already configured. For manual setup:
|
||||
|
||||
### 1. Install Templates
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.config/wal/templates
|
||||
cp -r wal/templates/* ~/.config/wal/templates/
|
||||
|
||||
# Verify
|
||||
ls ~/.config/wal/templates/
|
||||
# Should show: hyprland-colors.conf, caelestia-scheme.json
|
||||
```
|
||||
|
||||
### 2. Install Scripts
|
||||
|
||||
```bash
|
||||
cp pywal.sh ~/.config/hypr/
|
||||
cp pywal.sh ~/pywal.sh
|
||||
chmod +x ~/.config/hypr/pywal.sh ~/pywal.sh
|
||||
```
|
||||
|
||||
### 3. Configure Kitty Terminal
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.config/kitty
|
||||
cp kitty/kitty.conf ~/.config/kitty/
|
||||
|
||||
# Verify correct filename reference
|
||||
grep "colors-kitty" ~/.config/kitty/kitty.conf
|
||||
# Should show: include ~/.cache/wal/colors-kitty.conf
|
||||
```
|
||||
|
||||
### 4. Configure Shell
|
||||
|
||||
Add to `~/.bashrc` (or `~/.zshrc`):
|
||||
|
||||
```bash
|
||||
# Import pywal colorscheme from cache
|
||||
(cat ~/.cache/wal/sequences &)
|
||||
|
||||
# To add support for TTYs (optional)
|
||||
source ~/.cache/wal/colors-tty.sh 2>/dev/null
|
||||
```
|
||||
|
||||
### 5. Generate Initial Colors
|
||||
|
||||
```bash
|
||||
wal -i wallpapers/sakura.jpg && ~/pywal.sh
|
||||
source ~/.bashrc
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Using Waypaper GUI (Recommended)
|
||||
|
||||
Press `Super+W` to open waypaper. Select a wallpaper and colors auto-apply via the waypaper hook.
|
||||
|
||||
### Command Line
|
||||
|
||||
```bash
|
||||
# Dark theme (default)
|
||||
~/pywal.sh ~/Pictures/wallpaper.jpg
|
||||
|
||||
# Light theme
|
||||
~/pywal.sh ~/Pictures/wallpaper.jpg light
|
||||
|
||||
# Switch mode (keep current wallpaper)
|
||||
~/pywal.sh "" light
|
||||
~/pywal.sh "" dark
|
||||
|
||||
# Refresh current theme
|
||||
~/pywal.sh
|
||||
```
|
||||
|
||||
### One-Liner
|
||||
|
||||
```bash
|
||||
wal -i /path/to/wallpaper.png && ~/pywal.sh
|
||||
```
|
||||
|
||||
## Light/Dark Theme
|
||||
|
||||
### Light Theme
|
||||
|
||||
Works best with bright wallpapers:
|
||||
|
||||
```bash
|
||||
wal -i /path/to/bright-wallpaper.png -l && ~/pywal.sh
|
||||
```
|
||||
|
||||
### Dark Theme (Default)
|
||||
|
||||
```bash
|
||||
wal -i /path/to/dark-wallpaper.png && ~/pywal.sh
|
||||
```
|
||||
|
||||
### Backend Options
|
||||
|
||||
Different backends generate different color palettes:
|
||||
|
||||
```bash
|
||||
wal -i /path/to/wallpaper.png --backend colorz # More vibrant
|
||||
wal -i /path/to/wallpaper.png --backend colorthief # Alternative palette
|
||||
wal -i /path/to/wallpaper.png --backend haishoku # Another option
|
||||
```
|
||||
|
||||
## What Gets Themed
|
||||
|
||||
| Component | What changes |
|
||||
|-----------|-------------|
|
||||
| **Hyprland** | Window borders (active gradient, inactive) |
|
||||
| **Caelestia Shell** | Material Design 3 color scheme, all UI elements |
|
||||
| **Kitty Terminal** | Background, foreground, all 16 colors |
|
||||
| **Bash/Zsh Shell** | Terminal color palette via sequences |
|
||||
| **GTK Apps** | Via `wal-gtk` (if installed) |
|
||||
| **Firefox** | Via `pywalfox` (if installed) |
|
||||
| **System** | Dark/light mode preference via gsettings |
|
||||
|
||||
## Optional Enhancements
|
||||
|
||||
### GTK Theme Support
|
||||
|
||||
```bash
|
||||
yay -S wal-gtk-theme-git
|
||||
# pywal.sh will automatically generate GTK themes
|
||||
```
|
||||
|
||||
### Firefox Theme Support
|
||||
|
||||
```bash
|
||||
yay -S python-pywalfox
|
||||
pywalfox install
|
||||
# Then install the Pywalfox extension from Firefox Add-ons
|
||||
```
|
||||
|
||||
### Qt Application Support
|
||||
|
||||
```bash
|
||||
yay -S qt5ct qt6ct kvantum
|
||||
echo "QT_QPA_PLATFORMTHEME=qt5ct" >> ~/.config/environment.d/qt.conf
|
||||
echo "QT_STYLE_OVERRIDE=kvantum" >> ~/.config/environment.d/qt.conf
|
||||
```
|
||||
|
||||
## Customization
|
||||
|
||||
### Border Colors
|
||||
|
||||
Edit `~/.config/wal/templates/hyprland-colors.conf`:
|
||||
|
||||
```conf
|
||||
general {
|
||||
col.active_border = rgba({color4.strip}ee) rgba({color6.strip}ee) 45deg
|
||||
col.inactive_border = rgba({color8.strip}aa)
|
||||
}
|
||||
```
|
||||
|
||||
Available variables: `{color0}` through `{color15}`, `{background}`, `{foreground}`, `{cursor}`
|
||||
|
||||
After editing, regenerate with `wal -R`.
|
||||
|
||||
### Caelestia Colors
|
||||
|
||||
Edit `~/.config/wal/templates/caelestia-scheme.json` to adjust Material Design 3 color mappings.
|
||||
|
||||
## How It Works
|
||||
|
||||
1. `wal -i wallpaper.png` generates colors and processes templates in `~/.config/wal/templates/`
|
||||
2. Generated files land in `~/.cache/wal/`
|
||||
3. `hyprland.conf` sources `~/.cache/wal/hyprland-colors.conf` for border colors
|
||||
4. `pywal.sh` copies the Caelestia scheme, reloads Hyprland, restarts Caelestia, reloads Kitty, and sets GTK/Firefox themes
|
||||
5. The waypaper hook (`waypaper-hook.sh`) runs this entire chain automatically on wallpaper change
|
||||
|
||||
## Files
|
||||
|
||||
```
|
||||
~/.config/wal/templates/
|
||||
├── hyprland-colors.conf # Template for Hyprland border colors
|
||||
└── caelestia-scheme.json # Template for Caelestia color scheme
|
||||
|
||||
~/.cache/wal/ # Generated by pywal
|
||||
├── hyprland-colors.conf # Sourced by hyprland.conf
|
||||
├── colors-kitty.conf # Included by kitty.conf
|
||||
├── caelestia-scheme.json # Copied to Caelestia state dir
|
||||
├── sequences # Loaded by bashrc
|
||||
└── colors.json # Full color palette
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Colors not applying to terminals
|
||||
|
||||
1. Check bashrc has pywal lines: `grep pywal ~/.bashrc`
|
||||
2. Check cache exists: `ls ~/.cache/wal/sequences`
|
||||
3. Open a **new** terminal (existing ones need `source ~/.bashrc`)
|
||||
|
||||
### Kitty colors wrong
|
||||
|
||||
```bash
|
||||
# Must reference colors-kitty.conf (not kitty-colors.conf)
|
||||
grep "wal" ~/.config/kitty/kitty.conf
|
||||
|
||||
# Fix if wrong
|
||||
sed -i 's/kitty-colors.conf/colors-kitty.conf/g' ~/.config/kitty/kitty.conf
|
||||
killall -SIGUSR1 kitty
|
||||
```
|
||||
|
||||
### Caelestia not updating
|
||||
|
||||
```bash
|
||||
pkill caelestia && sleep 0.5 && caelestia shell -d &
|
||||
```
|
||||
|
||||
### Hyprland fails to start (source file not found)
|
||||
|
||||
Run `wal -i /path/to/wallpaper.png` once to generate initial colors before starting Hyprland.
|
||||
|
||||
### Complete Reset
|
||||
|
||||
```bash
|
||||
rm -rf ~/.cache/wal
|
||||
mkdir -p ~/.config/wal/templates
|
||||
cp ~/.config/hypr/wal/templates/* ~/.config/wal/templates/
|
||||
wal -i /path/to/wallpaper.png && ~/pywal.sh
|
||||
source ~/.bashrc
|
||||
```
|
||||
|
||||
### Kitty Opacity for Light Themes
|
||||
|
||||
If light theme is too transparent, adjust in `~/.config/kitty/kitty.conf`:
|
||||
|
||||
```conf
|
||||
background_opacity 0.95
|
||||
```
|
||||
|
||||
Reload: `killall -SIGUSR1 kitty`
|
||||
+390
@@ -0,0 +1,390 @@
|
||||
# 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
|
||||
- Transparency with configurable opacity (active: 0.985, inactive: 0.85)
|
||||
- Smooth custom animations with bezier curves
|
||||
- **Pywal integration** - Dynamic system-wide colors from wallpaper
|
||||
- **Caelestia shell** integration for dynamic theming and AI features
|
||||
|
||||
### 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
|
||||
- Auto-detected monitor configuration (works with any setup out of the box)
|
||||
- Workspaces 1-4 on external monitor, 5-10 on laptop screen
|
||||
- **Monitor handler** - automatically restores wallpaper and Caelestia shell after config reload
|
||||
|
||||
### Automation
|
||||
- **Auto-installer** - interactive Python installer handles the entire setup
|
||||
- **Waypaper hook** - pywal colors auto-apply when wallpaper changes via waypaper GUI
|
||||
- **Monitor handler** - listens for Hyprland config reloads and restarts swaybg/Caelestia
|
||||
- **Fastfetch config** - custom system info display with ASCII art
|
||||
|
||||
---
|
||||
|
||||
## Quick Install
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/duma799/hyprduma-config/master/install.sh | bash
|
||||
```
|
||||
|
||||
Or manually:
|
||||
```bash
|
||||
git clone https://github.com/duma799/hyprduma-config.git ~/Downloads/hyprduma-config
|
||||
python3 ~/Downloads/hyprduma-config/install.py
|
||||
```
|
||||
|
||||
The interactive installer handles everything:
|
||||
1. AUR helpers (yay/paru)
|
||||
2. Required packages via pacman
|
||||
3. Caelestia shell
|
||||
4. Config backup and installation
|
||||
5. Pywal integration (templates, scripts, bashrc, initial colors)
|
||||
6. Waypaper hook for automatic color application
|
||||
7. Monitor handler for config reload resilience
|
||||
8. Fastfetch config with custom ASCII art
|
||||
|
||||
---
|
||||
|
||||
## Manual Installation Guide
|
||||
|
||||
If you prefer to install manually instead of using the auto-installer, follow these steps.
|
||||
|
||||
### Prerequisites: Install AUR Helpers (Optional but Recommended)
|
||||
|
||||
```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
|
||||
sudo pacman -S hyprland hyprlock hyprshot wlogout kitty waybar swaybg waypaper wofi nautilus wireplumber pipewire-pulse brightnessctl playerctl adwaita-cursors python-pywal fastfetch
|
||||
```
|
||||
|
||||
### Step 2: Install Caelestia Shell (Recommended)
|
||||
|
||||
```bash
|
||||
yay -S caelestia-shell
|
||||
```
|
||||
|
||||
### Step 3: Clone and Install Config
|
||||
|
||||
```bash
|
||||
cd ~/Downloads
|
||||
git clone https://github.com/duma799/hyprduma-config.git
|
||||
cd hyprduma-config
|
||||
|
||||
# Backup existing configs
|
||||
[ -d ~/.config/hypr ] && mv ~/.config/hypr ~/.config/hypr.backup
|
||||
[ -d ~/.config/waybar ] && mv ~/.config/waybar ~/.config/waybar.backup
|
||||
[ -d ~/.config/wlogout ] && mv ~/.config/wlogout ~/.config/wlogout.backup
|
||||
|
||||
# Install Hyprland config
|
||||
mkdir -p ~/.config/hypr
|
||||
cp hyprland.conf ~/.config/hypr/
|
||||
cp -r wallpapers ~/.config/hypr/
|
||||
mkdir -p ~/Pictures/Screenshots
|
||||
```
|
||||
|
||||
### Step 4: Install Scripts
|
||||
|
||||
```bash
|
||||
# Copy all scripts
|
||||
cp pywal.sh sync-caelestia-wallpaper.sh waypaper-hook.sh ~/.config/hypr/
|
||||
cp monitor-handler.py ~/.config/hypr/
|
||||
chmod +x ~/.config/hypr/pywal.sh ~/.config/hypr/sync-caelestia-wallpaper.sh ~/.config/hypr/waypaper-hook.sh
|
||||
|
||||
# Copy pywal.sh to home for convenience
|
||||
cp pywal.sh ~/pywal.sh && chmod +x ~/pywal.sh
|
||||
```
|
||||
|
||||
### Step 5: Configure Your Applications
|
||||
|
||||
Edit `~/.config/hypr/hyprland.conf` and adjust the app variables (lines 28-34):
|
||||
|
||||
```
|
||||
$terminal = kitty
|
||||
$fileManager = nautilus
|
||||
$menu = wofi --show drun
|
||||
$telegram = Telegram
|
||||
$spotify = spotify
|
||||
$vscode = code
|
||||
$browser = your-browser
|
||||
```
|
||||
|
||||
### Step 6: Install Pywal Integration
|
||||
|
||||
```bash
|
||||
# Install pywal templates
|
||||
mkdir -p ~/.config/wal/templates
|
||||
cp -r wal/templates/* ~/.config/wal/templates/
|
||||
|
||||
# Setup Kitty terminal
|
||||
mkdir -p ~/.config/kitty
|
||||
cp kitty/kitty.conf ~/.config/kitty/
|
||||
|
||||
# Add pywal to bashrc
|
||||
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
|
||||
wal -i wallpapers/sakura.jpg && ~/pywal.sh
|
||||
source ~/.bashrc
|
||||
```
|
||||
|
||||
### Step 7: Configure Waypaper Hook
|
||||
|
||||
The waypaper hook automatically applies pywal colors whenever you change wallpaper through the waypaper GUI.
|
||||
|
||||
```bash
|
||||
# Set waypaper-hook.sh as waypaper's post_command
|
||||
mkdir -p ~/.config/waypaper
|
||||
# Add to ~/.config/waypaper/config.ini under [Settings]:
|
||||
# post_command = /home/YOUR_USER/.config/hypr/waypaper-hook.sh
|
||||
```
|
||||
|
||||
### Step 8: Install Fastfetch Config (Optional)
|
||||
|
||||
```bash
|
||||
cp -r fastfetch ~/.config/fastfetch
|
||||
|
||||
# Fix hardcoded paths for your user
|
||||
sed -i "s|/home/duma/|$HOME/|g" ~/.config/fastfetch/config.jsonc
|
||||
```
|
||||
|
||||
### Step 9: Start Hyprland
|
||||
|
||||
```bash
|
||||
# From TTY
|
||||
Hyprland
|
||||
|
||||
# Or if already running, reload config
|
||||
# Press SUPER + SHIFT + R
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Post-Installation
|
||||
|
||||
### Setting Wallpaper
|
||||
|
||||
**Using waypaper GUI (recommended):**
|
||||
- Press `Super+W` to open waypaper
|
||||
- Select a wallpaper - the **waypaper hook** automatically runs pywal and syncs colors to all components (Hyprland, Caelestia, Kitty, GTK, Firefox)
|
||||
|
||||
**Using command line:**
|
||||
```bash
|
||||
wal -i /path/to/wallpaper.png && ~/pywal.sh
|
||||
```
|
||||
|
||||
**How wallpaper management works:**
|
||||
- **swaybg** is the wallpaper backend (not hyprpaper)
|
||||
- **waypaper** GUI sets the wallpaper and triggers `waypaper-hook.sh` as a post-command
|
||||
- The hook runs pywal, syncs Caelestia colors/wallpaper, reloads Hyprland, and updates GTK/Firefox themes
|
||||
- **sync-caelestia-wallpaper.sh** syncs Caelestia's wallpaper reference with swaybg on startup
|
||||
- **monitor-handler.py** listens for config reloads and restores swaybg/Caelestia if they get killed
|
||||
|
||||
### System-Wide Theme Syncing
|
||||
|
||||
The `pywal.sh` script supports dark/light mode and system-wide theme synchronization (GTK, Firefox, Qt). See **[PYWAL-SETUP.md](PYWAL-SETUP.md)** for the full guide including optional enhancements, light/dark theme switching, and backend options.
|
||||
|
||||
```bash
|
||||
~/pywal.sh ~/Pictures/wallpaper.jpg # Dark theme (default)
|
||||
~/pywal.sh ~/Pictures/wallpaper.jpg light # Light theme
|
||||
~/pywal.sh "" dark # Switch mode, keep wallpaper
|
||||
~/pywal.sh # Refresh current theme
|
||||
```
|
||||
|
||||
### Monitor Configuration
|
||||
|
||||
The default config uses auto-detection which works with any monitor setup:
|
||||
|
||||
```
|
||||
monitor = , preferred, auto, 1
|
||||
```
|
||||
|
||||
To customize for specific monitors, edit `~/.config/hypr/hyprland.conf` (line 4):
|
||||
|
||||
```bash
|
||||
# Example: dual monitor with specific resolution
|
||||
monitor = eDP-1, 1920x1080@144, 1920x0, 1
|
||||
monitor = HDMI-A-1, 1920x1080@144, 0x0, 1, transform, 2
|
||||
```
|
||||
|
||||
Workspace assignment (lines 7-17) distributes workspaces 1-4 to the external monitor and 5-10 to the laptop screen.
|
||||
|
||||
### Monitor Handler
|
||||
|
||||
The `monitor-handler.py` script runs in the background and listens for Hyprland config reloads. When a reload is detected, it checks if swaybg and Caelestia are still running, and restarts them if needed. This prevents losing your wallpaper or shell after editing the config.
|
||||
|
||||
### Keyboard Layout
|
||||
|
||||
Default is US/RU with ALT+SHIFT toggle. To change, edit the input section in `~/.config/hypr/hyprland.conf`:
|
||||
|
||||
```
|
||||
kb_layout = us, ru # Change to your layouts
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
hyprduma-config/
|
||||
├── hyprland.conf # Main Hyprland configuration
|
||||
├── pywal.sh # Apply pywal colors to all components
|
||||
├── waypaper-hook.sh # Auto-apply colors on wallpaper change
|
||||
├── sync-caelestia-wallpaper.sh # Sync swaybg wallpaper to Caelestia
|
||||
├── monitor-handler.py # Restart wallpaper/shell after config reload
|
||||
├── install.py # Interactive auto-installer
|
||||
├── install.sh # Curl one-liner bootstrap script
|
||||
├── wallpapers/ # Included wallpapers
|
||||
├── wal/templates/ # Pywal templates for Hyprland & Caelestia
|
||||
├── kitty/kitty.conf # Kitty terminal config with pywal support
|
||||
├── fastfetch/ # Custom fastfetch config with ASCII art
|
||||
├── KEYBINDS.md # Complete keybindings reference
|
||||
└── PYWAL-SETUP.md # Detailed pywal integration guide
|
||||
```
|
||||
|
||||
## 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 28-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 after config reload
|
||||
The monitor handler should restore it automatically. If not:
|
||||
```bash
|
||||
# Check if monitor-handler is running
|
||||
pgrep -f monitor-handler.py
|
||||
|
||||
# Restart it if needed
|
||||
python3 ~/.config/hypr/monitor-handler.py &
|
||||
|
||||
# Or manually restore
|
||||
waypaper --restore
|
||||
```
|
||||
|
||||
### Waypaper hook not applying colors
|
||||
```bash
|
||||
# Check if hook is registered
|
||||
grep post_command ~/.config/waypaper/config.ini
|
||||
|
||||
# Check hook logs
|
||||
cat /tmp/waypaper-hook.log
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Note
|
||||
|
||||
Everything is still in progress. Feel free to customize and adjust to your needs!
|
||||
Reference in New Issue
Block a user