From 7be98945bbab74ae55f97b8b561f5a507d084142 Mon Sep 17 00:00:00 2001 From: sudacode Date: Sat, 3 May 2025 23:32:39 -0700 Subject: [PATCH] update --- .config/hypr/keybindings.conf | 2 +- .config/mpd/mpdstate | 22 ---- projects/scripts/change-wallpaper.go | 171 --------------------------- 3 files changed, 1 insertion(+), 194 deletions(-) delete mode 100644 .config/mpd/mpdstate delete mode 100644 projects/scripts/change-wallpaper.go diff --git a/.config/hypr/keybindings.conf b/.config/hypr/keybindings.conf index 58e2d01..173104b 100644 --- a/.config/hypr/keybindings.conf +++ b/.config/hypr/keybindings.conf @@ -105,7 +105,7 @@ bind = SUPER SHIFT, o, exec, ~/.local/bin/ocr.sh bind = $mainMod, o, exec, ~/.local/bin/ocr.sh # change wallpaper -bind = $mainMod CTRL, n, exec, ~/.local/bin/change-wallpaper.sh +bind = $mainMod CTRL, n, exec, ~/.local/bin/change-wallpaper # toggle focus between current and last focused window bind = ALT, Tab, focuscurrentorlast diff --git a/.config/mpd/mpdstate b/.config/mpd/mpdstate deleted file mode 100644 index 2e7c413..0000000 --- a/.config/mpd/mpdstate +++ /dev/null @@ -1,22 +0,0 @@ -sw_volume: 40 -audio_device_state:1:PipeWire Sound Server -audio_device_state:1:my_fifo -state: pause -current: 4 -time: 0 -random: 1 -repeat: 0 -single: 1 -consume: 0 -crossfade: 0 -mixrampdb: 0 -mixrampdelay: -1 -lastloadedplaylist: -playlist_begin -0:Various Artists/Various Artists - Seishunbutayarouhabunnygirlsenpainoyumewominai Fukashigi no KARTE/01 - Fukashigi no KARTE.flac -1:Juice WRLD/Goodbye & Good Riddance (2018)/Juice WRLD - Goodbye & Good Riddance - 02 - All Girls Are The Same.flac -2:Juice WRLD/Leaks/London Tipton (feat. Doobie DaLil) .mp3 -3:Juice WRLD/Leaks/Naruto.mp3 -4:Juice WRLD/Leaks/OLD ME 3 (PROD. NICK MIRA).mp3 -5:Juice WRLD/Leaks/GTA.mp3 -playlist_end diff --git a/projects/scripts/change-wallpaper.go b/projects/scripts/change-wallpaper.go deleted file mode 100644 index 9325f97..0000000 --- a/projects/scripts/change-wallpaper.go +++ /dev/null @@ -1,171 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "io" - "math/rand" - "net/http" - "net/url" - "os" - "os/exec" - "path/filepath" - "regexp" - "strings" - "time" -) - -const ( - wallhavenAPI = "https://wallhaven.cc/api/v1" - wallpaperDir = "Pictures/wallpapers/wallhaven" -) - -var topics = []string{ - "132262 - Mobuseka", - "konosuba", - "bunny girl senpai", - "oshi no ko", - "kill la kill", - "lofi", - "eminence in shadow", -} - -type WallhavenResponse struct { - Data []struct { - Path string `json:"path"` - } `json:"data"` -} - -func main() { - // Initialize random source - r := rand.New(rand.NewSource(time.Now().UnixNano())) - - // Check if a file path was provided as argument - if len(os.Args) > 1 { - imgPath := os.Args[1] - if _, err := os.Stat(imgPath); err == nil { - changeWallpaper(imgPath, "") - return - } - } - - // Create wallpaper directory if it doesn't exist - homeDir, err := os.UserHomeDir() - if err != nil { - fmt.Fprintf(os.Stderr, "Error getting home directory: %v\n", err) - os.Exit(1) - } - - wallpaperPath := filepath.Join(homeDir, wallpaperDir) - if err := os.MkdirAll(wallpaperPath, 0755); err != nil { - fmt.Fprintf(os.Stderr, "Error creating wallpaper directory: %v\n", err) - os.Exit(1) - } - - // Download and set new wallpaper - newWallpaper, topic := downloadRandomWallpaper(wallpaperPath, r) - if newWallpaper != "" { - changeWallpaper(newWallpaper, topic) - } else { - notify("Failed to download new wallpaper", "critical") - os.Exit(1) - } -} - -func downloadRandomWallpaper(wallpaperPath string, r *rand.Rand) (string, string) { - // Select random topic - topic := topics[r.Intn(len(topics))] - var query string - var displayName string - - // Check if the topic is a tag ID with name - if tagRegex := regexp.MustCompile(`^(\d+)\s*-\s*(.+)$`); tagRegex.MatchString(topic) { - matches := tagRegex.FindStringSubmatch(topic) - query = fmt.Sprintf("id:%s", matches[1]) - displayName = strings.TrimSpace(matches[2]) - } else { - query = url.QueryEscape(topic) - displayName = topic - } - - fmt.Fprintf(os.Stderr, "Searching for wallpapers related to: %s\n", displayName) - - // Get wallpapers from Wallhaven API - resp, err := http.Get(fmt.Sprintf("%s/search?q=%s&purity=100&categories=110&sorting=random", wallhavenAPI, query)) - if err != nil { - fmt.Fprintf(os.Stderr, "Error fetching from Wallhaven: %v\n", err) - return "", "" - } - defer resp.Body.Close() - - // Parse response - var wallhavenResp WallhavenResponse - if err := json.NewDecoder(resp.Body).Decode(&wallhavenResp); err != nil { - fmt.Fprintf(os.Stderr, "Error parsing response: %v\n", err) - return "", "" - } - - if len(wallhavenResp.Data) == 0 { - fmt.Fprintf(os.Stderr, "No wallpapers found for topic: %s\n", displayName) - return "", "" - } - - // Select a random image from the results - randomIndex := r.Intn(len(wallhavenResp.Data)) - wallpaperURL := wallhavenResp.Data[randomIndex].Path - filename := filepath.Base(wallpaperURL) - filepath := filepath.Join(wallpaperPath, filename) - - fmt.Fprintf(os.Stderr, "Downloading: %s\n", filename) - - resp, err = http.Get(wallpaperURL) - if err != nil { - fmt.Fprintf(os.Stderr, "Error downloading wallpaper: %v\n", err) - return "", "" - } - defer resp.Body.Close() - - file, err := os.Create(filepath) - if err != nil { - fmt.Fprintf(os.Stderr, "Error creating file: %v\n", err) - return "", "" - } - defer file.Close() - - if _, err := io.Copy(file, resp.Body); err != nil { - fmt.Fprintf(os.Stderr, "Error saving wallpaper: %v\n", err) - return "", "" - } - - return filepath, displayName -} - -func changeWallpaper(wallpaperPath, topic string) { - // Save current wallpaper path - homeDir, _ := os.UserHomeDir() - wallpaperFile := filepath.Join(homeDir, ".wallpaper") - if err := os.WriteFile(wallpaperFile, []byte(wallpaperPath), 0644); err != nil { - fmt.Fprintf(os.Stderr, "Error saving wallpaper path: %v\n", err) - } - - // Change wallpaper using hyprctl - cmd := exec.Command("hyprctl", "hyprpaper", "reload", ","+wallpaperPath) - if err := cmd.Run(); err != nil { - fmt.Fprintf(os.Stderr, "Error changing wallpaper: %v\n", err) - } - - // Send notification - filename := filepath.Base(wallpaperPath) - message := fmt.Sprintf("Wallpaper changed to %s", filename) - if topic != "" { - message += fmt.Sprintf(" (%s)", topic) - } - notify(message, "normal") -} - -func notify(message, urgency string) { - cmd := exec.Command("notify-send", "-i", "hyprpaper", "-u", urgency, "change-wallpaper.go", message) - if err := cmd.Run(); err != nil { - fmt.Fprintf(os.Stderr, "Error sending notification: %v\n", err) - } -} \ No newline at end of file