mirror of
https://github.com/ksyasuda/dotfiles.git
synced 2025-12-05 02:53:38 -08:00
update
This commit is contained in:
@@ -7,5 +7,5 @@ DIR="$HOME/Pictures/wallpapers/favorites"
|
|||||||
SELECTED_WALL=$(cd "$DIR" && for a in *.jpg *.png; do echo -en "$a\0icon\x1f$a\n"; done | rofi -dmenu -i -no-custom -theme "$THEME" -p "Select a wallpaper" -theme-str 'configuration {icon-size: 128; dpi: 96;} window {width: 45%; height: 45%;}')
|
SELECTED_WALL=$(cd "$DIR" && for a in *.jpg *.png; do echo -en "$a\0icon\x1f$a\n"; done | rofi -dmenu -i -no-custom -theme "$THEME" -p "Select a wallpaper" -theme-str 'configuration {icon-size: 128; dpi: 96;} window {width: 45%; height: 45%;}')
|
||||||
PTH="$(printf "%s" "$DIR/$SELECTED_WALL" | tr -s '/')"
|
PTH="$(printf "%s" "$DIR/$SELECTED_WALL" | tr -s '/')"
|
||||||
notify-send -a "rofi-wallpaper" "Wallpaper set to" -i "$PTH" "$PTH"
|
notify-send -a "rofi-wallpaper" "Wallpaper set to" -i "$PTH" "$PTH"
|
||||||
hyprctl hyprpaper reload , "$DIR/$SELECTED_WALL"
|
|
||||||
echo "$PTH" >"$HOME/.wallpaper"
|
echo "$PTH" >"$HOME/.wallpaper"
|
||||||
|
hyprctl hyprpaper reload , "$PTH"
|
||||||
|
|||||||
@@ -272,11 +272,26 @@ func ensureSized(wallpaperPath string) (string, error) {
|
|||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
if src.Bounds().Dx() == targetWidth && src.Bounds().Dy() == targetHeight {
|
srcWidth := float64(src.Bounds().Dx())
|
||||||
|
srcHeight := float64(src.Bounds().Dy())
|
||||||
|
targetW := float64(targetWidth)
|
||||||
|
targetH := float64(targetHeight)
|
||||||
|
|
||||||
|
// Calculate scale factor to fit image within target while maintaining aspect ratio
|
||||||
|
scaleW := targetW / srcWidth
|
||||||
|
scaleH := targetH / srcHeight
|
||||||
|
scale := min(scaleW, scaleH)
|
||||||
|
|
||||||
|
// If image already fits within target dimensions, no resize needed
|
||||||
|
if scale >= 1.0 {
|
||||||
return wallpaperPath, nil
|
return wallpaperPath, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
dst := image.NewRGBA(image.Rect(0, 0, targetWidth, targetHeight))
|
// Calculate new dimensions maintaining aspect ratio (best fit)
|
||||||
|
newWidth := int(srcWidth * scale)
|
||||||
|
newHeight := int(srcHeight * scale)
|
||||||
|
|
||||||
|
dst := image.NewRGBA(image.Rect(0, 0, newWidth, newHeight))
|
||||||
draw.CatmullRom.Scale(dst, dst.Bounds(), src, src.Bounds(), draw.Over, nil)
|
draw.CatmullRom.Scale(dst, dst.Bounds(), src, src.Bounds(), draw.Over, nil)
|
||||||
|
|
||||||
var ext string
|
var ext string
|
||||||
@@ -295,7 +310,7 @@ func ensureSized(wallpaperPath string) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
base := strings.TrimSuffix(filepath.Base(wallpaperPath), filepath.Ext(wallpaperPath))
|
base := strings.TrimSuffix(filepath.Base(wallpaperPath), filepath.Ext(wallpaperPath))
|
||||||
resizedPath := filepath.Join(filepath.Dir(wallpaperPath), fmt.Sprintf("%s-%dx%d%s", base, targetWidth, targetHeight, ext))
|
resizedPath := filepath.Join(filepath.Dir(wallpaperPath), fmt.Sprintf("%s-%dx%d%s", base, newWidth, newHeight, ext))
|
||||||
|
|
||||||
outFile, err := os.Create(resizedPath)
|
outFile, err := os.Create(resizedPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user