Merging Test branch

Testing
This commit is contained in:
Alen
2025-11-22 00:17:22 +04:00
committed by GitHub
9 changed files with 892 additions and 45 deletions
+101
View File
@@ -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
View File
@@ -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
```
+243 -24
View File
@@ -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!
+39
View File
@@ -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
View File
@@ -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
+110
View File
@@ -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
+14
View File
@@ -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
+118
View File
@@ -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}"
}}
}}
+19
View File
@@ -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)
}}