mirror of
https://github.com/celesrenata/end-4-flakes.git
synced 2026-06-18 07:19:56 -05:00
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
This commit is contained in:
Executable
+127
@@ -0,0 +1,127 @@
|
||||
#!/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/"
|
||||
Reference in New Issue
Block a user