+
    uj8i(                     "   ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHtHtHtHtHt ^ R
IHtHt ^ RIHt R R ltR R ltR R lt R R lt!R R lt"R R lt#R R lt$R R lt%R R lt&R# )    N	NamespacePath)Hct)argb_from_rgb)Image)message)get_colours_for_image)compute_hashuser_config_pathwallpaper_link_pathwallpaper_path_pathwallpaper_thumbnail_pathwallpapers_cache_dir)Scheme
get_scheme)apply_coloursc                0    V ^8  d   QhR\         R\        /# )   pathreturn)r   bool)formats   ">/usr/lib/python3.14/site-packages/caelestia/utils/wallpaper.py__annotate__r      s     a a a$ a    c                 P    V P                  4       ;'       d    V P                  R9   # ).jpg)r   z.jpegz.pngz.webpz.tifz.tiff)is_filesuffix)r   s   &r   is_valid_imager"      s     <<>``dkk-```r   c                j    V ^8  d   QhR\         R\        \        \        3,          R\        R\        /# )r   wallfilter_size	thresholdr   )r   tupleintfloatr   )r   s   "r   r   r      s6     \ \T \c3h \E \d \r   c                     \         P                  ! V 4      ;_uu_ 4       pVP                  w  rEWA^ ,          V,          8  ;'       d    WQ^,          V,          8  uuRRR4       #   + '       g   i     R# ; i)r   N)r	   opensize)r$   r%   r&   imgwidthheights   &&&   r   
check_wallr0      sQ    	D		SA22[[vQR[A[7[ 
			s   :A$$A5	c                $    V ^8  d   QhR\         /# )r   r   )str)r   s   "r   r   r   $   s      s r   c                  R     \         P                  ! 4       #   \         d     R # i ; i)N)r   	read_textIOError r   r   get_wallpaperr7   $   s(    ",,.. s    &&c                F    V ^8  d   QhR\         R\        \        ,          /# )r   argsr   )r   listr   )r   s   "r   r   r   +   s"     L L LtDz Lr   c                    \        V P                  4      pVP                  4       '       g   . # VP                  R 4       Uu. uF  p\	        V4      '       g   K  VNK  	  ppV P
                  '       d   V# \        R4      p\        R V 4       4      \        R V 4       4      3pV Uu. uF#  p\        W%V P                  4      '       g   K!  VNK%  	  up# u upi u upi )*monitorsc              3   2   "   T F  qR ,          x  K  	  R# 5i)r.   Nr6   .0ms   & r   	<genexpr>!get_wallpapers.<locals>.<genexpr>6   s     3(Qjj(   c              3   2   "   T F  qR ,          x  K  	  R# 5i)r/   Nr6   r?   s   & r   rB   rC   6   s     8Wh8hrD   )
r   randomis_dirrglobr"   	no_filterr
   minr0   r&   )r9   dirfwallsr=   r%   s   &     r   get_wallpapersrN   +   s    
t{{
C::<<			#<1.*;QQE<~~~z"H3(33S8Wh8W5WWKKu!
14>> JAAuKK = Ls   CC(CCc                <    V ^8  d   QhR\         R\         R\         /# r   r$   cacher   r   )r   s   "r   r   r   ;   s!     
 
D 
 
$ 
r   c                 ~   VR ,          pVP                  4       '       g   \        P                  ! V 4      ;_uu_ 4       pVP                  R4      pVP	                  R\        P
                  4       VP                  P                  RRR7       VP                  VR4       RRR4       V# V#   + '       g   i     T# ; i)zthumbnail.jpgRGBTparentsexist_okJPEGN)   rX   )	existsr	   r+   convert	thumbnailNEARESTparentmkdirsave)r$   rQ   thumbr-   s   &&  r   	get_thumbra   ;   s    O#E<<>>ZZ++e$CMM*emm4LLtd;HHUF#	  L5L  Ls   A!B++B<	c                <    V ^8  d   QhR\         R\         R\        /# rP   )r   r2   )r   s   "r   r   r   H   s!       d s r   c           	         VR ,          p \         P                  ! VP                  4       4      #   \        \         P                  3 d     Mi ; i^ RIHp / p\        P                  ! \        Y4      4      ;_uu_ 4       pT! T4      TR&   TP                  R
\        P                  4       \        P                  ! \        TP                  R4      !  4      pTP                   ^<8  d   RMRTR&   RRR4       M  + '       g   i     M; iTP"                  P%                  RRR7       TP                  R	4      ;_uu_ 4       p\         P&                  ! YG4       RRR4       T#   + '       g   i     T# ; i)z
smart.json)get_variantvariantlightdarkmodeNTrT   w)   rj   )r   r   )jsonloadsr4   r5   JSONDecodeErrorcaelestia.utils.colourfulnessrd   r	   r+   ra   r[   LANCZOSr   from_intr   getpixeltoner]   r^   dump)r$   rQ   
opts_cacherd   optsr-   hctrL   s   &&      r   get_smart_optsrw   H   s   %Jzz*..011T))*  :D	Id*	+	+s%c*Yfemm,ll=#,,v*>?@"%((R-wVV 
,	+	+	+ D48					$ 
 K 
	 Ks(   #/ AA?A0C88D	E""E3	c                J    V ^8  d   QhR\         \        ,          R\        RR/# r   r$   no_smartr   Nr   r2   r   )r   s   "r   r   r   b   s%      tcz T d r   c                 ,   \        4       p\        \        V 4      ,          pR pV'       g9   \        W4      p\	        RVRRRVR,          RVR,          RVP
                  /4      pRVRRRVP                  RVP                  R\        \        W4      V4      /# )dynamicnameflavourdefaultrh   re   colours)
r   r   r   rw   r   r   rh   re   r   ra   )r$   rz   schemerQ   r~   
smart_optss   &&    r   get_colours_for_wallr   b   s    \F <#55ED#D0
9
6*:i06>>
 	96>>(4)?H r   c                J    V ^8  d   QhR\         \        ,          R\        RR/# ry   r{   )r   s   "r   r   r   }   s%     - -s
 -d -t -r   c           	         \        V 4      P                  4       p \        V 4      '       g   \        R V  R24      h\        P
                  P                  RRR7       \        P                  ! \        V 4      4       \        P
                  P                  RRR7       \        P                  ! RR7       \        P                  ! V 4       \        \        V 4      ,          p\        W4      p\        P
                  P                  RRR7       \        P                  ! RR7       \        P                  ! V4       \!        4       pVP"                  R8X  d0   V'       g(   \%        W4      pVR,          Vn        VR,          Vn        VP+                  4        \-        VP.                  VP&                  4        \0        P2                  ! \4        P6                  ! 4       4      P9                  R/ 4      pVP9                  R	4      ;p'       dH   \:        P<                  ! VR/ \>        P@                  CR
\        V 4      /C\:        PB                  R7       R# R#   \D        \0        PF                  3 d     R# i ; i)"z" is not a valid imageTrT   )
missing_okr}   rh   re   	wallpaperpostHookWALLPAPER_PATH)shellenvstderrN)$r   resolver"   
ValueErrorr   r]   r^   
write_textr2   r   unlink
symlink_tor   r   ra   r   r   r~   rw   rh   re   update_coloursr   r   rk   rl   r   r4   get
subprocessrunosenvironDEVNULLFileNotFoundErrorrm   )r$   rz   rQ   r`   r   r   cfg	post_hooks   &&      r   set_wallpaperr   }   s   :D$1TF"89:: $$TD$A""3t9-$$TD$A$/""4( <#55E d"E##))$)F##t4''.\F {{i#D0
 (#I. &..&++.
jj)3356::;K
++9+NN?rzz?#3SY?!))	 , t334 s   2BI I,+I,c                (    V ^8  d   QhR\         RR/# )r   r9   r   Nr   )r   s   "r   r   r      s     < <Y <4 <r   c                 L   \        V 4      pV'       g   \        R 4      h \        P                  ! 4       pVP	                  \        V4      4       V'       g   \        R4      h \        \        P                  ! V4      V P                  4       R#   \        \        3 d     L?i ; i)zNo valid wallpapers foundzOnly valid wallpaper is currentN)rN   r   r   r4   remover   r   r   rF   choicerz   )r9   
wallpapers	last_walls   &  r   
set_randomr      s    %J455'113	$y/*>?? 
 &--
+T]]; z* s   AB B#"B#)'rk   r   rF   r   argparser   pathlibr   materialyoucolor.hctr   "materialyoucolor.utils.color_utilsr   PILr	   caelestia.utils.hyprr
   caelestia.utils.materialr   caelestia.utils.pathsr   r   r   r   r   r   caelestia.utils.schemer   r   caelestia.utils.themer   r"   r0   r7   rN   ra   rw   r   r   r   r6   r   r   <module>r      si     	     $ <  ( :  6 /a\L 
46-`<r   