Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: A Native Art Gallery for the Mac (archagon.net)
146 points by archagon on May 9, 2018 | hide | past | favorite | 63 comments



Another approach is to create a window at desktop level. It can even display a web page with a system web view — you probably want to opt the window out of receiving mouse events, too, to avoid interfering with drag selection on the Desktop.

I do that at home with a local HTML file to randomly generate a desktop background at startup, and I’ve tried dynamic content (like a countdown clock). Code here: https://github.com/s4y/Dash

But for an app like this, you could do native, animated transitions, and avoid touching the desktop background settings.

Edit: you could even create a smaller interactive window (also at desktop level) with a link to the source, a button to advance to the next wallpaper…


Similar, but targeted more at desktop widgets is Ubersicht [0]. It provides a transparent, desktop-level browser window that lets you load and display widgets that get their input from CLI commands.

[0]: http://tracesof.net/uebersicht/


I recently looked into doing this for my Windows laptop, but found that it halved the battery life. Is this also a problem with running stuff like this on Macs?


Heh it's incredible hearing about someone _trying_ to do this one Windows (and Mac) - I have very vivid memories of Active Desktop on Windows 98 that let you set an HTML page as your 'wallpaper'/on your desktop https://en.wikipedia.org/wiki/Active_Desktop


I remember that some system crashes would cause it to disable itself, with a hyperlink to reenable it. I also remember being obsessed with converting movie clips into animated gifs, and setting those as my background.


I remember it well.


Negligible energy consumption. I wrote a desktop timelapse wallpaper app for Mac that creates a below-the-desktop window containing a movie player and then plays the movie stretched over 24 hrs. Energy impact was small, something like 0.1 in Activity Monitor.


Is this something you would care to share? This would be ideal for watching Wong Kar-wai films.


Sure, send me a mail at the address in my profile. I'll dig up the code tomorrow.


For posterity GitHub link is here: https://github.com/choongng/passage


If your app/web page isn’t doing work in the background and doesn’t receive mouse events, the energy impact should be close to nil — it should sit solidly at 0.0% CPU usage in Activity Monitor, else something isn’t right.


Neat! Do you know if this works well across Spaces? I went with the wallpaper approach because I figured it was likely to be the least error-prone, especially across OS updates.


Yes, you can make the window show on all spaces.

I'd point out, however, that when I first made Artpip (https://www.artpip.com/) I rendered backgrounds using a desktop level window but the performance overhead was too high when compared to just setting the backgrounds natively, so I ended up switching over to that instead. Artpip is made with Electron though, so if you do everything natively then maybe you'll see different results.


If you set the window’s collectionBehavior to:

    NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorCanJoinAllSpaces
…that should give it roughly the same behavior as the system desktop window. If you want to have things like different windows for each space, that might require the brittle hacks you’re talking about :-).

By the way, I meant to say that your approach is super cool too, and the blur and shadow effects look great.


I've been using an app called artpip for a while, it's great: https://www.artpip.com/


Creator of Artpip here. Came to suggest it as an alternative. Happy to answer any questions!

Also @OP - you might want to take a look at the wallpaper-macos[0] lib that I developed for Artpip. It uses the nodobj node wrapper but it should be a useful reference. You don't need to read from the sqlite DB or deal with restarting the dock. You can reliably get the current wallpaper like so [1]. Also you might want to check out how [2] it handles setting backgrounds on multiple spaces, should you want to support that.

[0] https://github.com/tom-james-watson/wallpaper-macos

[1] https://github.com/tom-james-watson/wallpaper-macos/blob/mas...

[2] https://github.com/tom-james-watson/macos-space-change


Thanks for the links! desktopImageURL works if you're manually cycling your wallpapers, but it won't give you the correct result if you're relying on the native macOS cycling functionality. (It only returns the source image directory URL.) Hence the private functions and Dock restarting.


Ah, ok. Why not just implement your own cycling instead of relying on the system cycling?


I suppose I envisioned the app as something that simply slotted on top of the native system behavior and wouldn't break anything when closed. Less hassles, less maintenance, and the user doesn't have to worry about automatic processes changing their system settings.

As a consequence, you can set the wallpaper for each Space to a different image or directory in System Preferences, and the app will only expose its "gallery management" features when it can match the current wallpaper with an image in its assigned Source directory.


Just downloaded your app, as I was looking for a more curated solution that what OP provides (I don't know enough about art to make my own selection).

One quick question I had was if it is possible to have Artpip only apply a background to one screen. I have an external monitor and I'd prefer if the two didn't always show the same wallpaper. Additionally, I have one personal wallpaper I particularity enjoy, and would like if I could keep that permanently on one monitor, while simultaneously running Artpip on the other.


Unfortunately no, not at the moment. This is a commonly requested feature though, so I'll definitely be adding support for different options for multi-monitor setups at some point.


I just downloaded this app and it looks beautiful. I've already recommended this to my dad who runs an art gallery.


this is great! can you also override the screensaver in osx?


Came here to second this. It notably brightens up my day every morning.


I think I'm the only one who rarely look at my desktop. Most of the time, it's been covered by windows/apps.


I've setup a second monitor on my desk. I rarely use it, because I'm away so much, so it just shows art or whatever I'm into at the moment.

I also threw a folder onto Google photos and then linked that up with a Chromecast on one of the office TVs. Perfect for art. I think the original tool could work great in both cases.


Me too — hence the "Show Desktop" shortcut by right-clicking the menu bar icon.


This is a cool app, but isn't the idea to integrate it somewhere you end up looking already, rather than have to think to look at it and click the shortcut? I have the same problem, I always cmd+tab between windows so I never see my desktop.

In the past I used a chrome extension called tab.pics that shows a new landscape image pulled from reddit on every blank tab. It was kinda buggy though, it rarely shows the caption of what I'm looking at, and the source material isn't always that interesting or high enough resolution and sometimes doesn't load at all.

Just an idea, but if you converted BackgroundifierBuddy to a chrome extension I would totally use it.


I've been using the Google Arts & Culture browser extension for years now, every new window/tab is art.

https://chrome.google.com/webstore/detail/google-arts-cultur...


I collect Maps of the World in a Dropbox folder, and tell Windows auto rotate to use this folder. So I see a different perspective or interpretation of "The World" every 10 minutes.

Some are just regions - USA, Europe, China, etc. Most are actual maps - places listed by Google searches or names translated from their native tongue, etc. A few are visualizations of the tallest mountains or longest rivers.


Ah, xearth! http://hewgill.com/xearth/original/

It inspired many clones. I used to run osxplanet but it seems long since defunct too: http://www.osxplanet.com


That reminds me — I need to get my hands on some scans of these older maps! https://www.wired.com/2013/08/prelinger-library-rare-maps/?p...


That's super cool; would you mind sharing your folder?



Very nice! Request: art gallery-like legends next to the artwork, with title/artist/date (I imagine this would only work with a curated source of art, but if I ever used something like this, I'd like to learn something too).


That was one of my original goals as well, but unfortunately there aren't many (any?) sources of downloadable art tagged with metadata. Hence, just the filename in the pop-up menu.


I realised the same thing when building Artpip and built up a database of ~25000 images and ~5000 artists via wikimedia's extremely unfriendly API.

I've thought about creating an open dataset that is free to use/download (everything is in the public domain anyway). The thing is, I have around 250GB of images (all images available in 4k) and I'm put off by the cost of hosting. If I were to just serve 2K images then the set would only be around 20GB.

Any suggestions for how to serve such a big file from a website?

I could just make it available as a dat (https://datproject.org), but it's not exactly a widely used technology yet. Maybe I should just make a torrent? Ideally I would be able to update the dataset in the future.


Can you distribute a torrent file?


If you ever get around to doing that, it would be super great! That's some excellent cataloguing work! (And DAT would be really neat to try out — I've been reading a lot about it recently and it seems like a very exciting new technology.)


I would love love love to have this available. I have an idea (not very original on interesting) for an iOS app and this would help me tremendously.


I wonder if it would be appropriate to submit to archive.org


Maybe Wikipedia? Might need some scripting to filter down all the articles


I see these kind of projects often, and I’m not sure how I feel about them. Art is more than just something nice to look at. By turning these pieces of art into wallpapers, it feels like the meaning, context, and significance are being stripped away. And you are missing the entire point. I could be entirely wrong as I’m no art expert.


I've recently been entranced by the late works of Wayne Thiebaud[1], to the point of checking out his collections at the library and meticulously scanning them in at home. Reading about the context and inspiration behind some of his pieces was illuminating, sure; but I still get the same feeling looking at his art even with this new information as I did when it first caught my eye at SFMOMA.

To me, the aesthetic and emotional impact of the art comes first, and everything else is just a value-add.

[1]: http://poulwebb.blogspot.com/2010/11/wayne-thiebaud-cityscap...


I agree with you on the point that aesthetic and emotional impact of the art is important, but I feel like having it as a wallpaper kind of takes that experience away. I think one has to be in a particular mood and mindset to really take that in. But having art as a wallpaper... I guess I am skeptical that the times between switching apps is the right time to take that all in.

Thank you for sharing that link! I remember seeing his work before at de Young museum and it brought back some memories :)


I guess I don't really see it as a wallpaper anymore, but an on-demand art gallery that just happens to be built using the wallpaper cycling functionality of macOS. My desktop is covered by windows 99% of the time anyway!


Yeah it's like putting music on in the background while you're doing something. You won't actually be paying attention to the lyrics or the notes that much compared to actively listening to a song.


Exposure is a big first step. Art can be explored intuitively.


GeekTool[0] natively supports a slideshow widget. Supports folders and URLs for webcams and whatever else too.

Setup a folder full of stuff that reminds you not to stress.

[0]: https://www.tynsoe.org/v2/geektool/


You know what I actually miss when I use OSX? An actual mspaint clone.

Not an ad-ridden or pay version, just a built in paint app I can doodle on that's in there by default.


I believe you can doodle on an image with Preview


Preview.app doesn't allow you to start off with a canvas of a specific size, and then start doodling though. I really think they should add this feature, because the Markup functionality in Preview is really good. What surprises me is that a lot of people don't know that Preview is very powerful.


Nice! I've been using a similar app for years. Love it: http://www.artfulmac.com


Yes, I even cite it as an inspiration for making Backgroundifier! I loved the idea and execution, but I wanted to use my own art folders. It no longer appears to be for sale, unfortunately.


I have a folder with 30 or so polygon patterns from https://trianglify.io/ that rotate every half an hour on both Windows and the Mac.

This is a nice complement to it, especially since I can run this on my Mac and share the generated wallpapers via OneDrive with Windows :)


I was just hacking on something like this a few weeks ago. I was using Imagemagick and a bash script. In the end I wasn't to happy with my results and figured I was spending too much time. This looks great, I'm going to try it out.


That's a slick way to rotate images. Curious, can you name the paintings in the video?


Lessee...

* "The Seasons: Autumn" — Alphonse Mucha

* "A Winding Road" — Sir Matthew Smith

* "Town View, Bogneux" — Anton Lindforss

* "Sea and Sky" — Rafael Martínez Padilla

* "The Ninth Wave" — Ivan Aivazovsky

* "Forever with Moscow. Forever with the Russian People" — Mikhail Khmelko

* "Tsar Dadon Before the Shemakha Queen" — Ivan Bilibin

* "Paysage" — Jean Metzinger


Are they bundled with the app when it is purchased via the App Store? If not, I think that would be a good idea.

As for the app itself - it looks very good. Well done!


I would also like to know this or if you can upload somewhere


Only works on High Sierra. Any plans to add compatibility with prior OS's?


I can compile it to run with older macOS versions, but I won’t be able to test it. What version are you running?


I don’t get it; if you work behind Your iMac you will never see the desktop?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: