mirror of
https://github.com/duma799/hyprduma-config.git
synced 2026-05-14 06:31:00 +00:00
Merging Test branch
Testing
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# Pywal Colors Integration for Hyprland & Caelestia
|
||||
|
||||
This setup automatically applies pywal-generated colors to both Hyprland borders and Caelestia shell.
|
||||
|
||||
## Files Created
|
||||
|
||||
1. **`~/.config/wal/templates/hyprland-colors.conf`** - Template for Hyprland border colors
|
||||
2. **`~/.config/wal/templates/caelestia-scheme.json`** - Template for Caelestia color scheme
|
||||
3. **`~/.config/hypr/apply-pywal-colors.sh`** - Script to apply colors to both systems
|
||||
|
||||
## How It Works
|
||||
|
||||
- When you run `wal -i /path/to/wallpaper`, pywal automatically processes the templates
|
||||
- The generated files are placed in `~/.cache/wal/`
|
||||
- Hyprland sources `~/.cache/wal/hyprland-colors.conf` for border colors
|
||||
- Caelestia reads from `~/.local/state/caelestia/scheme.json` for its color scheme
|
||||
|
||||
## Usage
|
||||
|
||||
### First Time Setup
|
||||
Already done! Your Hyprland config now sources pywal colors automatically.
|
||||
|
||||
### Generate Colors from a Wallpaper
|
||||
```bash
|
||||
# Generate colors from a wallpaper
|
||||
wal -i /path/to/your/wallpaper.png
|
||||
|
||||
# Apply colors to Hyprland and Caelestia
|
||||
~/.config/hypr/apply-pywal-colors.sh
|
||||
```
|
||||
|
||||
### Regenerate from Current Wallpaper
|
||||
```bash
|
||||
# Regenerate colors from the current cached wallpaper
|
||||
wal -R
|
||||
|
||||
# Apply colors
|
||||
~/.config/hypr/apply-pywal-colors.sh
|
||||
```
|
||||
|
||||
### Quick Apply
|
||||
```bash
|
||||
# One-liner to generate and apply colors
|
||||
wal -i /path/to/wallpaper.png && ~/.config/hypr/apply-pywal-colors.sh
|
||||
```
|
||||
|
||||
## What Gets Colored
|
||||
|
||||
### Hyprland
|
||||
- Active window border (gradient using colors 4 and 6)
|
||||
- Inactive window border (using color 8)
|
||||
|
||||
### Caelestia Shell
|
||||
- All Material Design 3 colors
|
||||
- Terminal colors (term0-term15)
|
||||
- Background, surface, and accent colors
|
||||
- Complete color scheme based on wallpaper
|
||||
|
||||
## Customization
|
||||
|
||||
### Modify Border Colors
|
||||
Edit `~/.config/wal/templates/hyprland-colors.conf` to use different pywal colors:
|
||||
- Available variables: `{color0}` through `{color15}`, `{background}`, `{foreground}`, `{cursor}`
|
||||
|
||||
### Modify Caelestia Colors
|
||||
Edit `~/.config/wal/templates/caelestia-scheme.json` to adjust color mappings.
|
||||
|
||||
After editing templates, run `wal -R` to regenerate colors.
|
||||
|
||||
## Automation
|
||||
|
||||
To automatically apply pywal colors on wallpaper change, you can add this to your autostart:
|
||||
```bash
|
||||
# In your ~/.config/hypr/hyprland.conf
|
||||
exec-once = ~/.config/hypr/apply-pywal-colors.sh
|
||||
```
|
||||
|
||||
Or create a wallpaper script that calls pywal automatically.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Colors not updating in Hyprland
|
||||
```bash
|
||||
# Reload Hyprland config
|
||||
hyprctl reload
|
||||
```
|
||||
|
||||
### Colors not updating in Caelestia
|
||||
```bash
|
||||
# Restart Caelestia shell
|
||||
pkill caelestia && sleep 0.5 && caelestia shell -d &
|
||||
```
|
||||
|
||||
### Check generated files
|
||||
```bash
|
||||
# View generated Hyprland colors
|
||||
cat ~/.cache/wal/hyprland-colors.conf
|
||||
|
||||
# View generated Caelestia scheme
|
||||
cat ~/.cache/wal/caelestia-scheme.json
|
||||
```
|
||||
+213
@@ -0,0 +1,213 @@
|
||||
# Pywal Color Integration Setup
|
||||
|
||||
This dotfiles repository includes pywal integration for dynamic color theming based on your wallpaper. The setup works with both Hyprland borders and Caelestia shell.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- `pywal` (python-pywal) installed
|
||||
- Hyprland window manager
|
||||
- Caelestia shell (optional, for full integration)
|
||||
|
||||
## Installation
|
||||
|
||||
### 1. Install pywal
|
||||
|
||||
```bash
|
||||
# Arch Linux
|
||||
sudo pacman -S python-pywal
|
||||
|
||||
# Or via pip
|
||||
pip install pywal
|
||||
```
|
||||
|
||||
### 2. Copy Template Files
|
||||
|
||||
Copy the pywal template files to your config directory:
|
||||
|
||||
```bash
|
||||
# Create templates directory if it doesn't exist
|
||||
mkdir -p ~/.config/wal/templates
|
||||
|
||||
# Copy Hyprland border colors template
|
||||
cp wal/templates/hyprland-colors.conf ~/.config/wal/templates/
|
||||
|
||||
# Copy Caelestia color scheme template (if using Caelestia)
|
||||
cp wal/templates/caelestia-scheme.json ~/.config/wal/templates/
|
||||
```
|
||||
|
||||
### 3. Copy the Apply Script
|
||||
|
||||
```bash
|
||||
# Copy the color application script to your hypr config
|
||||
cp apply-pywal-colors.sh ~/.config/hypr/
|
||||
|
||||
# Make it executable
|
||||
chmod +x ~/.config/hypr/apply-pywal-colors.sh
|
||||
```
|
||||
|
||||
### 4. Link Hyprland Config
|
||||
|
||||
If you haven't already, link the Hyprland config:
|
||||
|
||||
```bash
|
||||
# Backup existing config if needed
|
||||
mv ~/.config/hypr/hyprland.conf ~/.config/hypr/hyprland.conf.backup
|
||||
|
||||
# Link the new config
|
||||
ln -s ~/hyprduma-config/hyprland.conf ~/.config/hypr/hyprland.conf
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Generate Colors from Wallpaper
|
||||
|
||||
```bash
|
||||
# Generate color palette from a wallpaper
|
||||
wal -i /path/to/your/wallpaper.png
|
||||
|
||||
# Apply the generated colors to Hyprland and Caelestia
|
||||
~/.config/hypr/apply-pywal-colors.sh
|
||||
```
|
||||
|
||||
### Quick Apply (One Command)
|
||||
|
||||
```bash
|
||||
# Generate and apply in one go
|
||||
wal -i /path/to/wallpaper.png && ~/.config/hypr/apply-pywal-colors.sh
|
||||
```
|
||||
|
||||
### Regenerate from Current Wallpaper
|
||||
|
||||
```bash
|
||||
# Regenerate colors from cached wallpaper
|
||||
wal -R && ~/.config/hypr/apply-pywal-colors.sh
|
||||
```
|
||||
|
||||
## What Gets Themed
|
||||
|
||||
### Hyprland
|
||||
- **Active window borders**: Gradient using pywal colors 4 and 6
|
||||
- **Inactive window borders**: Using pywal color 8 (muted gray tone)
|
||||
|
||||
### Caelestia Shell (if installed)
|
||||
- Complete Material Design 3 color scheme
|
||||
- Terminal colors (color0-color15)
|
||||
- Background, surface, and accent colors
|
||||
- All UI elements adapt to wallpaper colors
|
||||
|
||||
## Files Structure
|
||||
|
||||
```
|
||||
hyprduma-config/
|
||||
├── hyprland.conf # Main config with pywal integration
|
||||
├── apply-pywal-colors.sh # Script to apply colors
|
||||
└── wal/
|
||||
└── templates/
|
||||
├── hyprland-colors.conf # Hyprland border colors template
|
||||
└── caelestia-scheme.json # Caelestia color scheme template
|
||||
```
|
||||
|
||||
## Customization
|
||||
|
||||
### Changing Border Color Mapping
|
||||
|
||||
Edit `~/.config/wal/templates/hyprland-colors.conf`:
|
||||
|
||||
```conf
|
||||
# Example: Use different colors for borders
|
||||
general {
|
||||
col.active_border = rgba({color2.strip}ee) rgba({color5.strip}ee) 45deg
|
||||
col.inactive_border = rgba({color0.strip}aa)
|
||||
}
|
||||
```
|
||||
|
||||
Available variables:
|
||||
- `{color0}` through `{color15}` - Palette colors
|
||||
- `{background}` - Background color
|
||||
- `{foreground}` - Foreground/text color
|
||||
- `{cursor}` - Cursor color
|
||||
|
||||
After editing, regenerate colors with `wal -R`.
|
||||
|
||||
### Modifying Caelestia Colors
|
||||
|
||||
Edit `~/.config/wal/templates/caelestia-scheme.json` to change how pywal colors map to Caelestia's Material Design 3 scheme.
|
||||
|
||||
## Automation
|
||||
|
||||
### Auto-apply on Hyprland Startup
|
||||
|
||||
The colors are automatically loaded via the `source` directive in `hyprland.conf`. However, to regenerate on startup:
|
||||
|
||||
```bash
|
||||
# Add to hyprland.conf autostart section
|
||||
exec-once = wal -R -n
|
||||
```
|
||||
|
||||
### Integrate with Wallpaper Managers
|
||||
|
||||
If using `waypaper`, `hyprpaper`, or similar:
|
||||
|
||||
```bash
|
||||
# Create a wrapper script that sets wallpaper and applies colors
|
||||
#!/bin/bash
|
||||
# Set wallpaper with your tool of choice
|
||||
hyprctl hyprpaper wallpaper "eDP-1,/path/to/wallpaper.png"
|
||||
|
||||
# Generate and apply pywal colors
|
||||
wal -i /path/to/wallpaper.png && ~/.config/hypr/apply-pywal-colors.sh
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Colors not updating in Hyprland
|
||||
|
||||
```bash
|
||||
# Reload Hyprland configuration
|
||||
hyprctl reload
|
||||
```
|
||||
|
||||
### Colors not updating in Caelestia
|
||||
|
||||
```bash
|
||||
# Restart Caelestia shell
|
||||
pkill caelestia && sleep 0.5 && caelestia shell -d &
|
||||
```
|
||||
|
||||
### Hyprland fails to start (source file not found)
|
||||
|
||||
If pywal hasn't been run yet, the source file won't exist. Either:
|
||||
|
||||
1. Run `wal -i /path/to/wallpaper.png` once to generate initial colors
|
||||
2. Or comment out the `source` line in `hyprland.conf` until you set up pywal
|
||||
|
||||
### Check Generated Files
|
||||
|
||||
```bash
|
||||
# View generated Hyprland colors
|
||||
cat ~/.cache/wal/hyprland-colors.conf
|
||||
|
||||
# View generated Caelestia scheme
|
||||
cat ~/.cache/wal/caelestia-scheme.json
|
||||
|
||||
# View pywal color palette
|
||||
cat ~/.cache/wal/colors.json
|
||||
```
|
||||
|
||||
## Pywal Backend Options
|
||||
|
||||
Pywal supports different color extraction backends:
|
||||
|
||||
```bash
|
||||
# Use imagemagick (default)
|
||||
wal -i /path/to/wallpaper.png
|
||||
|
||||
# Use colorz (more vibrant colors)
|
||||
wal -i /path/to/wallpaper.png --backend colorz
|
||||
|
||||
# Use colorthief
|
||||
wal -i /path/to/wallpaper.png --backend colorthief
|
||||
|
||||
# Use haishoku
|
||||
wal -i /path/to/wallpaper.png --backend haishoku
|
||||
```
|
||||
@@ -5,15 +5,13 @@ Personal Hyprland configuration focused on productivity and ergonomics.
|
||||
## Features
|
||||
|
||||
### Enhanced Keybindings
|
||||
- See in KEYBINDS.md (link below)
|
||||
- **[KEYBINDS.md](KEYBINDS.md)** - Complete keybindings reference
|
||||
|
||||
### Visual & UX
|
||||
- Minimal gaps (3.5px/4.5px) for space efficiency
|
||||
- Blur effects on waybar (in progress)
|
||||
- Minimal gaps (10px/40px) for space efficiency
|
||||
- Blur effects and transparency
|
||||
- Smooth custom animations with bezier curves
|
||||
- Automatic floating for file pickers and dialogs (in progress)
|
||||
- Picture-in-Picture auto-positioning (in progress)
|
||||
- **Pywal integration** - Dynamic colors from wallpaper (optional)
|
||||
|
||||
### Input
|
||||
- 3-finger gestures (horizontal: workspace, vertical: fullscreen)
|
||||
@@ -24,25 +22,30 @@ Personal Hyprland configuration focused on productivity and ergonomics.
|
||||
### Display Setup
|
||||
- Dual monitor configuration (HDMI-A-1 flipped + eDP-1)
|
||||
- Workspaces 1-4 on external monitor
|
||||
- Workspace 5 on laptop screen
|
||||
- Workspaces 5-10 on laptop screen
|
||||
|
||||
## Quick Start
|
||||
---
|
||||
|
||||
## Complete Installation Guide
|
||||
|
||||
Follow these steps in order to install the complete setup from scratch.
|
||||
|
||||
### Step 1: Install Required Packages
|
||||
|
||||
### Requirements
|
||||
```bash
|
||||
# Core Hyprland components
|
||||
sudo pacman -S hyprland hyprlock hyprshot wlogout
|
||||
|
||||
# Terminal & Shell
|
||||
# Terminal emulator
|
||||
sudo pacman -S kitty
|
||||
|
||||
# Status bar & Wallpaper
|
||||
sudo pacman -S waybar swww waypaper
|
||||
# Status bar & Wallpaper manager
|
||||
sudo pacman -S waybar swaybg waypaper
|
||||
|
||||
# Application launcher
|
||||
sudo pacman -S wofi
|
||||
|
||||
# File manager (GNOME)
|
||||
# File manager
|
||||
sudo pacman -S nautilus
|
||||
|
||||
# Audio control (PipeWire)
|
||||
@@ -54,32 +57,248 @@ sudo pacman -S brightnessctl
|
||||
# Media player control
|
||||
sudo pacman -S playerctl
|
||||
|
||||
# Optional applications (adjust in config)
|
||||
sudo pacman -S telegram-desktop spotify code # Telegram, Spotify, VSCode
|
||||
yay -S google-chrome # Browser (AUR)
|
||||
|
||||
# Cursor theme
|
||||
sudo pacman -S adwaita-cursors
|
||||
|
||||
# Pywal for dynamic colors (optional but recommended)
|
||||
sudo pacman -S python-pywal
|
||||
|
||||
# Install rust/cargo if you don't have it (needed for Caelestia)
|
||||
sudo pacman -S rust
|
||||
```
|
||||
|
||||
### Installation
|
||||
### Step 2: Install Optional Applications
|
||||
|
||||
```bash
|
||||
# Backup existing config
|
||||
mv ~/.config/hypr ~/.config/hypr.backup
|
||||
# Applications referenced in config (adjust to your preference)
|
||||
sudo pacman -S telegram-desktop spotify code
|
||||
|
||||
# Create directory (if do not have already) and copy config
|
||||
# AUR packages (requires yay or another AUR helper)
|
||||
yay -S google-chrome zen-browser-bin # or your preferred browser
|
||||
```
|
||||
|
||||
### Step 3: Install Caelestia Shell (Optional)
|
||||
|
||||
Caelestia is a modern shell with AI features that integrates with the pywal theming system.
|
||||
|
||||
```bash
|
||||
# Install Caelestia via cargo
|
||||
cargo install caelestia
|
||||
|
||||
# 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 4: Clone This Repository
|
||||
|
||||
```bash
|
||||
# Clone to a temporary location
|
||||
cd ~/Downloads
|
||||
git clone https://github.com/yourusername/hyprduma-config.git
|
||||
cd hyprduma-config
|
||||
```
|
||||
|
||||
### Step 5: 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 6: Install Hyprland Configuration
|
||||
|
||||
```bash
|
||||
# Create Hypr config directory
|
||||
mkdir -p ~/.config/hypr
|
||||
cp hyprland.conf ~/.config/hypr/
|
||||
|
||||
# Adjust your apps (lines 26-32) HIGHLY RECOMMENDED!!!
|
||||
# Copy main config
|
||||
cp hyprland.conf ~/.config/hypr/
|
||||
cp hyprland-colors.conf ~/.config/hypr/
|
||||
|
||||
# Copy wallpapers (optional, for use with waypaper)
|
||||
mkdir -p ~/.config/hypr/wallpapers
|
||||
cp wallpapers/* ~/.config/hypr/wallpapers/
|
||||
|
||||
# Create screenshots directory (used by config)
|
||||
mkdir -p ~/Pictures/Screenshots
|
||||
```
|
||||
|
||||
### Step 7: Configure Your Applications
|
||||
|
||||
**IMPORTANT:** Edit the config file to set your preferred applications.
|
||||
|
||||
```bash
|
||||
# Open the config file
|
||||
nvim ~/.config/hypr/hyprland.conf
|
||||
|
||||
# Reload or restart Hyprland
|
||||
# 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 8: Install Pywal Integration (Optional but Recommended)
|
||||
|
||||
Pywal provides dynamic color theming based on your wallpaper.
|
||||
|
||||
```bash
|
||||
# Install pywal templates
|
||||
mkdir -p ~/.config/wal/templates
|
||||
cp -r wal/templates/* ~/.config/wal/templates/
|
||||
|
||||
# Copy the color application and wallpaper sync scripts
|
||||
cp apply-pywal-colors.sh ~/.config/hypr/
|
||||
cp sync-caelestia-wallpaper.sh ~/.config/hypr/
|
||||
chmod +x ~/.config/hypr/apply-pywal-colors.sh
|
||||
chmod +x ~/.config/hypr/sync-caelestia-wallpaper.sh
|
||||
|
||||
# Test pywal with a wallpaper
|
||||
wal -i /path/to/your/wallpaper.png
|
||||
|
||||
# Apply colors to Hyprland and Caelestia
|
||||
~/.config/hypr/apply-pywal-colors.sh
|
||||
```
|
||||
|
||||
**What this does:**
|
||||
- Generates a color scheme from your wallpaper
|
||||
- Applies colors to Hyprland window borders
|
||||
- Applies colors to Caelestia shell (if installed)
|
||||
- Restarts necessary services to apply changes
|
||||
|
||||
### Step 9: Install Waybar Config (If You Have It)
|
||||
|
||||
```bash
|
||||
# If you have waybar configs in this repo
|
||||
mkdir -p ~/.config/waybar
|
||||
cp -r waybar/* ~/.config/waybar/
|
||||
```
|
||||
|
||||
### Step 10: Install Wlogout Config (If You Have It)
|
||||
|
||||
```bash
|
||||
# If you have wlogout configs in this repo
|
||||
mkdir -p ~/.config/wlogout
|
||||
cp -r wlogout/* ~/.config/wlogout/
|
||||
```
|
||||
|
||||
### Step 11: 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)
|
||||
```
|
||||
|
||||
### Step 12: Set Up Autostart for Caelestia (Optional)
|
||||
|
||||
If you want Caelestia to start automatically with Hyprland:
|
||||
|
||||
```bash
|
||||
# Edit your Hyprland config
|
||||
nvim ~/.config/hypr/hyprland.conf
|
||||
|
||||
# Add this line in the Autostart section (around line 21-25):
|
||||
# exec-once = caelestia shell -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Post-Installation
|
||||
|
||||
### Setting Wallpaper with Pywal
|
||||
|
||||
```bash
|
||||
# Generate colors and apply them
|
||||
wal -i /path/to/wallpaper.png && ~/.config/hypr/apply-pywal-colors.sh
|
||||
|
||||
# Or use the wallpapers included in this repo
|
||||
wal -i ~/.config/hypr/wallpapers/sakura.jpg && ~/.config/hypr/apply-pywal-colors.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)
|
||||
|
||||
### 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
|
||||
- Ensure the script is executable: `chmod +x ~/.config/hypr/apply-pywal-colors.sh`
|
||||
- Check if pywal cache exists: `ls ~/.cache/wal/`
|
||||
- Manually reload: `~/.config/hypr/apply-pywal-colors.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.
|
||||
Everything is still in progress. Feel free to customize and adjust to your needs!
|
||||
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
# Script to apply pywal colors to Hyprland and Caelestia shell
|
||||
|
||||
# Generate pywal colors (this assumes you've already run 'wal -i /path/to/wallpaper')
|
||||
# The templates will be automatically processed
|
||||
|
||||
echo "Applying pywal colors to Hyprland and Caelestia..."
|
||||
|
||||
# Update Caelestia's wallpaper reference to match the one pywal used
|
||||
if [ -f ~/.cache/wal/wal ]; then
|
||||
WALLPAPER_PATH=$(cat ~/.cache/wal/wal)
|
||||
mkdir -p ~/.local/state/caelestia/wallpaper
|
||||
ln -sf "$WALLPAPER_PATH" ~/.local/state/caelestia/wallpaper/current
|
||||
echo "$WALLPAPER_PATH" > ~/.local/state/caelestia/wallpaper/path.txt
|
||||
echo "✓ Caelestia wallpaper reference updated"
|
||||
fi
|
||||
|
||||
# Copy the generated Caelestia scheme to the proper location
|
||||
if [ -f ~/.cache/wal/caelestia-scheme.json ]; then
|
||||
mkdir -p ~/.local/state/caelestia
|
||||
cp ~/.cache/wal/caelestia-scheme.json ~/.local/state/caelestia/scheme.json
|
||||
echo "✓ Caelestia colors updated"
|
||||
fi
|
||||
|
||||
# Reload Hyprland configuration
|
||||
if command -v hyprctl &> /dev/null; then
|
||||
hyprctl reload
|
||||
echo "✓ Hyprland configuration reloaded"
|
||||
fi
|
||||
|
||||
# Restart Caelestia shell to apply new colors
|
||||
if pgrep -x "caelestia" > /dev/null; then
|
||||
pkill caelestia
|
||||
sleep 0.5
|
||||
caelestia shell -d &
|
||||
echo "✓ Caelestia shell restarted"
|
||||
fi
|
||||
|
||||
echo "Done! Colors applied successfully."
|
||||
+35
-21
@@ -19,8 +19,9 @@ workspace = 9, monitor:eDP-1
|
||||
workspace = 10, monitor:eDP-1
|
||||
|
||||
# Autostart
|
||||
exec-once = waybar
|
||||
exec-once = hyprpaper
|
||||
exec-once = waypaper --restore # Restore wallpaper first
|
||||
exec-once = sleep 1 && ~/.config/hypr/sync-caelestia-wallpaper.sh # Sync Caelestia's wallpaper reference
|
||||
exec-once = sleep 1 && caelestia shell -d # Caelestia shell (replaces waybar) - start after wallpaper loads
|
||||
exec-once = hyprctl setcursor Adwaita 24 # Needed on NixOS
|
||||
exec-once = mkdir -p $HOME/Pictures/Screenshots
|
||||
|
||||
@@ -60,6 +61,9 @@ input {
|
||||
#gesture = 3, horizontal, workspace
|
||||
#gesture = 3, vertical, fullscreen
|
||||
|
||||
# Source pywal colors for borders
|
||||
source = ~/.cache/wal/hyprland-colors.conf
|
||||
|
||||
# General settings
|
||||
general {
|
||||
gaps_in = 10 # The space between windows
|
||||
@@ -72,9 +76,8 @@ general {
|
||||
|
||||
layout = dwindle
|
||||
|
||||
# Border colors (Caelestia style)
|
||||
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
col.inactive_border = rgba(595959aa)
|
||||
# Border colors are now sourced from pywal (see above)
|
||||
# If pywal colors not generated yet, fallback colors will be used
|
||||
}
|
||||
|
||||
# Decoration settings (borders)
|
||||
@@ -93,7 +96,7 @@ decoration {
|
||||
#}
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
enabled = false # Disabled for 144Hz performance
|
||||
size = 3
|
||||
passes = 1
|
||||
|
||||
@@ -111,21 +114,21 @@ animations {
|
||||
bezier = emphasizedDecel, 0.05, 0.7, 0.1, 1
|
||||
bezier = standard, 0.2, 0, 0, 1
|
||||
|
||||
# Animation configs
|
||||
animation = layersIn, 1, 5, emphasizedDecel, slide
|
||||
animation = layersOut, 1, 4, emphasizedAccel, slide
|
||||
animation = fadeLayers, 1, 5, standard
|
||||
# Animation configs - optimized for 144Hz
|
||||
animation = layersIn, 1, 3, emphasizedDecel, slide
|
||||
animation = layersOut, 1, 2, emphasizedAccel, slide
|
||||
animation = fadeLayers, 1, 3, standard
|
||||
|
||||
animation = windowsIn, 1, 5, emphasizedDecel
|
||||
animation = windowsOut, 1, 3, emphasizedAccel
|
||||
animation = windowsMove, 1, 7, standard
|
||||
animation = workspaces, 1, 5, standard
|
||||
animation = windowsIn, 1, 3, emphasizedDecel
|
||||
animation = windowsOut, 1, 2, emphasizedAccel
|
||||
animation = windowsMove, 1, 3, standard
|
||||
animation = workspaces, 1, 3, standard
|
||||
|
||||
animation = specialWorkspace, 1, 4, specialWorkSwitch, slidefadevert 15%
|
||||
animation = specialWorkspace, 1, 3, specialWorkSwitch, slidefadevert 15%
|
||||
|
||||
animation = fade, 1, 6, standard
|
||||
animation = fadeDim, 1, 6, standard
|
||||
animation = border, 1, 6, standard
|
||||
animation = fade, 1, 3, standard
|
||||
animation = fadeDim, 1, 3, standard
|
||||
animation = border, 1, 3, standard
|
||||
}
|
||||
|
||||
# Layouts
|
||||
@@ -142,6 +145,7 @@ misc {
|
||||
disable_splash_rendering = true
|
||||
key_press_enables_dpms = true
|
||||
mouse_move_enables_dpms = true
|
||||
vfr = true # Enable for proper 144Hz rendering
|
||||
vrr = 0
|
||||
}
|
||||
|
||||
@@ -185,8 +189,11 @@ windowrule = pin, title:^(Picture-in-Picture)$
|
||||
windowrule = move 69.5% 4%, title:^(Picture-in-Picture)$
|
||||
|
||||
# Layer Rules
|
||||
layerrule = blur, waybar
|
||||
layerrule = ignorealpha 0.5, waybar
|
||||
# Caelestia shell layer rules
|
||||
layerrule = animation fade, caelestia-(drawers|background)
|
||||
layerrule = blur, caelestia-drawers
|
||||
layerrule = ignorealpha 0.57, caelestia-drawers
|
||||
layerrule = noanim, caelestia-(border-exclusion|area-picker)
|
||||
|
||||
layerrule = blur, wofi
|
||||
layerrule = ignorealpha 0.2, wofi
|
||||
@@ -197,6 +204,12 @@ $mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
$mainMod2 = ALT # Secondary modifier for window management (ALT Button)
|
||||
$shiftMod = SHIFT
|
||||
|
||||
# Caelestia launcher (Super key tap)
|
||||
#bindi = Super, Super_L, global, caelestia:launcher
|
||||
#bindin = Super, catchall, global, caelestia:launcherInterrupt
|
||||
#bindin = Super, mouse:272, global, caelestia:launcherInterrupt
|
||||
#bindin = Super, mouse:273, global, caelestia:launcherInterrupt
|
||||
|
||||
# System binds
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exit, # Safer exit combination
|
||||
@@ -206,6 +219,7 @@ bind = $mainMod, L, exec, hyprlock
|
||||
bind = $mainMod, O, togglesplit, # Toggle split direction
|
||||
bind = $mainMod, P, exec, poweroff
|
||||
bind = $mainMod, RETURN, exec, wlogout
|
||||
bind = $mainMod SHIFT, B, exec, hyprctl keyword decoration:blur:enabled toggle # Toggle blur on/off
|
||||
|
||||
# App launcher
|
||||
bind = $mainMod, R, exec, $menu
|
||||
@@ -220,7 +234,7 @@ bind = $mainMod, B, exec, $browser
|
||||
bind = $mainMod, V, exec, $vscode
|
||||
bind = $mainMod, T, exec, $telegram
|
||||
bind = $mainMod, S, exec, $spotify
|
||||
bind = $mainMod, W, exec, waypaper
|
||||
bind = $mainMod, W, exec, waypaper ; sleep 1 && ~/.config/hypr/sync-caelestia-wallpaper.sh
|
||||
|
||||
# Utility binds
|
||||
bind = CTRL SHIFT, ESCAPE, exec, $terminal htop # Task manager alternative
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
$primary_paletteKeyColor = 6f72ac
|
||||
$secondary_paletteKeyColor = 75758e
|
||||
$tertiary_paletteKeyColor = 9d648f
|
||||
$neutral_paletteKeyColor = 78767b
|
||||
$neutral_variant_paletteKeyColor = 777680
|
||||
$background = 131317
|
||||
$onBackground = e5e1e7
|
||||
$surface = 131317
|
||||
$surfaceDim = 131317
|
||||
$surfaceBright = 39393d
|
||||
$surfaceContainerLowest = 0e0e11
|
||||
$surfaceContainerLow = 1b1b1f
|
||||
$surfaceContainer = 1f1f23
|
||||
$surfaceContainerHigh = 2a292e
|
||||
$surfaceContainerHighest = 353438
|
||||
$onSurface = e5e1e7
|
||||
$surfaceVariant = 46464f
|
||||
$onSurfaceVariant = c7c5d1
|
||||
$inverseSurface = e5e1e7
|
||||
$inverseOnSurface = 303034
|
||||
$outline = 918f9a
|
||||
$outlineVariant = 46464f
|
||||
$shadow = 000000
|
||||
$scrim = 000000
|
||||
$surfaceTint = bfc1ff
|
||||
$primary = bfc1ff
|
||||
$onPrimary = 282b60
|
||||
$primaryContainer = 6f72ac
|
||||
$onPrimaryContainer = 000028
|
||||
$inversePrimary = 565992
|
||||
$secondary = c5c4e0
|
||||
$onSecondary = 2e2f44
|
||||
$secondaryContainer = 44455c
|
||||
$onSecondaryContainer = b3b3ce
|
||||
$tertiary = f4b2e2
|
||||
$onTertiary = 4e1e45
|
||||
$tertiaryContainer = ba7eaa
|
||||
$onTertiaryContainer = 000000
|
||||
$error = ffb4ab
|
||||
$onError = 690005
|
||||
$errorContainer = 93000a
|
||||
$onErrorContainer = ffdad6
|
||||
$primaryFixed = e0e0ff
|
||||
$primaryFixedDim = bfc1ff
|
||||
$onPrimaryFixed = 12144a
|
||||
$onPrimaryFixedVariant = 3e4278
|
||||
$secondaryFixed = e1e0fd
|
||||
$secondaryFixedDim = c5c4e0
|
||||
$onSecondaryFixed = 191a2e
|
||||
$onSecondaryFixedVariant = 44455c
|
||||
$tertiaryFixed = ffd7f1
|
||||
$tertiaryFixedDim = f4b2e2
|
||||
$onTertiaryFixed = 35082f
|
||||
$onTertiaryFixedVariant = 67355d
|
||||
$term0 = 353434
|
||||
$term1 = a875ff
|
||||
$term2 = 44def5
|
||||
$term3 = ffdcf2
|
||||
$term4 = 97aad7
|
||||
$term5 = b29feb
|
||||
$term6 = 9dceff
|
||||
$term7 = e8d3de
|
||||
$term8 = ac9fa9
|
||||
$term9 = bd95ff
|
||||
$term10 = 89ecff
|
||||
$term11 = fff0f6
|
||||
$term12 = b4c1dc
|
||||
$term13 = c8b5f5
|
||||
$term14 = bae0ff
|
||||
$term15 = ffffff
|
||||
$rosewater = f7eff9
|
||||
$flamingo = e8def3
|
||||
$pink = e1d8ff
|
||||
$mauve = bdb9ff
|
||||
$red = bfa6fe
|
||||
$maroon = c7b6ed
|
||||
$peach = e0c2f9
|
||||
$yellow = ffecf3
|
||||
$green = c8e3ff
|
||||
$teal = d2e0ff
|
||||
$sky = cedaff
|
||||
$sapphire = b5c5ff
|
||||
$blue = aeb8ff
|
||||
$lavender = c6c8ff
|
||||
$klink = 7083d2
|
||||
$klinkSelection = 6f83d2
|
||||
$kvisited = 7e73db
|
||||
$kvisitedSelection = 7d73db
|
||||
$knegative = 9d69ff
|
||||
$knegativeSelection = 9b6aff
|
||||
$kneutral = c794ff
|
||||
$kneutralSelection = c794ff
|
||||
$kpositive = 60adff
|
||||
$kpositiveSelection = 60adff
|
||||
$text = e5e1e7
|
||||
$subtext1 = c7c5d1
|
||||
$subtext0 = 918f9a
|
||||
$overlay2 = 7e7c86
|
||||
$overlay1 = 6b6972
|
||||
$overlay0 = 595860
|
||||
$surface2 = 48474e
|
||||
$surface1 = 37373d
|
||||
$surface0 = 25252a
|
||||
$base = 131317
|
||||
$mantle = 131317
|
||||
$crust = 121216
|
||||
$success = B5CCBA
|
||||
$onSuccess = 213528
|
||||
$successContainer = 374B3E
|
||||
$onSuccessContainer = D1E9D6
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
# Sync Caelestia's wallpaper reference with the currently running swaybg wallpaper
|
||||
|
||||
# Get the wallpaper path from running swaybg process
|
||||
WALLPAPER_PATH=$(pgrep -a swaybg | grep -oP '(?<=-i )[^ ]+' | head -1)
|
||||
|
||||
if [ -n "$WALLPAPER_PATH" ] && [ -f "$WALLPAPER_PATH" ]; then
|
||||
mkdir -p ~/.local/state/caelestia/wallpaper
|
||||
ln -sf "$WALLPAPER_PATH" ~/.local/state/caelestia/wallpaper/current
|
||||
echo "$WALLPAPER_PATH" > ~/.local/state/caelestia/wallpaper/path.txt
|
||||
echo "✓ Caelestia wallpaper synced to: $WALLPAPER_PATH"
|
||||
else
|
||||
echo "⚠ Could not detect swaybg wallpaper"
|
||||
fi
|
||||
@@ -0,0 +1,118 @@
|
||||
{{
|
||||
"name": "pywal",
|
||||
"flavour": "pywal",
|
||||
"mode": "dark",
|
||||
"variant": "tonalspot",
|
||||
"colours": {{
|
||||
"primary_paletteKeyColor": "{color4.strip}",
|
||||
"secondary_paletteKeyColor": "{color5.strip}",
|
||||
"tertiary_paletteKeyColor": "{color6.strip}",
|
||||
"neutral_paletteKeyColor": "{color8.strip}",
|
||||
"neutral_variant_paletteKeyColor": "{color8.strip}",
|
||||
"background": "{background.strip}",
|
||||
"onBackground": "{foreground.strip}",
|
||||
"surface": "{background.strip}",
|
||||
"surfaceDim": "{background.strip}",
|
||||
"surfaceBright": "{color8.strip}",
|
||||
"surfaceContainerLowest": "{color0.strip}",
|
||||
"surfaceContainerLow": "{color0.strip}",
|
||||
"surfaceContainer": "{color0.strip}",
|
||||
"surfaceContainerHigh": "{color8.strip}",
|
||||
"surfaceContainerHighest": "{color8.strip}",
|
||||
"onSurface": "{foreground.strip}",
|
||||
"surfaceVariant": "{color8.strip}",
|
||||
"onSurfaceVariant": "{color7.strip}",
|
||||
"inverseSurface": "{foreground.strip}",
|
||||
"inverseOnSurface": "{background.strip}",
|
||||
"outline": "{color8.strip}",
|
||||
"outlineVariant": "{color8.strip}",
|
||||
"shadow": "000000",
|
||||
"scrim": "000000",
|
||||
"surfaceTint": "{color4.strip}",
|
||||
"primary": "{color4.strip}",
|
||||
"onPrimary": "{background.strip}",
|
||||
"primaryContainer": "{color4.strip}",
|
||||
"onPrimaryContainer": "{foreground.strip}",
|
||||
"inversePrimary": "{color12.strip}",
|
||||
"secondary": "{color5.strip}",
|
||||
"onSecondary": "{background.strip}",
|
||||
"secondaryContainer": "{color5.strip}",
|
||||
"onSecondaryContainer": "{foreground.strip}",
|
||||
"tertiary": "{color6.strip}",
|
||||
"onTertiary": "{background.strip}",
|
||||
"tertiaryContainer": "{color6.strip}",
|
||||
"onTertiaryContainer": "{foreground.strip}",
|
||||
"error": "{color1.strip}",
|
||||
"onError": "{background.strip}",
|
||||
"errorContainer": "{color1.strip}",
|
||||
"onErrorContainer": "{foreground.strip}",
|
||||
"primaryFixed": "{color12.strip}",
|
||||
"primaryFixedDim": "{color4.strip}",
|
||||
"onPrimaryFixed": "{background.strip}",
|
||||
"onPrimaryFixedVariant": "{color0.strip}",
|
||||
"secondaryFixed": "{color13.strip}",
|
||||
"secondaryFixedDim": "{color5.strip}",
|
||||
"onSecondaryFixed": "{background.strip}",
|
||||
"onSecondaryFixedVariant": "{color0.strip}",
|
||||
"tertiaryFixed": "{color14.strip}",
|
||||
"tertiaryFixedDim": "{color6.strip}",
|
||||
"onTertiaryFixed": "{background.strip}",
|
||||
"onTertiaryFixedVariant": "{color0.strip}",
|
||||
"term0": "{color0.strip}",
|
||||
"term1": "{color1.strip}",
|
||||
"term2": "{color2.strip}",
|
||||
"term3": "{color3.strip}",
|
||||
"term4": "{color4.strip}",
|
||||
"term5": "{color5.strip}",
|
||||
"term6": "{color6.strip}",
|
||||
"term7": "{color7.strip}",
|
||||
"term8": "{color8.strip}",
|
||||
"term9": "{color9.strip}",
|
||||
"term10": "{color10.strip}",
|
||||
"term11": "{color11.strip}",
|
||||
"term12": "{color12.strip}",
|
||||
"term13": "{color13.strip}",
|
||||
"term14": "{color14.strip}",
|
||||
"term15": "{color15.strip}",
|
||||
"rosewater": "{color7.strip}",
|
||||
"flamingo": "{color7.strip}",
|
||||
"pink": "{color5.strip}",
|
||||
"mauve": "{color4.strip}",
|
||||
"red": "{color1.strip}",
|
||||
"maroon": "{color1.strip}",
|
||||
"peach": "{color3.strip}",
|
||||
"yellow": "{color3.strip}",
|
||||
"green": "{color2.strip}",
|
||||
"teal": "{color6.strip}",
|
||||
"sky": "{color6.strip}",
|
||||
"sapphire": "{color4.strip}",
|
||||
"blue": "{color4.strip}",
|
||||
"lavender": "{color4.strip}",
|
||||
"klink": "{color4.strip}",
|
||||
"klinkSelection": "{color12.strip}",
|
||||
"kvisited": "{color5.strip}",
|
||||
"kvisitedSelection": "{color13.strip}",
|
||||
"knegative": "{color1.strip}",
|
||||
"knegativeSelection": "{color9.strip}",
|
||||
"kneutral": "{color3.strip}",
|
||||
"kneutralSelection": "{color11.strip}",
|
||||
"kpositive": "{color2.strip}",
|
||||
"kpositiveSelection": "{color10.strip}",
|
||||
"text": "{foreground.strip}",
|
||||
"subtext1": "{color7.strip}",
|
||||
"subtext0": "{color8.strip}",
|
||||
"overlay2": "{color8.strip}",
|
||||
"overlay1": "{color8.strip}",
|
||||
"overlay0": "{color8.strip}",
|
||||
"surface2": "{color8.strip}",
|
||||
"surface1": "{color0.strip}",
|
||||
"surface0": "{color0.strip}",
|
||||
"base": "{background.strip}",
|
||||
"mantle": "{background.strip}",
|
||||
"crust": "{color0.strip}",
|
||||
"success": "{color2.strip}",
|
||||
"onSuccess": "{background.strip}",
|
||||
"successContainer": "{color2.strip}",
|
||||
"onSuccessContainer": "{foreground.strip}"
|
||||
}}
|
||||
}}
|
||||
@@ -0,0 +1,19 @@
|
||||
# Pywal generated color configuration for Hyprland
|
||||
# This file is automatically generated by pywal
|
||||
|
||||
# Border colors using pywal palette
|
||||
$pywal_color1 = rgb({color1.strip})
|
||||
$pywal_color2 = rgb({color2.strip})
|
||||
$pywal_color3 = rgb({color3.strip})
|
||||
$pywal_color4 = rgb({color4.strip})
|
||||
$pywal_color5 = rgb({color5.strip})
|
||||
$pywal_color6 = rgb({color6.strip})
|
||||
$pywal_color8 = rgb({color8.strip})
|
||||
$pywal_background = rgb({background.strip})
|
||||
$pywal_foreground = rgb({foreground.strip})
|
||||
|
||||
# Active border: gradient from color4 to color6
|
||||
general {{
|
||||
col.active_border = rgba({color4.strip}ee) rgba({color6.strip}ee) 45deg
|
||||
col.inactive_border = rgba({color8.strip}aa)
|
||||
}}
|
||||
Reference in New Issue
Block a user