mirror of
https://github.com/duma799/hyprduma-config.git
synced 2026-05-14 14:41:00 +00:00
refactor: remove caelestia shell
This commit is contained in:
@@ -1,118 +0,0 @@
|
|||||||
{{
|
|
||||||
"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}"
|
|
||||||
}}
|
|
||||||
}}
|
|
||||||
+4
-18
@@ -1,12 +1,11 @@
|
|||||||
# Pywal Integration Guide
|
# Pywal Integration Guide
|
||||||
|
|
||||||
Dynamic color theming based on your wallpaper, applied system-wide to Hyprland, Caelestia, Kitty, GTK apps, Firefox, and more.
|
Dynamic color theming based on your wallpaper, applied system-wide to Hyprland, Kitty, GTK apps, Firefox, and more.
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
- `python-pywal` installed (`sudo pacman -S python-pywal`)
|
- `python-pywal` installed (`sudo pacman -S python-pywal`)
|
||||||
- Hyprland window manager
|
- Hyprland window manager
|
||||||
- Caelestia shell (optional, for full integration)
|
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
@@ -20,7 +19,7 @@ cp -r wal/templates/* ~/.config/wal/templates/
|
|||||||
|
|
||||||
# Verify
|
# Verify
|
||||||
ls ~/.config/wal/templates/
|
ls ~/.config/wal/templates/
|
||||||
# Should show: hyprland-colors.conf, caelestia-scheme.json
|
# Should show: hyprland-colors.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Install Scripts
|
### 2. Install Scripts
|
||||||
@@ -120,7 +119,6 @@ wal -i /path/to/wallpaper.png --backend haishoku # Another option
|
|||||||
| Component | What changes |
|
| Component | What changes |
|
||||||
|-----------|-------------|
|
|-----------|-------------|
|
||||||
| **Hyprland** | Window borders (active gradient, inactive) |
|
| **Hyprland** | Window borders (active gradient, inactive) |
|
||||||
| **Caelestia Shell** | Material Design 3 color scheme, all UI elements |
|
|
||||||
| **Kitty Terminal** | Background, foreground, all 16 colors |
|
| **Kitty Terminal** | Background, foreground, all 16 colors |
|
||||||
| **Bash/Zsh Shell** | Terminal color palette via sequences |
|
| **Bash/Zsh Shell** | Terminal color palette via sequences |
|
||||||
| **GTK Apps** | Via `wal-gtk` (if installed) |
|
| **GTK Apps** | Via `wal-gtk` (if installed) |
|
||||||
@@ -169,29 +167,23 @@ Available variables: `{color0}` through `{color15}`, `{background}`, `{foregroun
|
|||||||
|
|
||||||
After editing, regenerate with `wal -R`.
|
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
|
## How It Works
|
||||||
|
|
||||||
1. `wal -i wallpaper.png` generates colors and processes templates in `~/.config/wal/templates/`
|
1. `wal -i wallpaper.png` generates colors and processes templates in `~/.config/wal/templates/`
|
||||||
2. Generated files land in `~/.cache/wal/`
|
2. Generated files land in `~/.cache/wal/`
|
||||||
3. `hyprland.conf` sources `~/.cache/wal/hyprland-colors.conf` for border colors
|
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
|
4. `pywal.sh` reloads Hyprland, reloads Kitty, and sets GTK/Firefox themes
|
||||||
5. The waypaper hook (`waypaper-hook.sh`) runs this entire chain automatically on wallpaper change
|
5. The waypaper hook (`waypaper-hook.sh`) runs this entire chain automatically on wallpaper change
|
||||||
|
|
||||||
## Files
|
## Files
|
||||||
|
|
||||||
```
|
```
|
||||||
~/.config/wal/templates/
|
~/.config/wal/templates/
|
||||||
├── hyprland-colors.conf # Template for Hyprland border colors
|
└── hyprland-colors.conf # Template for Hyprland border colors
|
||||||
└── caelestia-scheme.json # Template for Caelestia color scheme
|
|
||||||
|
|
||||||
~/.cache/wal/ # Generated by pywal
|
~/.cache/wal/ # Generated by pywal
|
||||||
├── hyprland-colors.conf # Sourced by hyprland.conf
|
├── hyprland-colors.conf # Sourced by hyprland.conf
|
||||||
├── colors-kitty.conf # Included by kitty.conf
|
├── colors-kitty.conf # Included by kitty.conf
|
||||||
├── caelestia-scheme.json # Copied to Caelestia state dir
|
|
||||||
├── sequences # Loaded by bashrc
|
├── sequences # Loaded by bashrc
|
||||||
└── colors.json # Full color palette
|
└── colors.json # Full color palette
|
||||||
```
|
```
|
||||||
@@ -215,12 +207,6 @@ sed -i 's/kitty-colors.conf/colors-kitty.conf/g' ~/.config/kitty/kitty.conf
|
|||||||
killall -SIGUSR1 kitty
|
killall -SIGUSR1 kitty
|
||||||
```
|
```
|
||||||
|
|
||||||
### Caelestia not updating
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pkill caelestia && sleep 0.5 && caelestia shell -d &
|
|
||||||
```
|
|
||||||
|
|
||||||
### Hyprland fails to start (source file not found)
|
### Hyprland fails to start (source file not found)
|
||||||
|
|
||||||
Run `wal -i /path/to/wallpaper.png` once to generate initial colors before starting Hyprland.
|
Run `wal -i /path/to/wallpaper.png` once to generate initial colors before starting Hyprland.
|
||||||
|
|||||||
+16
-32
@@ -14,7 +14,6 @@ Personal Hyprland configuration focused on productivity and ergonomics.
|
|||||||
- Transparency with configurable opacity (active: 0.985, inactive: 0.85)
|
- Transparency with configurable opacity (active: 0.985, inactive: 0.85)
|
||||||
- Smooth custom animations with bezier curves
|
- Smooth custom animations with bezier curves
|
||||||
- **Pywal integration** - Dynamic system-wide colors from wallpaper
|
- **Pywal integration** - Dynamic system-wide colors from wallpaper
|
||||||
- **Caelestia shell** integration for dynamic theming and AI features
|
|
||||||
|
|
||||||
### Input
|
### Input
|
||||||
- 3-finger gestures (horizontal: workspace, vertical: fullscreen)
|
- 3-finger gestures (horizontal: workspace, vertical: fullscreen)
|
||||||
@@ -25,12 +24,12 @@ Personal Hyprland configuration focused on productivity and ergonomics.
|
|||||||
### Display Setup
|
### Display Setup
|
||||||
- Auto-detected monitor configuration (works with any setup out of the box)
|
- Auto-detected monitor configuration (works with any setup out of the box)
|
||||||
- Workspaces 1-4 on external monitor, 5-10 on laptop screen
|
- Workspaces 1-4 on external monitor, 5-10 on laptop screen
|
||||||
- **Monitor handler** - automatically restores wallpaper and Caelestia shell after config reload
|
- **Monitor handler** - automatically restores wallpaper after config reload
|
||||||
|
|
||||||
### Automation
|
### Automation
|
||||||
- **Auto-installer** - interactive Python installer handles the entire setup
|
- **Auto-installer** - interactive Python installer handles the entire setup
|
||||||
- **Waypaper hook** - pywal colors auto-apply when wallpaper changes via waypaper GUI
|
- **Waypaper hook** - pywal colors auto-apply when wallpaper changes via waypaper GUI
|
||||||
- **Monitor handler** - listens for Hyprland config reloads and restarts swaybg/Caelestia
|
- **Monitor handler** - listens for Hyprland config reloads and restarts swaybg
|
||||||
- **Fastfetch config** - custom system info display with ASCII art
|
- **Fastfetch config** - custom system info display with ASCII art
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -50,12 +49,11 @@ python3 ~/hyprduma-config/install.py
|
|||||||
The interactive installer handles everything:
|
The interactive installer handles everything:
|
||||||
1. AUR helpers (yay/paru)
|
1. AUR helpers (yay/paru)
|
||||||
2. Required packages via pacman
|
2. Required packages via pacman
|
||||||
3. Caelestia shell
|
3. Config backup and installation
|
||||||
4. Config backup and installation
|
4. Pywal integration (templates, scripts, bashrc, initial colors)
|
||||||
5. Pywal integration (templates, scripts, bashrc, initial colors)
|
5. Waypaper hook for automatic color application
|
||||||
6. Waypaper hook for automatic color application
|
6. Monitor handler for config reload resilience
|
||||||
7. Monitor handler for config reload resilience
|
7. Fastfetch config with custom ASCII art
|
||||||
8. Fastfetch config with custom ASCII art
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -82,13 +80,7 @@ cd paru && makepkg -si && cd .. && rm -rf paru
|
|||||||
sudo pacman -S hyprland hyprlock hyprshot wlogout kitty waybar swaybg waypaper wofi nautilus wireplumber pipewire-pulse brightnessctl playerctl adwaita-cursors python-pywal fastfetch
|
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)
|
### Step 2: Clone and Install Config
|
||||||
|
|
||||||
```bash
|
|
||||||
yay -S caelestia-shell
|
|
||||||
```
|
|
||||||
|
|
||||||
### Step 3: Clone and Install Config
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/Downloads
|
cd ~/Downloads
|
||||||
@@ -112,7 +104,7 @@ mkdir -p ~/Pictures/Screenshots
|
|||||||
```bash
|
```bash
|
||||||
# Copy all scripts
|
# Copy all scripts
|
||||||
mkdir -p ~/.config/hypr/scripts
|
mkdir -p ~/.config/hypr/scripts
|
||||||
cp pywal.sh sync-caelestia-wallpaper.sh waypaper-hook.sh ~/.config/hypr/scripts/
|
cp pywal.sh waypaper-hook.sh ~/.config/hypr/scripts/
|
||||||
cp monitor-handler.py ~/.config/hypr/scripts/
|
cp monitor-handler.py ~/.config/hypr/scripts/
|
||||||
chmod +x ~/.config/hypr/scripts/*.sh
|
chmod +x ~/.config/hypr/scripts/*.sh
|
||||||
|
|
||||||
@@ -198,7 +190,7 @@ Hyprland
|
|||||||
|
|
||||||
**Using waypaper GUI (recommended):**
|
**Using waypaper GUI (recommended):**
|
||||||
- Press `Super+W` to open waypaper
|
- 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)
|
- Select a wallpaper - the **waypaper hook** automatically runs pywal and syncs colors to all components (Hyprland, Kitty, GTK, Firefox)
|
||||||
|
|
||||||
**Using command line:**
|
**Using command line:**
|
||||||
```bash
|
```bash
|
||||||
@@ -208,9 +200,8 @@ wal -i /path/to/wallpaper.png && pywal
|
|||||||
**How wallpaper management works:**
|
**How wallpaper management works:**
|
||||||
- **swaybg** is the wallpaper backend (not hyprpaper)
|
- **swaybg** is the wallpaper backend (not hyprpaper)
|
||||||
- **waypaper** GUI sets the wallpaper and triggers `waypaper-hook.sh` as a post-command
|
- **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
|
- The hook runs pywal, 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 if it gets killed
|
||||||
- **monitor-handler.py** listens for config reloads and restores swaybg/Caelestia if they get killed
|
|
||||||
|
|
||||||
### System-Wide Theme Syncing
|
### System-Wide Theme Syncing
|
||||||
|
|
||||||
@@ -243,7 +234,7 @@ Workspace assignment (lines 7-17) distributes workspaces 1-4 to the external mon
|
|||||||
|
|
||||||
### Monitor Handler
|
### 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.
|
The `monitor-handler.py` script runs in the background and listens for Hyprland config reloads. When a reload is detected, it checks if swaybg is still running and restarts it if needed. This prevents losing your wallpaper after editing the config.
|
||||||
|
|
||||||
### Keyboard Layout
|
### Keyboard Layout
|
||||||
|
|
||||||
@@ -262,15 +253,14 @@ hyprduma-config/
|
|||||||
├── hyprland.conf # Main Hyprland configuration
|
├── hyprland.conf # Main Hyprland configuration
|
||||||
├── pywal.sh # Apply pywal colors to all components
|
├── pywal.sh # Apply pywal colors to all components
|
||||||
├── waypaper-hook.sh # Auto-apply colors on wallpaper change
|
├── waypaper-hook.sh # Auto-apply colors on wallpaper change
|
||||||
├── sync-caelestia-wallpaper.sh # Sync swaybg wallpaper to Caelestia
|
├── monitor-handler.py # Restart wallpaper after config reload
|
||||||
├── monitor-handler.py # Restart wallpaper/shell after config reload
|
|
||||||
├── install.py # Interactive auto-installer
|
├── install.py # Interactive auto-installer
|
||||||
├── wallpapers/ # Included wallpapers
|
├── wallpapers/ # Included wallpapers
|
||||||
├── config/
|
├── config/
|
||||||
│ ├── kitty/kitty.conf # Kitty terminal config with pywal support
|
│ ├── kitty/kitty.conf # Kitty terminal config with pywal support
|
||||||
│ ├── fastfetch/ # Custom fastfetch config with ASCII art
|
│ ├── fastfetch/ # Custom fastfetch config with ASCII art
|
||||||
│ ├── nvim/ # Neovim config
|
│ ├── nvim/ # Neovim config
|
||||||
│ └── wal/templates/ # Pywal templates for Hyprland & Caelestia
|
│ └── wal/templates/ # Pywal templates for Hyprland
|
||||||
├── KEYBINDS.md # Complete keybindings reference
|
├── KEYBINDS.md # Complete keybindings reference
|
||||||
└── PYWAL-SETUP.md # Detailed pywal integration guide
|
└── PYWAL-SETUP.md # Detailed pywal integration guide
|
||||||
```
|
```
|
||||||
@@ -299,7 +289,7 @@ hyprduma-config/
|
|||||||
1. **Check if templates are installed:**
|
1. **Check if templates are installed:**
|
||||||
```bash
|
```bash
|
||||||
ls ~/.config/wal/templates/
|
ls ~/.config/wal/templates/
|
||||||
# Should show: hyprland-colors.conf, caelestia-scheme.json
|
# Should show: hyprland-colors.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
If missing, copy them:
|
If missing, copy them:
|
||||||
@@ -357,12 +347,6 @@ hyprduma-config/
|
|||||||
- Check if pywal cache exists: `ls ~/.cache/wal/`
|
- Check if pywal cache exists: `ls ~/.cache/wal/`
|
||||||
- Manually reload: `pywal`
|
- Manually reload: `pywal`
|
||||||
|
|
||||||
### Caelestia colors not updating
|
|
||||||
```bash
|
|
||||||
# Restart Caelestia daemon
|
|
||||||
pkill caelestia && sleep 0.5 && caelestia shell -d &
|
|
||||||
```
|
|
||||||
|
|
||||||
### Wallpaper not showing after config reload
|
### Wallpaper not showing after config reload
|
||||||
The monitor handler should restore it automatically. If not:
|
The monitor handler should restore it automatically. If not:
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -19,8 +19,6 @@ workspace = 10, monitor:eDP-1
|
|||||||
|
|
||||||
# Autostart
|
# Autostart
|
||||||
exec-once = waypaper --restore
|
exec-once = waypaper --restore
|
||||||
exec-once = sleep 1 && ~/.config/hypr/scripts/sync-caelestia-wallpaper.sh
|
|
||||||
exec-once = sleep 1 && caelestia shell -d
|
|
||||||
exec-once = python3 ~/.config/hypr/scripts/monitor-handler.py
|
exec-once = python3 ~/.config/hypr/scripts/monitor-handler.py
|
||||||
exec-once = hyprctl setcursor Adwaita 24
|
exec-once = hyprctl setcursor Adwaita 24
|
||||||
exec-once = mkdir -p $HOME/Pictures/Screenshots
|
exec-once = mkdir -p $HOME/Pictures/Screenshots
|
||||||
@@ -253,30 +251,6 @@ windowrule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Layer Rules
|
# Layer Rules
|
||||||
layerrule {
|
|
||||||
name = Caelestia-drawers
|
|
||||||
match:title = ^caelestia(drawers|background)$
|
|
||||||
animation = fade
|
|
||||||
}
|
|
||||||
|
|
||||||
layerrule {
|
|
||||||
name = drawers
|
|
||||||
match:namespace = caelestia-drawers
|
|
||||||
blur = on
|
|
||||||
}
|
|
||||||
|
|
||||||
layerrule {
|
|
||||||
name = drawers-alpha
|
|
||||||
match:namespace = caelestia-drawers
|
|
||||||
ignore_alpha = 0.57
|
|
||||||
}
|
|
||||||
|
|
||||||
layerrule {
|
|
||||||
name = border-exclusion
|
|
||||||
match:title = ^caelestia-(border-exclusion|area-picker)$
|
|
||||||
no_anim = true
|
|
||||||
}
|
|
||||||
|
|
||||||
layerrule {
|
layerrule {
|
||||||
name = wofi
|
name = wofi
|
||||||
match:namespace = wofi
|
match:namespace = wofi
|
||||||
|
|||||||
+2
-44
@@ -132,7 +132,7 @@ def install_aur_helpers():
|
|||||||
missing.append("paru")
|
missing.append("paru")
|
||||||
|
|
||||||
if not ask_yn(f"Install AUR helper(s): {', '.join(missing)}?"):
|
if not ask_yn(f"Install AUR helper(s): {', '.join(missing)}?"):
|
||||||
print_warn("Skipping AUR helpers (caelestia-shell will require manual install)")
|
print_warn("Skipping AUR helpers")
|
||||||
return
|
return
|
||||||
|
|
||||||
run("sudo pacman -S --needed --noconfirm git base-devel")
|
run("sudo pacman -S --needed --noconfirm git base-devel")
|
||||||
@@ -168,44 +168,6 @@ def install_packages():
|
|||||||
print_ok("All packages installed")
|
print_ok("All packages installed")
|
||||||
|
|
||||||
|
|
||||||
def install_caelestia():
|
|
||||||
already_installed = cmd_exists("caelestia")
|
|
||||||
|
|
||||||
if already_installed:
|
|
||||||
print_ok("Caelestia shell is already installed")
|
|
||||||
else:
|
|
||||||
if not cmd_exists("yay") and not cmd_exists("paru"):
|
|
||||||
print_warn(
|
|
||||||
"No AUR helper found - skipping Caelestia (install manually: yay -S caelestia-shell)"
|
|
||||||
)
|
|
||||||
return
|
|
||||||
|
|
||||||
if not ask_yn("Install Caelestia Shell (recommended for dynamic theming)?"):
|
|
||||||
print_warn("Skipping Caelestia shell")
|
|
||||||
return
|
|
||||||
|
|
||||||
helper = "yay" if cmd_exists("yay") else "paru"
|
|
||||||
if run(f"{helper} -S --noconfirm caelestia-shell"):
|
|
||||||
print_ok("Caelestia shell installed")
|
|
||||||
else:
|
|
||||||
print_err(
|
|
||||||
"Failed to install Caelestia - you can try manually: yay -S caelestia-shell"
|
|
||||||
)
|
|
||||||
return
|
|
||||||
|
|
||||||
state_dir = Path.home() / ".local" / "state" / "caelestia"
|
|
||||||
wallpaper_dir = state_dir / "wallpaper"
|
|
||||||
wallpaper_dir.mkdir(parents=True, exist_ok=True)
|
|
||||||
print_ok("Created Caelestia state directories (~/.local/state/caelestia/)")
|
|
||||||
|
|
||||||
if run("pgrep -x Hyprland", capture=True) is not None:
|
|
||||||
print_info("Hyprland detected, launching Caelestia shell...")
|
|
||||||
run("caelestia shell -d &", check=False)
|
|
||||||
print_ok("Caelestia shell launched")
|
|
||||||
else:
|
|
||||||
print_info("Caelestia will start automatically on next Hyprland session")
|
|
||||||
|
|
||||||
|
|
||||||
def make_symlink(src: Path, dst: Path):
|
def make_symlink(src: Path, dst: Path):
|
||||||
"""Create symlink dst -> src, backing up any existing non-symlink at dst."""
|
"""Create symlink dst -> src, backing up any existing non-symlink at dst."""
|
||||||
if dst.is_symlink():
|
if dst.is_symlink():
|
||||||
@@ -473,7 +435,7 @@ def main():
|
|||||||
|
|
||||||
check_arch()
|
check_arch()
|
||||||
|
|
||||||
total = 9
|
total = 8
|
||||||
step = 0
|
step = 0
|
||||||
|
|
||||||
step += 1
|
step += 1
|
||||||
@@ -484,10 +446,6 @@ def main():
|
|||||||
print_step(step, total, "Install Required Packages")
|
print_step(step, total, "Install Required Packages")
|
||||||
install_packages()
|
install_packages()
|
||||||
|
|
||||||
step += 1
|
|
||||||
print_step(step, total, "Install Caelestia Shell")
|
|
||||||
install_caelestia()
|
|
||||||
|
|
||||||
step += 1
|
step += 1
|
||||||
print_step(step, total, "Locate/Clone Repository")
|
print_step(step, total, "Locate/Clone Repository")
|
||||||
repo = clone_repo()
|
repo = clone_repo()
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# Restarts wallpaper and caelestia shell after hyprland config reload
|
# Restarts wallpaper after hyprland config reload
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import socket
|
import socket
|
||||||
@@ -21,9 +21,6 @@ def handle_reload():
|
|||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
if not is_running("swaybg"):
|
if not is_running("swaybg"):
|
||||||
subprocess.Popen(["waypaper", "--restore"])
|
subprocess.Popen(["waypaper", "--restore"])
|
||||||
if not is_running("caelestia"):
|
|
||||||
time.sleep(1)
|
|
||||||
subprocess.Popen(["caelestia", "shell", "-d"])
|
|
||||||
|
|
||||||
def listen(path):
|
def listen(path):
|
||||||
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||||
|
|||||||
@@ -53,22 +53,6 @@ else
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Caelestia wallpaper
|
|
||||||
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
|
|
||||||
|
|
||||||
# Caelestia colors
|
|
||||||
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
|
|
||||||
|
|
||||||
# GTK themes
|
# GTK themes
|
||||||
if command -v wal-gtk &> /dev/null; then
|
if command -v wal-gtk &> /dev/null; then
|
||||||
wal-gtk
|
wal-gtk
|
||||||
@@ -98,14 +82,6 @@ if command -v hyprctl &> /dev/null; then
|
|||||||
echo "✓ Hyprland configuration reloaded"
|
echo "✓ Hyprland configuration reloaded"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Caelestia
|
|
||||||
if pgrep -x "caelestia" > /dev/null; then
|
|
||||||
pkill caelestia
|
|
||||||
sleep 0.5
|
|
||||||
caelestia shell -d &
|
|
||||||
echo "✓ Caelestia shell restarted"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Kitty
|
# Kitty
|
||||||
if command -v kitty &> /dev/null; then
|
if command -v kitty &> /dev/null; then
|
||||||
if pgrep -x "kitty" > /dev/null; then
|
if pgrep -x "kitty" > /dev/null; then
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Sync Caelestia wallpaper with swaybg
|
|
||||||
|
|
||||||
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
|
|
||||||
Reference in New Issue
Block a user