pywal 3.8.13__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. pywal/__init__.py +31 -0
  2. pywal/__main__.py +402 -0
  3. pywal/backends/__init__.py +10 -0
  4. pywal/backends/colorthief.py +69 -0
  5. pywal/backends/colorz.py +58 -0
  6. pywal/backends/fast_colorthief.py +53 -0
  7. pywal/backends/haishoku.py +53 -0
  8. pywal/backends/modern_colorthief.py +53 -0
  9. pywal/backends/okthief.py +56 -0
  10. pywal/backends/schemer2.py +51 -0
  11. pywal/backends/wal.py +127 -0
  12. pywal/colors.py +530 -0
  13. pywal/colorschemes/dark/3024.json +1 -0
  14. pywal/colorschemes/dark/ashes.json +1 -0
  15. pywal/colorschemes/dark/base16-3024.json +1 -0
  16. pywal/colorschemes/dark/base16-apathy.json +1 -0
  17. pywal/colorschemes/dark/base16-ashes.json +1 -0
  18. pywal/colorschemes/dark/base16-atelier-cave.json +1 -0
  19. pywal/colorschemes/dark/base16-atelier-dune.json +1 -0
  20. pywal/colorschemes/dark/base16-atelier-estuary.json +1 -0
  21. pywal/colorschemes/dark/base16-atelier-forest.json +1 -0
  22. pywal/colorschemes/dark/base16-atelier-heath.json +1 -0
  23. pywal/colorschemes/dark/base16-atelier-lakeside.json +1 -0
  24. pywal/colorschemes/dark/base16-atelier-plateau.json +1 -0
  25. pywal/colorschemes/dark/base16-atelier-savanna.json +1 -0
  26. pywal/colorschemes/dark/base16-atelier-seaside.json +1 -0
  27. pywal/colorschemes/dark/base16-atelier-sulphurpool.json +1 -0
  28. pywal/colorschemes/dark/base16-bespin.json +1 -0
  29. pywal/colorschemes/dark/base16-black-metal-bathory.json +1 -0
  30. pywal/colorschemes/dark/base16-black-metal-burzum.json +1 -0
  31. pywal/colorschemes/dark/base16-black-metal-funeral.json +1 -0
  32. pywal/colorschemes/dark/base16-black-metal-gorgoroth.json +1 -0
  33. pywal/colorschemes/dark/base16-black-metal-immortal.json +1 -0
  34. pywal/colorschemes/dark/base16-black-metal-khold.json +1 -0
  35. pywal/colorschemes/dark/base16-black-metal-marduk.json +1 -0
  36. pywal/colorschemes/dark/base16-black-metal-mayhem.json +1 -0
  37. pywal/colorschemes/dark/base16-black-metal-nile.json +1 -0
  38. pywal/colorschemes/dark/base16-black-metal-venom.json +1 -0
  39. pywal/colorschemes/dark/base16-black-metal.json +1 -0
  40. pywal/colorschemes/dark/base16-brewer.json +1 -0
  41. pywal/colorschemes/dark/base16-bright.json +1 -0
  42. pywal/colorschemes/dark/base16-brushtrees.json +1 -0
  43. pywal/colorschemes/dark/base16-chalk.json +1 -0
  44. pywal/colorschemes/dark/base16-circus.json +1 -0
  45. pywal/colorschemes/dark/base16-classic.json +1 -0
  46. pywal/colorschemes/dark/base16-codeschool.json +1 -0
  47. pywal/colorschemes/dark/base16-default.json +1 -0
  48. pywal/colorschemes/dark/base16-dracula.json +1 -0
  49. pywal/colorschemes/dark/base16-eighties.json +1 -0
  50. pywal/colorschemes/dark/base16-embers.json +1 -0
  51. pywal/colorschemes/dark/base16-flat.json +1 -0
  52. pywal/colorschemes/dark/base16-google.json +1 -0
  53. pywal/colorschemes/dark/base16-grayscale.json +1 -0
  54. pywal/colorschemes/dark/base16-greenscreen.json +1 -0
  55. pywal/colorschemes/dark/base16-gruvbox-hard.json +1 -0
  56. pywal/colorschemes/dark/base16-gruvbox-medium.json +1 -0
  57. pywal/colorschemes/dark/base16-gruvbox-pale.json +1 -0
  58. pywal/colorschemes/dark/base16-gruvbox-soft.json +1 -0
  59. pywal/colorschemes/dark/base16-harmonic.json +1 -0
  60. pywal/colorschemes/dark/base16-hopscotch.json +1 -0
  61. pywal/colorschemes/dark/base16-icy.json +1 -0
  62. pywal/colorschemes/dark/base16-irblack.json +1 -0
  63. pywal/colorschemes/dark/base16-isotope.json +1 -0
  64. pywal/colorschemes/dark/base16-kanagawa.json +1 -0
  65. pywal/colorschemes/dark/base16-macintosh.json +1 -0
  66. pywal/colorschemes/dark/base16-marrakesh.json +1 -0
  67. pywal/colorschemes/dark/base16-materia.json +1 -0
  68. pywal/colorschemes/dark/base16-material-palenight.json +1 -0
  69. pywal/colorschemes/dark/base16-material.json +1 -0
  70. pywal/colorschemes/dark/base16-materialer.json +1 -0
  71. pywal/colorschemes/dark/base16-mellow-purple.json +1 -0
  72. pywal/colorschemes/dark/base16-mocha.json +1 -0
  73. pywal/colorschemes/dark/base16-monokai.json +1 -0
  74. pywal/colorschemes/dark/base16-nord.json +1 -0
  75. pywal/colorschemes/dark/base16-ocean.json +1 -0
  76. pywal/colorschemes/dark/base16-oceanicnext.json +1 -0
  77. pywal/colorschemes/dark/base16-onedark.json +1 -0
  78. pywal/colorschemes/dark/base16-outrun.json +1 -0
  79. pywal/colorschemes/dark/base16-paraiso.json +1 -0
  80. pywal/colorschemes/dark/base16-phd.json +1 -0
  81. pywal/colorschemes/dark/base16-pico.json +1 -0
  82. pywal/colorschemes/dark/base16-pop.json +1 -0
  83. pywal/colorschemes/dark/base16-porple.json +1 -0
  84. pywal/colorschemes/dark/base16-railscasts.json +1 -0
  85. pywal/colorschemes/dark/base16-rebecca.json +1 -0
  86. pywal/colorschemes/dark/base16-seti.json +1 -0
  87. pywal/colorschemes/dark/base16-snazzy.json +1 -0
  88. pywal/colorschemes/dark/base16-solarflare.json +1 -0
  89. pywal/colorschemes/dark/base16-solarized.json +1 -0
  90. pywal/colorschemes/dark/base16-spacemacs.json +1 -0
  91. pywal/colorschemes/dark/base16-summerfruit.json +1 -0
  92. pywal/colorschemes/dark/base16-tomorrow-night.json +1 -0
  93. pywal/colorschemes/dark/base16-tube.json +1 -0
  94. pywal/colorschemes/dark/base16-twilight.json +1 -0
  95. pywal/colorschemes/dark/base16-unikitty.json +1 -0
  96. pywal/colorschemes/dark/base16-woodland.json +1 -0
  97. pywal/colorschemes/dark/base16-xcode-dusk.json +1 -0
  98. pywal/colorschemes/dark/base16-zenburn.json +1 -0
  99. pywal/colorschemes/dark/base16tooth.json +1 -0
  100. pywal/colorschemes/dark/catppuccin-frappe.json +25 -0
  101. pywal/colorschemes/dark/catppuccin-macchiato.json +25 -0
  102. pywal/colorschemes/dark/catppuccin-mocha.json +25 -0
  103. pywal/colorschemes/dark/darktooth.json +1 -0
  104. pywal/colorschemes/dark/dkeg-5725.json +1 -0
  105. pywal/colorschemes/dark/dkeg-amiox.json +1 -0
  106. pywal/colorschemes/dark/dkeg-bark.json +1 -0
  107. pywal/colorschemes/dark/dkeg-blend.json +1 -0
  108. pywal/colorschemes/dark/dkeg-blok.json +1 -0
  109. pywal/colorschemes/dark/dkeg-bluetype.json +1 -0
  110. pywal/colorschemes/dark/dkeg-blumune.json +1 -0
  111. pywal/colorschemes/dark/dkeg-book.json +1 -0
  112. pywal/colorschemes/dark/dkeg-branch.json +1 -0
  113. pywal/colorschemes/dark/dkeg-brownstone.json +1 -0
  114. pywal/colorschemes/dark/dkeg-bulb.json +1 -0
  115. pywal/colorschemes/dark/dkeg-chaires.json +1 -0
  116. pywal/colorschemes/dark/dkeg-coco.json +1 -0
  117. pywal/colorschemes/dark/dkeg-corduroy.json +1 -0
  118. pywal/colorschemes/dark/dkeg-depth.json +1 -0
  119. pywal/colorschemes/dark/dkeg-designr.json +1 -0
  120. pywal/colorschemes/dark/dkeg-diner.json +1 -0
  121. pywal/colorschemes/dark/dkeg-escen.json +1 -0
  122. pywal/colorschemes/dark/dkeg-fendr.json +1 -0
  123. pywal/colorschemes/dark/dkeg-flapr.json +1 -0
  124. pywal/colorschemes/dark/dkeg-forst.json +1 -0
  125. pywal/colorschemes/dark/dkeg-fury.json +1 -0
  126. pywal/colorschemes/dark/dkeg-harbing.json +1 -0
  127. pywal/colorschemes/dark/dkeg-kit.json +1 -0
  128. pywal/colorschemes/dark/dkeg-leaf.json +1 -0
  129. pywal/colorschemes/dark/dkeg-link.json +1 -0
  130. pywal/colorschemes/dark/dkeg-mattd.json +1 -0
  131. pywal/colorschemes/dark/dkeg-novmbr.json +1 -0
  132. pywal/colorschemes/dark/dkeg-owl.json +1 -0
  133. pywal/colorschemes/dark/dkeg-paints.json +1 -0
  134. pywal/colorschemes/dark/dkeg-parkd.json +1 -0
  135. pywal/colorschemes/dark/dkeg-pastely.json +1 -0
  136. pywal/colorschemes/dark/dkeg-petal.json +1 -0
  137. pywal/colorschemes/dark/dkeg-poly.json +1 -0
  138. pywal/colorschemes/dark/dkeg-prevail.json +1 -0
  139. pywal/colorschemes/dark/dkeg-provrb.json +1 -0
  140. pywal/colorschemes/dark/dkeg-raild.json +1 -0
  141. pywal/colorschemes/dark/dkeg-relax.json +1 -0
  142. pywal/colorschemes/dark/dkeg-scag.json +1 -0
  143. pywal/colorschemes/dark/dkeg-scape.json +1 -0
  144. pywal/colorschemes/dark/dkeg-shade.json +1 -0
  145. pywal/colorschemes/dark/dkeg-simplicity.json +1 -0
  146. pywal/colorschemes/dark/dkeg-skigh.json +1 -0
  147. pywal/colorschemes/dark/dkeg-slate.json +1 -0
  148. pywal/colorschemes/dark/dkeg-soundwave.json +1 -0
  149. pywal/colorschemes/dark/dkeg-spire.json +1 -0
  150. pywal/colorschemes/dark/dkeg-sprout.json +1 -0
  151. pywal/colorschemes/dark/dkeg-squares.json +1 -0
  152. pywal/colorschemes/dark/dkeg-stv.json +1 -0
  153. pywal/colorschemes/dark/dkeg-subtle.json +1 -0
  154. pywal/colorschemes/dark/dkeg-sundr.json +1 -0
  155. pywal/colorschemes/dark/dkeg-tealights.json +1 -0
  156. pywal/colorschemes/dark/dkeg-traffic.json +1 -0
  157. pywal/colorschemes/dark/dkeg-transposet.json +1 -0
  158. pywal/colorschemes/dark/dkeg-urban.json +1 -0
  159. pywal/colorschemes/dark/dkeg-vans.json +1 -0
  160. pywal/colorschemes/dark/dkeg-victory.json +1 -0
  161. pywal/colorschemes/dark/dkeg-view.json +1 -0
  162. pywal/colorschemes/dark/dkeg-wintry.json +1 -0
  163. pywal/colorschemes/dark/dracula.json +25 -0
  164. pywal/colorschemes/dark/draculansi.json +25 -0
  165. pywal/colorschemes/dark/gruvbox.json +1 -0
  166. pywal/colorschemes/dark/hybrid-material.json +1 -0
  167. pywal/colorschemes/dark/monokai.json +1 -0
  168. pywal/colorschemes/dark/rose-pine-moon.json +25 -0
  169. pywal/colorschemes/dark/rose-pine.json +25 -0
  170. pywal/colorschemes/dark/sexy-astromouse.json +1 -0
  171. pywal/colorschemes/dark/sexy-belge.json +1 -0
  172. pywal/colorschemes/dark/sexy-bitmute.json +1 -0
  173. pywal/colorschemes/dark/sexy-cloud.json +1 -0
  174. pywal/colorschemes/dark/sexy-colorfulcolors.json +1 -0
  175. pywal/colorschemes/dark/sexy-dawn.json +1 -0
  176. pywal/colorschemes/dark/sexy-deafened.json +1 -0
  177. pywal/colorschemes/dark/sexy-derp.json +1 -0
  178. pywal/colorschemes/dark/sexy-digerati.json +1 -0
  179. pywal/colorschemes/dark/sexy-doomicideocean.json +1 -0
  180. pywal/colorschemes/dark/sexy-dotshare.json +1 -0
  181. pywal/colorschemes/dark/sexy-dwmrob.json +1 -0
  182. pywal/colorschemes/dark/sexy-eqie6.json +1 -0
  183. pywal/colorschemes/dark/sexy-euphrasia.json +1 -0
  184. pywal/colorschemes/dark/sexy-gjm.json +1 -0
  185. pywal/colorschemes/dark/sexy-gnometerm.json +1 -0
  186. pywal/colorschemes/dark/sexy-gotham.json +1 -0
  187. pywal/colorschemes/dark/sexy-gslob-nature-suede.json +1 -0
  188. pywal/colorschemes/dark/sexy-hund.json +1 -0
  189. pywal/colorschemes/dark/sexy-hybrid.json +1 -0
  190. pywal/colorschemes/dark/sexy-insignificato.json +1 -0
  191. pywal/colorschemes/dark/sexy-invisibone.json +1 -0
  192. pywal/colorschemes/dark/sexy-jasonwryan.json +1 -0
  193. pywal/colorschemes/dark/sexy-kasugano.json +1 -0
  194. pywal/colorschemes/dark/sexy-material.json +1 -0
  195. pywal/colorschemes/dark/sexy-mikado.json +1 -0
  196. pywal/colorschemes/dark/sexy-mikazuki.json +1 -0
  197. pywal/colorschemes/dark/sexy-monokai.json +1 -0
  198. pywal/colorschemes/dark/sexy-muse.json +1 -0
  199. pywal/colorschemes/dark/sexy-nancy.json +1 -0
  200. pywal/colorschemes/dark/sexy-navy-and-ivory.json +1 -0
  201. pywal/colorschemes/dark/sexy-neon.json +1 -0
  202. pywal/colorschemes/dark/sexy-numixdarkest.json +1 -0
  203. pywal/colorschemes/dark/sexy-orangish.json +1 -0
  204. pywal/colorschemes/dark/sexy-parker_brothers.json +1 -0
  205. pywal/colorschemes/dark/sexy-phrak1.json +1 -0
  206. pywal/colorschemes/dark/sexy-pretty-and-pastel.json +1 -0
  207. pywal/colorschemes/dark/sexy-rasi.json +1 -0
  208. pywal/colorschemes/dark/sexy-rezza.json +1 -0
  209. pywal/colorschemes/dark/sexy-rydgel.json +1 -0
  210. pywal/colorschemes/dark/sexy-s3r0-modified.json +1 -0
  211. pywal/colorschemes/dark/sexy-sexcolors.json +1 -0
  212. pywal/colorschemes/dark/sexy-simple_rainbow.json +1 -0
  213. pywal/colorschemes/dark/sexy-splurge.json +1 -0
  214. pywal/colorschemes/dark/sexy-swayr.json +1 -0
  215. pywal/colorschemes/dark/sexy-sweetlove.json +1 -0
  216. pywal/colorschemes/dark/sexy-tango.json +1 -0
  217. pywal/colorschemes/dark/sexy-tangoesque.json +1 -0
  218. pywal/colorschemes/dark/sexy-tartan.json +1 -0
  219. pywal/colorschemes/dark/sexy-theme2.json +1 -0
  220. pywal/colorschemes/dark/sexy-thwump.json +1 -0
  221. pywal/colorschemes/dark/sexy-tlh.json +1 -0
  222. pywal/colorschemes/dark/sexy-trim-yer-beard.json +1 -0
  223. pywal/colorschemes/dark/sexy-user-77-mashup-colors.json +1 -0
  224. pywal/colorschemes/dark/sexy-vacuous2.json +1 -0
  225. pywal/colorschemes/dark/sexy-visibone-alt-2.json +1 -0
  226. pywal/colorschemes/dark/sexy-visibone.json +1 -0
  227. pywal/colorschemes/dark/sexy-x-dotshare.json +1 -0
  228. pywal/colorschemes/dark/sexy-zenburn.json +1 -0
  229. pywal/colorschemes/dark/solarized.json +1 -0
  230. pywal/colorschemes/dark/tempus_autumn.json +1 -0
  231. pywal/colorschemes/dark/tempus_dusk.json +1 -0
  232. pywal/colorschemes/dark/tempus_future.json +1 -0
  233. pywal/colorschemes/dark/tempus_rift.json +1 -0
  234. pywal/colorschemes/dark/tempus_spring.json +1 -0
  235. pywal/colorschemes/dark/tempus_summer.json +1 -0
  236. pywal/colorschemes/dark/tempus_warp.json +1 -0
  237. pywal/colorschemes/dark/tempus_winter.json +1 -0
  238. pywal/colorschemes/dark/tokyonight-moon.json +25 -0
  239. pywal/colorschemes/dark/tokyonight-night.json +25 -0
  240. pywal/colorschemes/dark/tokyonight-storm.json +25 -0
  241. pywal/colorschemes/dark/vscode.json +1 -0
  242. pywal/colorschemes/dark/zenburn.json +1 -0
  243. pywal/colorschemes/light/3024.json +1 -0
  244. pywal/colorschemes/light/ashes.json +1 -0
  245. pywal/colorschemes/light/base16-atelier-cave.json +1 -0
  246. pywal/colorschemes/light/base16-atelier-dune.json +1 -0
  247. pywal/colorschemes/light/base16-atelier-estuary.json +1 -0
  248. pywal/colorschemes/light/base16-atelier-forest.json +1 -0
  249. pywal/colorschemes/light/base16-atelier-heath.json +1 -0
  250. pywal/colorschemes/light/base16-atelier-lakeside.json +1 -0
  251. pywal/colorschemes/light/base16-atelier-plateau.json +1 -0
  252. pywal/colorschemes/light/base16-atelier-savanna.json +1 -0
  253. pywal/colorschemes/light/base16-atelier-seaside.json +1 -0
  254. pywal/colorschemes/light/base16-atelier-sulphurpool.json +1 -0
  255. pywal/colorschemes/light/base16-classic.json +1 -0
  256. pywal/colorschemes/light/base16-cupcake.json +1 -0
  257. pywal/colorschemes/light/base16-cupertino.json +1 -0
  258. pywal/colorschemes/light/base16-default.json +1 -0
  259. pywal/colorschemes/light/base16-github.json +1 -0
  260. pywal/colorschemes/light/base16-google.json +1 -0
  261. pywal/colorschemes/light/base16-grayscale.json +1 -0
  262. pywal/colorschemes/light/base16-gruvbox-hard.json +1 -0
  263. pywal/colorschemes/light/base16-gruvbox-medium.json +1 -0
  264. pywal/colorschemes/light/base16-gruvbox-soft.json +1 -0
  265. pywal/colorschemes/light/base16-harmonic.json +1 -0
  266. pywal/colorschemes/light/base16-materialer.json +1 -0
  267. pywal/colorschemes/light/base16-mexico.json +1 -0
  268. pywal/colorschemes/light/base16-one.json +1 -0
  269. pywal/colorschemes/light/base16-shapeshifter.json +1 -0
  270. pywal/colorschemes/light/base16-solarized.json +1 -0
  271. pywal/colorschemes/light/base16-summerfruit.json +1 -0
  272. pywal/colorschemes/light/base16-tomorrow.json +1 -0
  273. pywal/colorschemes/light/base16-unikitty.json +1 -0
  274. pywal/colorschemes/light/catppuccin-latte.json +25 -0
  275. pywal/colorschemes/light/github.json +1 -0
  276. pywal/colorschemes/light/rose-pine-dawn.json +25 -0
  277. pywal/colorschemes/light/sexy-mostly-bright.json +1 -0
  278. pywal/colorschemes/light/solarized.json +1 -0
  279. pywal/colorschemes/light/tempus_dawn.json +1 -0
  280. pywal/colorschemes/light/tempus_fugit.json +1 -0
  281. pywal/colorschemes/light/tempus_past.json +1 -0
  282. pywal/colorschemes/light/tempus_totus.json +1 -0
  283. pywal/colorschemes/light/tokyonight-day.json +25 -0
  284. pywal/donation.py +18 -0
  285. pywal/eastereggs.py +139 -0
  286. pywal/export.py +365 -0
  287. pywal/image.py +116 -0
  288. pywal/reload.py +138 -0
  289. pywal/sequences.py +108 -0
  290. pywal/settings.py +28 -0
  291. pywal/templates/Colors.hs +37 -0
  292. pywal/templates/colors +16 -0
  293. pywal/templates/colors--nodim-alacritty.yml +53 -0
  294. pywal/templates/colors-alacritty.toml +62 -0
  295. pywal/templates/colors-alacritty.yml +63 -0
  296. pywal/templates/colors-foot.ini +20 -0
  297. pywal/templates/colors-fuzzel.ini +11 -0
  298. pywal/templates/colors-hyprland.conf +21 -0
  299. pywal/templates/colors-kitty.conf +30 -0
  300. pywal/templates/colors-konsole.colorscheme +63 -0
  301. pywal/templates/colors-leftwm-theme.ron +9 -0
  302. pywal/templates/colors-mako +3 -0
  303. pywal/templates/colors-nqq.css +31 -0
  304. pywal/templates/colors-oomox +17 -0
  305. pywal/templates/colors-polybar +8 -0
  306. pywal/templates/colors-putty.reg +26 -0
  307. pywal/templates/colors-retroarch.cfg +8 -0
  308. pywal/templates/colors-rgb +16 -0
  309. pywal/templates/colors-rio.toml +32 -0
  310. pywal/templates/colors-rofi-dark.rasi +166 -0
  311. pywal/templates/colors-rofi-light.rasi +166 -0
  312. pywal/templates/colors-speedcrunch.json +15 -0
  313. pywal/templates/colors-sway +21 -0
  314. pywal/templates/colors-themer.js +20 -0
  315. pywal/templates/colors-tilix.json +35 -0
  316. pywal/templates/colors-tofi +4 -0
  317. pywal/templates/colors-tty.sh +19 -0
  318. pywal/templates/colors-vscode.json +14 -0
  319. pywal/templates/colors-wal-dmenu.h +6 -0
  320. pywal/templates/colors-wal-dwl.h +13 -0
  321. pywal/templates/colors-wal-dwm-urg.h +18 -0
  322. pywal/templates/colors-wal-dwm.h +13 -0
  323. pywal/templates/colors-wal-st.h +34 -0
  324. pywal/templates/colors-wal-tabbed.h +6 -0
  325. pywal/templates/colors-wal.vim +23 -0
  326. pywal/templates/colors-waybar.css +20 -0
  327. pywal/templates/colors-zathura +34 -0
  328. pywal/templates/colors-zed.json +105 -0
  329. pywal/templates/colors.Xresources +68 -0
  330. pywal/templates/colors.css +28 -0
  331. pywal/templates/colors.fish +39 -0
  332. pywal/templates/colors.json +29 -0
  333. pywal/templates/colors.properties +20 -0
  334. pywal/templates/colors.scss +26 -0
  335. pywal/templates/colors.sh +36 -0
  336. pywal/templates/colors.styl +24 -0
  337. pywal/templates/colors.yml +24 -0
  338. pywal/templates/ghostty.conf +24 -0
  339. pywal/theme.py +194 -0
  340. pywal/util.py +445 -0
  341. pywal/wallpaper.py +399 -0
  342. pywal-3.8.13.data/data/man/man1/wal.1 +254 -0
  343. pywal-3.8.13.dist-info/METADATA +76 -0
  344. pywal-3.8.13.dist-info/RECORD +348 -0
  345. pywal-3.8.13.dist-info/WHEEL +5 -0
  346. pywal-3.8.13.dist-info/entry_points.txt +2 -0
  347. pywal-3.8.13.dist-info/licenses/LICENSE.md +9 -0
  348. pywal-3.8.13.dist-info/top_level.txt +1 -0
pywal/__init__.py ADDED
@@ -0,0 +1,31 @@
1
+ """
2
+ '||
3
+ ... ... .... ... ... ... ... .... ||
4
+ ||' || '|. | || || | '' .|| ||
5
+ || | '|.| ||| ||| .|' || ||
6
+ ||...' '| | | '|..'|' .||.
7
+ || .. |
8
+ '''' ''
9
+ Created by Dylan Araps.
10
+ """
11
+
12
+ from .settings import __version__, __cache_version__
13
+ from . import colors
14
+ from . import export
15
+ from . import image
16
+ from . import reload
17
+ from . import sequences
18
+ from . import theme
19
+ from . import wallpaper
20
+
21
+ __all__ = [
22
+ "__version__",
23
+ "__cache_version__",
24
+ "colors",
25
+ "export",
26
+ "image",
27
+ "reload",
28
+ "sequences",
29
+ "theme",
30
+ "wallpaper",
31
+ ]
pywal/__main__.py ADDED
@@ -0,0 +1,402 @@
1
+ """
2
+ '||
3
+ ... ... .... ... ... ... ... .... ||
4
+ ||' || '|. | || || | '' .|| ||
5
+ || | '|.| ||| ||| .|' || ||
6
+ ||...' '| | | '|..'|' .||.
7
+ || .. |
8
+ '''' ''
9
+ Created by Dylan Araps.
10
+ """
11
+
12
+ import argparse
13
+ import logging
14
+ import os
15
+ import shutil
16
+ import sys
17
+ import textwrap
18
+
19
+ from .settings import __version__, CACHE_DIR, CONF_DIR
20
+ from . import colors
21
+ from . import export
22
+ from . import image
23
+ from . import reload
24
+ from . import sequences
25
+ from . import theme
26
+ from . import util
27
+ from . import wallpaper
28
+ from . import donation
29
+ from . import eastereggs
30
+
31
+
32
+ show_colorama_warning = False
33
+ if sys.platform.startswith("win"):
34
+ try:
35
+ import colorama
36
+ colorama.just_fix_windows_console()
37
+ except ImportError:
38
+ no_colorama_terms = [
39
+ "wezterm",
40
+ "alacritty",
41
+ "hyper",
42
+ "putty",
43
+ "ghostty",
44
+ "mintty",
45
+ ]
46
+ if os.environ.get("TERMINAL") not in no_colorama_terms and \
47
+ os.environ.get("TERM_PROGRAM") not in no_colorama_terms:
48
+ show_colorama_warning = True
49
+
50
+
51
+ def get_args():
52
+ """Get the script arguments."""
53
+ description = "wal - Generate colorschemes on the fly"
54
+ config_notes = '''
55
+ configuration:
56
+ pywal16 supports the usage of the following env vars for configuration
57
+
58
+ env vars:
59
+ XDG_CONFIG_HOME parent directory to the user wal/templates dir.
60
+ PYWAL_CACHE_DIR directory for the built templates, default XDG_CACHE_HOME/wal dir.
61
+ NO_FUN set to 1 to disable eastereggs.
62
+ EASTEREGGS set to 0 to disable eastereggs, set to 1 to enable them.
63
+ '''
64
+ arg = argparse.ArgumentParser(
65
+ description=description,
66
+ formatter_class=argparse.RawDescriptionHelpFormatter,
67
+ epilog=textwrap.dedent(config_notes)
68
+ )
69
+
70
+ arg.add_argument(
71
+ "-a",
72
+ metavar='"alpha"',
73
+ help="Set terminal background transparency. \
74
+ Must be a number between 0 and 100. \
75
+ *Only works in terminals that implement OSC-11 (URxvt)*",
76
+ )
77
+
78
+ arg.add_argument(
79
+ "-b", metavar="background", help="Custom background color to use."
80
+ )
81
+
82
+ arg.add_argument(
83
+ "--fg", metavar="foreground", help="Custom foreground color to use."
84
+ )
85
+
86
+ arg.add_argument(
87
+ "--backend",
88
+ metavar="backend",
89
+ help="Which color backend to use. \
90
+ Use 'wal --backend' to list backends.",
91
+ const="list_backends",
92
+ type=str,
93
+ nargs="?",
94
+ )
95
+
96
+ arg.add_argument(
97
+ "--out-dir",
98
+ metavar="out_dir",
99
+ help="Cache dir to export themes. \
100
+ Default is 'XDG_CACHE_HOME/wal'. \
101
+ This can also be set with the env var: 'PYWAL_CACHE_DIR'",
102
+ type=str,
103
+ nargs="?",
104
+ )
105
+
106
+ arg.add_argument(
107
+ "--theme",
108
+ "-f",
109
+ metavar="/path/to/file or theme_name",
110
+ help="Which colorscheme file to use. \
111
+ Use 'wal --theme' to list builtin and user themes.",
112
+ const="list_themes",
113
+ nargs="?",
114
+ )
115
+
116
+ arg.add_argument(
117
+ "--iterative",
118
+ action="store_true",
119
+ help="When pywal is given a directory as input and this "
120
+ "flag is used: Go through the images in order "
121
+ "instead of shuffled.",
122
+ )
123
+
124
+ arg.add_argument(
125
+ "--cols16",
126
+ metavar="method",
127
+ required=False,
128
+ nargs="?",
129
+ default=False,
130
+ const="darken",
131
+ choices=["darken", "lighten", "dual"],
132
+ help="Use 16 color output "
133
+ '"darken", "lighten" or "dual" '
134
+ "default: darken",
135
+ )
136
+
137
+ arg.add_argument(
138
+ "--recursive",
139
+ action="store_true",
140
+ help="When pywal is given a directory as input and this "
141
+ "flag is used: Search for images recursively in "
142
+ "subdirectories instead of the root only.",
143
+ )
144
+
145
+ arg.add_argument(
146
+ "--saturate", metavar="-1.0 - 1.0", help="Set the color saturation."
147
+ )
148
+
149
+ arg.add_argument(
150
+ "--preview",
151
+ action="store_true",
152
+ help="Print the current color palette.",
153
+ )
154
+
155
+ arg.add_argument(
156
+ "--vte",
157
+ action="store_true",
158
+ help="Fix text-artifacts printed in VTE terminals.",
159
+ )
160
+
161
+ arg.add_argument(
162
+ "-c", action="store_true", help="Delete all cached colorschemes."
163
+ )
164
+
165
+ arg.add_argument(
166
+ "-i",
167
+ metavar='"/path/to/img.jpg"',
168
+ help="Which image or directory to use.",
169
+ )
170
+
171
+ arg.add_argument(
172
+ "-l", action="store_true", help="Generate a light colorscheme."
173
+ )
174
+
175
+ arg.add_argument(
176
+ "-n", action="store_true", help="Skip setting the wallpaper."
177
+ )
178
+
179
+ arg.add_argument(
180
+ "-o",
181
+ metavar='"script_name"',
182
+ action="append",
183
+ help='External script to run after "wal".',
184
+ )
185
+
186
+ arg.add_argument(
187
+ "-p",
188
+ metavar='"theme_name"',
189
+ help="permanently save theme to "
190
+ "$XDG_CONFIG_HOME/wal/colorschemes with "
191
+ "the specified name",
192
+ )
193
+
194
+ arg.add_argument(
195
+ "-q", action="store_true", help="Quiet mode, don't print anything."
196
+ )
197
+
198
+ arg.add_argument(
199
+ "-r",
200
+ action="store_true",
201
+ help="'wal -r' is deprecated: Use \
202
+ (cat ~/.cache/wal/sequences &) instead.",
203
+ )
204
+
205
+ arg.add_argument(
206
+ "-R", action="store_true", help="Restore previous colorscheme."
207
+ )
208
+
209
+ arg.add_argument(
210
+ "-s", action="store_true", help="Skip changing colors in terminals."
211
+ )
212
+
213
+ arg.add_argument(
214
+ "-t", action="store_true", help="Skip changing colors in tty."
215
+ )
216
+
217
+ arg.add_argument("-v", action="store_true", help='Print "wal" version.')
218
+
219
+ arg.add_argument(
220
+ "-w",
221
+ action="store_true",
222
+ help="Use last used wallpaper for color generation.",
223
+ )
224
+
225
+ arg.add_argument(
226
+ "-e",
227
+ action="store_true",
228
+ help="Skip reloading gtk/xrdb/i3/sway/polybar",
229
+ )
230
+
231
+ arg.add_argument(
232
+ "--contrast",
233
+ metavar="1.0-21.0",
234
+ required=False,
235
+ type=float,
236
+ nargs="?",
237
+ help="Specify a minimum contrast ratio between palette "
238
+ "colors and the source image according to W3 "
239
+ "contrast specifications. Values between 1.5-4.5 "
240
+ "typically work best.",
241
+ )
242
+
243
+ return arg
244
+
245
+
246
+ def parse_args_exit(parser):
247
+ """Process args that exit."""
248
+ args = parser.parse_args()
249
+
250
+ if len(sys.argv) <= 1:
251
+ parser.print_help()
252
+ sys.exit(1)
253
+
254
+ if args.v:
255
+ parser.exit(0, "wal %s\n" % __version__)
256
+
257
+ if args.preview:
258
+ print("Current colorscheme:", sep="")
259
+ colors.palette()
260
+ sys.exit(0)
261
+
262
+ if args.r:
263
+ reload.colors()
264
+ sys.exit(0)
265
+
266
+ if args.c:
267
+ scheme_dir = os.path.join(CACHE_DIR, "schemes")
268
+ shutil.rmtree(scheme_dir, ignore_errors=True)
269
+ sys.exit(0)
270
+
271
+ if (
272
+ not args.i
273
+ and not args.theme
274
+ and not args.R
275
+ and not args.w
276
+ and not args.backend
277
+ ):
278
+ parser.error(
279
+ "No input specified.\n" "--backend, --theme, -i or -R are required."
280
+ )
281
+
282
+ if args.theme == "list_themes":
283
+ theme.list_out()
284
+ sys.exit(0)
285
+
286
+ if args.backend == "list_backends":
287
+ print(
288
+ "\n - ".join(
289
+ ["\033[1;32mBackends\033[0m:", *colors.list_backends()]
290
+ )
291
+ )
292
+ sys.exit(0)
293
+
294
+
295
+ def parse_args(parser):
296
+ """Process args."""
297
+ args = parser.parse_args()
298
+
299
+ if args.q:
300
+ logging.getLogger().disabled = True
301
+ sys.stdout = sys.stderr = open(os.devnull, "w")
302
+
303
+ if args.a:
304
+ util.alpha_integrify(args.a)
305
+ util.Color.passed_alpha_num = args.a
306
+ util.Color.alpha_num = args.a or util.Color.alpha_num
307
+
308
+ if args.i and not args.theme:
309
+ image_file = image.get(
310
+ args.i, iterative=args.iterative, recursive=args.recursive
311
+ )
312
+ colors_plain = colors.get(
313
+ image_file,
314
+ args.l,
315
+ args.backend,
316
+ sat=args.saturate,
317
+ c16=args.cols16,
318
+ cst=args.contrast,
319
+ )
320
+
321
+ if args.theme:
322
+ colors_plain = theme.file(args.theme, args.l, c16=args.cols16)
323
+ if args.i:
324
+ colors_plain["wallpaper"] = args.i
325
+
326
+ if args.R:
327
+ colors_plain = theme.file(os.path.join(CACHE_DIR, "colors.json"))
328
+
329
+ if args.w:
330
+ cached_wallpaper = util.read_file(os.path.join(CACHE_DIR, "wal"))
331
+ colors_plain = colors.get(
332
+ cached_wallpaper[0],
333
+ args.l,
334
+ args.backend,
335
+ sat=args.saturate,
336
+ c16=args.cols16,
337
+ cst=args.contrast,
338
+ )
339
+
340
+ if args.b:
341
+ args.b = "#%s" % (args.b.strip("#"))
342
+ colors_plain["special"]["background"] = args.b
343
+ colors_plain["colors"]["color0"] = args.b
344
+
345
+ if args.fg:
346
+ args.fg = "#%s" % (args.fg.strip("#"))
347
+ colors_plain["special"]["foreground"] = args.fg
348
+ colors_plain["colors"]["color15"] = args.fg
349
+
350
+ if not args.n:
351
+ wallpaper.change(colors_plain["wallpaper"])
352
+
353
+ if args.p:
354
+ theme.save(colors_plain, args.p, args.l)
355
+
356
+ sequences.send(colors_plain, to_send=not args.s, vte_fix=args.vte)
357
+
358
+ if sys.stdout.isatty():
359
+ colors.palette()
360
+
361
+ if args.out_dir:
362
+ export.every(colors_plain, CACHE_DIR)
363
+ else:
364
+ export.every(colors_plain)
365
+
366
+ if not args.e:
367
+ reload.env(tty_reload=not args.t)
368
+
369
+ if args.o:
370
+ for cmd in args.o:
371
+ util.disown([cmd])
372
+
373
+
374
+ def main():
375
+ """Main script function."""
376
+ global CACHE_DIR
377
+ default_cache_dir = CACHE_DIR
378
+ util.create_dir(os.path.join(CONF_DIR, "templates"))
379
+ util.create_dir(os.path.join(CONF_DIR, "colorschemes/light/"))
380
+ util.create_dir(os.path.join(CONF_DIR, "colorschemes/dark/"))
381
+
382
+ util.setup_logging()
383
+
384
+ if show_colorama_warning:
385
+ logging.warning("colorama is not present")
386
+
387
+ parser = get_args()
388
+
389
+ args = parser.parse_args()
390
+ if args.out_dir:
391
+ CACHE_DIR = args.out_dir
392
+ else:
393
+ CACHE_DIR = default_cache_dir
394
+
395
+ parse_args_exit(parser)
396
+ parse_args(parser)
397
+ donation.donation_message()
398
+ eastereggs.eemsg()
399
+
400
+
401
+ if __name__ == "__main__":
402
+ main()
@@ -0,0 +1,10 @@
1
+ r"""
2
+ Hh ____
3
+ HP "HHF:. `._ :.,-'"" "-.
4
+ F F" :::..'"" "-. `.
5
+ F , \ \ "BACKENDS"
6
+ F j\ / ; `.
7
+ | j `. ` A \
8
+ | | ;_ . 8 \
9
+ J F\_,'| "`-----.\ j `. \
10
+ """
@@ -0,0 +1,69 @@
1
+ """
2
+ Generate a colorscheme using ColorThief.
3
+ """
4
+
5
+ import logging
6
+ import sys
7
+
8
+ try:
9
+ from colorthief import ColorThief
10
+
11
+ except ImportError:
12
+ logging.error("ColorThief wasn't found on your system.")
13
+ logging.error("Try another backend. (wal --backend)")
14
+ sys.exit(1)
15
+
16
+ from .. import colors
17
+ from .. import util
18
+
19
+
20
+ def gen_colors(img):
21
+ """Loop until 16 colors are generated."""
22
+ color_cmd = ColorThief(img).get_palette
23
+
24
+ for i in range(0, 10, 1):
25
+ raw_colors = color_cmd(color_count=8 + i)
26
+
27
+ if len(raw_colors) >= 8:
28
+ break
29
+
30
+ if i == 10:
31
+ logging.error("ColorThief couldn't generate a suitable palette.")
32
+ sys.exit(1)
33
+
34
+ else:
35
+ logging.warning("ColorThief couldn't generate a palette.")
36
+ logging.warning("Trying a larger palette size %s", 8 + i)
37
+
38
+ return [util.rgb_to_hex(color) for color in raw_colors]
39
+
40
+
41
+ def adjust(cols, light, **kwargs):
42
+ """Create palette.
43
+ :keyword-args:
44
+ - c16: use 16 colors through specified method - [ "lighten" | "darken" ]
45
+ """
46
+ if "c16" in kwargs:
47
+ cols16 = kwargs["c16"]
48
+ else:
49
+ cols16 = False
50
+ cols.sort(key=util.rgb_to_yiq)
51
+ raw_colors = [*cols, *cols]
52
+ for color in raw_colors:
53
+ color = util.lighten_color(color, 0.40)
54
+ raw_colors[0] = util.darken_color(cols[0], 0.80)
55
+
56
+ return colors.generic_adjust(raw_colors, light, c16=cols16)
57
+
58
+
59
+ def get(img, light=False, **kwargs):
60
+ """Get colorscheme.
61
+ :keyword-args:
62
+ - c16: use 16 colors through specified method - [ "lighten" | "darken" ]
63
+ """
64
+ if "c16" in kwargs:
65
+ cols16 = kwargs["c16"]
66
+ else:
67
+ cols16 = False
68
+ cols = gen_colors(img)
69
+ return adjust(cols, light, c16=cols16)
@@ -0,0 +1,58 @@
1
+ """
2
+ Generate a colorscheme using Colorz.
3
+ """
4
+
5
+ import logging
6
+ import sys
7
+
8
+ try:
9
+ import colorz
10
+
11
+ except ImportError:
12
+ logging.error("colorz wasn't found on your system.")
13
+ logging.error("Try another backend. (wal --backend)")
14
+ sys.exit(1)
15
+
16
+ from .. import colors
17
+ from .. import util
18
+
19
+
20
+ def gen_colors(img):
21
+ """Generate a colorscheme using Colorz."""
22
+ # pylint: disable=not-callable
23
+ raw_colors = colorz.colorz(img, n=6, bold_add=0)
24
+ return [util.rgb_to_hex([*color[0]]) for color in raw_colors]
25
+
26
+
27
+ def adjust(cols, light, **kwargs):
28
+ """Create palette.
29
+ :keyword-args:
30
+ - c16: use 16 colors through specified method - [ "lighten" | "darken" ]
31
+ """
32
+ if "c16" in kwargs:
33
+ cols16 = kwargs["c16"]
34
+ else:
35
+ cols16 = False
36
+ raw_colors = [cols[0], *cols, "#FFFFFF", "#000000", *cols, "#FFFFFF"]
37
+ raw_colors[0] = util.darken_color(cols[0], 0.80)
38
+
39
+ return colors.generic_adjust(raw_colors, light, c16=cols16)
40
+
41
+
42
+ def get(img, light=False, **kwargs):
43
+ """Get colorscheme.
44
+ :keyword-args:
45
+ - c16: use 16 colors through specified method - [ "lighten" | "darken" ]
46
+ """
47
+ if "c16" in kwargs:
48
+ cols16 = kwargs["c16"]
49
+ else:
50
+ cols16 = False
51
+ cols = gen_colors(img)
52
+
53
+ if len(cols) < 6:
54
+ logging.error("colorz failed to generate enough colors.")
55
+ logging.error("Try another backend or another image. (wal --backend)")
56
+ sys.exit(1)
57
+
58
+ return adjust(cols, light, c16=cols16)
@@ -0,0 +1,53 @@
1
+ """
2
+ Generate a colorscheme using fast_colorthief.
3
+ """
4
+
5
+ import logging
6
+ import sys
7
+
8
+ try:
9
+ import fast_colorthief
10
+
11
+ except ImportError:
12
+ logging.error("fast_colorthief wasn't found on your system.")
13
+ logging.error("Try another backend. (wal --backend)")
14
+ sys.exit(1)
15
+
16
+ from .. import util
17
+ from .. import colors
18
+
19
+
20
+ def gen_colors(img):
21
+ """Ask backend to generate 16 colors."""
22
+ raw_colors = fast_colorthief.get_palette(img, 16)
23
+
24
+ return [util.rgb_to_hex(color) for color in raw_colors]
25
+
26
+
27
+ def adjust(cols, light, **kwargs):
28
+ """Create palette.
29
+ :keyword-args:
30
+ - c16: use 16 colors through specified method - [ "lighten" | "darken" ]
31
+ """
32
+ if "c16" in kwargs:
33
+ cols16 = kwargs["c16"]
34
+ else:
35
+ cols16 = False
36
+ cols.sort(key=util.rgb_to_yiq)
37
+ raw_colors = [*cols, *cols]
38
+ raw_colors[0] = util.darken_color(cols[0], 0.80)
39
+
40
+ return colors.generic_adjust(raw_colors, light, c16=cols16)
41
+
42
+
43
+ def get(img, light=False, **kwargs):
44
+ """Get colorscheme.
45
+ :keyword-args:
46
+ - c16: use 16 colors through specified method - [ "lighten" | "darken" ]
47
+ """
48
+ if "c16" in kwargs:
49
+ cols16 = kwargs["c16"]
50
+ else:
51
+ cols16 = False
52
+ cols = gen_colors(img)
53
+ return adjust(cols, light, c16=cols16)
@@ -0,0 +1,53 @@
1
+ """
2
+ Generate a colorscheme using Haishoku.
3
+ """
4
+
5
+ import logging
6
+ import sys
7
+
8
+ try:
9
+ from haishoku.haishoku import Haishoku
10
+
11
+ except ImportError:
12
+ logging.error("Haishoku wasn't found on your system.")
13
+ logging.error("Try another backend. (wal --backend)")
14
+ sys.exit(1)
15
+
16
+ from .. import colors
17
+ from .. import util
18
+
19
+
20
+ def gen_colors(img):
21
+ """Generate a colorscheme using Colorz."""
22
+ palette = Haishoku.getPalette(img)
23
+ return [util.rgb_to_hex(col[1]) for col in palette]
24
+
25
+
26
+ def adjust(cols, light, **kwargs):
27
+ """Create palette.
28
+ :keyword-args:
29
+ - c16: use 16 colors through specified method - [ "lighten" | "darken" ]
30
+ """
31
+ if "c16" in kwargs:
32
+ cols16 = kwargs["c16"]
33
+ else:
34
+ cols16 = False
35
+ cols.sort(key=util.rgb_to_yiq)
36
+ raw_colors = [*cols, *cols]
37
+ raw_colors[0] = util.lighten_color(cols[0], 0.40)
38
+ raw_colors[0] = util.darken_color(cols[0], 0.80)
39
+
40
+ return colors.generic_adjust(raw_colors, light, c16=cols16)
41
+
42
+
43
+ def get(img, light=False, **kwargs):
44
+ """Get colorscheme.
45
+ :keyword-args:
46
+ - c16: use 16 colors through specified method - [ "lighten" | "darken" ]
47
+ """
48
+ if "c16" in kwargs:
49
+ cols16 = kwargs["c16"]
50
+ else:
51
+ cols16 = False
52
+ cols = gen_colors(img)
53
+ return adjust(cols, light, c16=cols16)