diff --git a/flake.lock b/flake.lock index 32cb5c4..b75d776 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1775171219, - "narHash": "sha256-3poVYyTB/THwwX2OIA4YNTEhg5pW3XEt1l53GV0j2mk=", + "lastModified": 1775261198, + "narHash": "sha256-BdXWR+LoP8K0V71oT1pNXdlajowVxaLiXXeDXMdvLoM=", "owner": "ryoppippi", "repo": "claude-code-overlay", - "rev": "644838d512a95c415886736f1e6dc28531625f7d", + "rev": "e4ec05a124e6a206e405091f245449291c58e8b6", "type": "github" }, "original": { @@ -87,11 +87,11 @@ ] }, "locked": { - "lastModified": 1775143651, - "narHash": "sha256-S0RqAyDPMTcv9vASMaE8eY1QexFysAOdnxUxFHIPOyE=", + "lastModified": 1775320414, + "narHash": "sha256-pIDPHus8udcxO4lT+zUULBfvue2D08E73abzVEJNE+8=", "owner": "nix-community", "repo": "home-manager", - "rev": "d166a078541982a76f14d3e06e9665fa5c9ed85e", + "rev": "5ee3b3ef63e469c84639c2c9e282726352c86069", "type": "github" }, "original": { @@ -143,11 +143,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1774933469, - "narHash": "sha256-OrnCQeUO2bqaWUl0lkDWyGWjKsOhtCyd7JSfTedQNUE=", + "lastModified": 1775203647, + "narHash": "sha256-6MWaMLXK9QMndI94CIxeiPafi3wuO+imCtK9tfhsZdw=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "f4c4c2c0c923d7811ac2a63ccc154767e4195337", + "rev": "80afbd13eea0b7c4ac188de949e1711b31c2b5f0", "type": "github" }, "original": { @@ -180,11 +180,11 @@ ] }, "locked": { - "lastModified": 1775171065, - "narHash": "sha256-S0lTH4iokBAUoDLF8yiFowBCa3J7DrQLTE+isXAHCqM=", + "lastModified": 1775325653, + "narHash": "sha256-dlopJjB8mZ3wE4HEUgQOE79zy/rutmG5m96ehAwmTWU=", "owner": "nix-community", "repo": "NUR", - "rev": "8014c3dae628bb117c00ad835d1a9deb39b3f731", + "rev": "63115094168cdfc8a4c09261f3f2fc9838f3affa", "type": "github" }, "original": { @@ -228,11 +228,11 @@ ] }, "locked": { - "lastModified": 1775162238, - "narHash": "sha256-0qt2cfUqfTbesQlvO3NeJLCqa7NoVxUK9vxs79prNHk=", + "lastModified": 1775278263, + "narHash": "sha256-BgkUmlOuFaaZQCnlhXkQ3/Fng65aq00tJQkpoeTn7Mw=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "9bf98d57ca82698483ec2d9211ce01669ba37820", + "rev": "bb051d7a0f04356d42528bbb65dc014adf2dab66", "type": "github" }, "original": { diff --git a/home.nix b/home.nix index fa79dfc..0822516 100644 --- a/home.nix +++ b/home.nix @@ -71,9 +71,33 @@ let set -euo pipefail state_dir="${config.home.homeDirectory}/.local/state/nasa-apod" + current_link="$state_dir/current" mkdir -p "$state_dir" + curl_args=( + --fail + --silent + --show-error + --location + --retry 30 + --retry-all-errors + --retry-delay 2 + --connect-timeout 10 + --max-time 300 + ) + + set_wallpaper() { + local target="$1" + + gsettings set org.gnome.desktop.background picture-uri "file://$target" + gsettings set org.gnome.desktop.background picture-uri-dark "file://$target" + gsettings set org.gnome.desktop.background picture-options 'zoom' + } + + json="$(curl "''${curl_args[@]}" 'https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY' || true)" + if [ -z "$json" ]; then + exit 0 + fi - json="$(curl -fsSL 'https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY')" media_type="$(printf '%s' "$json" | jq -r '.media_type // empty')" if [ "$media_type" != "image" ]; then @@ -82,7 +106,7 @@ let image_url="$(printf '%s' "$json" | jq -r '.hdurl // .url // empty')" if [ -z "$image_url" ]; then - exit 1 + exit 0 fi ext="''${image_url##*.}" @@ -99,14 +123,13 @@ let target="$state_dir/apod-$date_stamp.$ext" tmp="$target.tmp" - curl -fsSL "$image_url" -o "$tmp" - mv "$tmp" "$target" - ln -sfn "$target" "$state_dir/current" - - wallpaper_uri="file://$state_dir/current" - gsettings set org.gnome.desktop.background picture-uri "$wallpaper_uri" - gsettings set org.gnome.desktop.background picture-uri-dark "$wallpaper_uri" - gsettings set org.gnome.desktop.background picture-options 'zoom' + if curl "''${curl_args[@]}" "$image_url" -o "$tmp" && [ -s "$tmp" ]; then + mv "$tmp" "$target" + ln -sfn "$target" "$current_link" + set_wallpaper "$target" + else + rm -f "$tmp" + fi ''; }; zellijNewTabZoxide = pkgs.writeShellApplication { @@ -236,11 +259,6 @@ in # Configure GNOME settings dconf.settings = { - "org/gnome/desktop/background" = { - picture-options = "zoom"; - picture-uri = "file://${config.home.homeDirectory}/.local/state/nasa-apod/current"; - picture-uri-dark = "file://${config.home.homeDirectory}/.local/state/nasa-apod/current"; - }; "org/gnome/desktop/interface" = { clock-format = "12h"; clock-show-weekday = true; @@ -447,7 +465,9 @@ in show_startup_tips = false; show_release_notes = false; - on_force_close = "detach"; + attach_to_session = false; + on_force_close = "quit"; + session_serialization = false; ui = { pane_frames = { @@ -724,7 +744,7 @@ in systemd.user.timers.nasa-apod-wallpaper = { Unit.Description = "Refresh NASA APOD wallpaper daily"; Timer = { - OnStartupSec = "2m"; + OnStartupSec = "0"; OnUnitActiveSec = "1d"; Unit = "nasa-apod-wallpaper.service"; };