Skip to main content

README.md

1# happybackgrounds
3This is a script for generating simple wallpapers and backgrounds by splattering icons from Font Awesome over a solid block of colour.
4Some examples:
6<table>
7 <tr>
8 <td><img src="readme_images/luna.png" alt="A grey background with dark grey crescents."></td>
9 <td><img src="readme_images/starfield.png" alt="A dark purple background with lighter purple five-pointed stars moving across the sky."></td>
10 </tr>
11 <tr>
12 <td><img src="readme_images/snowflake.png" alt="A light-blue background with some large turquoise-ish snowflakes."></td>
13 <td><img src="readme_images/plants.png" alt="A green background with lots of small, green seedlings. Each seedling has two leaves."></td>
14 </tr>
15 <tr>
16 <td><img src="readme_images/mars.png" alt="A Mars-type reddish orange background, with rockets in varying levels of darkness set against the background."></td>
17 <td><img src="readme_images/happy.png" alt="A yellow background with a light yellow smiling face at a jaunty angle."></td>
18 </tr>
19</table>
23## Usage
25You need Python 3 installed.
26Clone the repo, and run the "happybackgrounds" script to see how it can be used:
28```console
29; git clone https://github.com/alexwlchan/happybackgrounds.git
30; cd happybackgrounds
31; python3 happybackgrounds.py --help
32```
34You can choose:
36* the background colour
37* the icon to use
38* how many icons to show, and how big/small to make them
40The script [`run.sh`](run.sh) has the invocations that generated the examples in the table above.
42The script returns the path to the generated SVG file, or you can specify the output file with the `--out_path` flag.
43For example:
45```console
46; python3 happybackgrounds.py --background="#d6fcff" --icon_name="snowflake"
47/var/folders/_c/h0g4c9_n6rg8d2v509hztzdc0000gn/T/tmpfo3v6nqr.svg
48```
50You can convert these SVGs to PNGs using ImageMagick (as was done for the table above).
54## Known limitations
56Right now I run the script repeatedly until I get a "nice-looking" result; the success rate is nowhere near good enough to drop this into an automated process.
58* The script isn't very smart about where it places icons.
59 Sometimes they overlap, sometimes they disappear outside the viewbox.
61 Better awareness of where icons are, and spacing them nicely, would improve the success rate dramatically.
62 This also seems hard, so I skipped doing that for the initial attempt.
64* The choice of colours is sometimes good, sometimes not-so-good.
65 It's hard to know how to pick "good" colours.
66 Sometimes a lot of variety is good (e.g. with the Mars rockets), other times having them close together is better (e.g. the stars).
71## License
73CC0.