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%;}')
|
||||
PTH="$(printf "%s" "$DIR/$SELECTED_WALL" | tr -s '/')"
|
||||
notify-send -a "rofi-wallpaper" "Wallpaper set to" -i "$PTH" "$PTH"
|
||||
hyprctl hyprpaper reload , "$DIR/$SELECTED_WALL"
|
||||
echo "$PTH" >"$HOME/.wallpaper"
|
||||
hyprctl hyprpaper reload , "$PTH"
|
||||
|
||||
@@ -272,11 +272,26 @@ func ensureSized(wallpaperPath string) (string, error) {
|
||||
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
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
var ext string
|
||||
@@ -295,7 +310,7 @@ func ensureSized(wallpaperPath string) (string, error) {
|
||||
}
|
||||
|
||||
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)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user