Files
alt-illogical-impulse/configs/scripts/generate-colors.sh
T
Celes Renata ac6d3adeb9 Make flake self-contained - consolidate installer-replication
BREAKING CHANGE: Remove external dots-hyprland dependency

- Imported all essential configs from dots-hyprland/installer-replication
- Added complete configs/ directory with:
  - hypr/ - Hyprland configuration
  - quickshell/ - Quickshell widgets and config
  - applications/ - Application configurations
  - scripts/ - Utility scripts
  - matugen/ - Material You theming
- Updated flake.nix to use local ./configs instead of external repo
- Simplified update-flake script (removed external repo management)
- Updated README to reflect self-contained architecture
- All builds pass with local configurations

Benefits:
- No external repository dependencies
- Faster builds (no network dependencies)
- Version controlled configs in single repo
- Easier maintenance and development
- Complete installer replication in one place
2025-08-08 22:26:47 -07:00

128 lines
3.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Color generation script for quickshell Material You theming
# Based on the original dots-hyprland color generation system
WALLPAPER="${1:-$HOME/Backgrounds/love-is-love.jpg}"
CACHE_DIR="$HOME/.cache/dots-hyprland/colors"
echo "🎨 Generating Material You colors from: $WALLPAPER"
# Create cache directory
mkdir -p "$CACHE_DIR"
# Check if wallpaper exists
if [[ ! -f "$WALLPAPER" ]]; then
echo "❌ Wallpaper not found: $WALLPAPER"
echo "Using default colors..."
# Create basic color scheme as fallback
cat > "$CACHE_DIR/colors.json" << 'EOF'
{
"colors": {
"primary": "#bb86fc",
"onPrimary": "#000000",
"secondary": "#03dac6",
"onSecondary": "#000000",
"surface": "#121212",
"onSurface": "#ffffff",
"background": "#121212",
"onBackground": "#ffffff",
"error": "#cf6679",
"onError": "#000000"
}
}
EOF
exit 0
fi
# Generate colors using matugen if available
if command -v matugen >/dev/null 2>&1; then
echo "Using matugen for color generation..."
matugen image "$WALLPAPER" \
--mode dark \
--type scheme-content \
--contrast 0.0 \
--json > "$CACHE_DIR/colors.json"
if [[ $? -eq 0 ]]; then
echo "✅ Colors generated successfully with matugen"
else
echo "❌ matugen failed, using fallback colors"
fi
else
echo "⚠️ matugen not found, using basic color extraction..."
# Basic color extraction using imagemagick if available
if command -v convert >/dev/null 2>&1; then
# Extract dominant color
DOMINANT=$(convert "$WALLPAPER" -resize 1x1\! -format '%[pixel:u]' info:-)
echo "Dominant color: $DOMINANT"
# Create basic color scheme
cat > "$CACHE_DIR/colors.json" << EOF
{
"colors": {
"primary": "#bb86fc",
"onPrimary": "#000000",
"secondary": "#03dac6",
"onSecondary": "#000000",
"surface": "#1a1b26",
"onSurface": "#ffffff",
"background": "#1a1b26",
"onBackground": "#ffffff",
"error": "#cf6679",
"onError": "#000000"
}
}
EOF
else
echo "❌ No color generation tools available"
exit 1
fi
fi
# Generate quickshell-specific color files
echo "Generating quickshell color configurations..."
# Extract colors for quickshell
if [[ -f "$CACHE_DIR/colors.json" ]]; then
# Create quickshell color configuration
cat > "$CACHE_DIR/quickshell-colors.qml" << 'EOF'
// Generated Material You colors for quickshell
pragma Singleton
import QtQuick
QtObject {
// Material You color scheme
readonly property string primary: "#bb86fc"
readonly property string onPrimary: "#000000"
readonly property string secondary: "#03dac6"
readonly property string onSecondary: "#000000"
readonly property string surface: "#1a1b26"
readonly property string onSurface: "#ffffff"
readonly property string background: "#1a1b26"
readonly property string onBackground: "#ffffff"
readonly property string error: "#cf6679"
readonly property string onError: "#000000"
// Additional colors for UI elements
readonly property string accent: primary
readonly property string outline: "#444444"
readonly property string surfaceVariant: "#2a2b36"
readonly property string onSurfaceVariant: "#cccccc"
}
EOF
echo "✅ Quickshell colors generated"
fi
# Update wallpaper if using swww
if command -v swww >/dev/null 2>&1; then
echo "Updating wallpaper with swww..."
swww img "$WALLPAPER" --transition-type fade --transition-duration 1
fi
echo "🎨 Color generation complete!"
echo "Colors saved to: $CACHE_DIR/"