Sociable Wallpaper

All right, so I’ve been teasing this guy for a little while. I think it’s time I let the cat out of the bag.


So what is it? Put simply, it searches Twitter for desktop wallpaper, adds what it finds to your library, and then randomly sets your computer’s wallpaper to one of the images at regular intervals.

I forget what, exactly, prompted me to start working on this project. I think it had something to do with the fact that there are a lot of images out there that make excellent wallpapers – but they’re a bit hard to find. A few websites have popped up recently that have helped with this task, but it’s usually pages upon pages of images that takes a lot of time to sift through.

But Twitter is a great natural filter – people usually don’t tweet something unless it warrants it. (Excluding things like spam or commercial accounts, of course.) So, I started working on this little program.

At this point, it’s a proof of concept. It’s not in any sort of polished, final form. All the features work in a “this is alpha code and may break” sort of way. It searches Twitter for tweets with the “#wallpaper” hashtag, and then looks for any URLs. If one of the URLs points to an image, it pulls it down and adds it to a temporary list – the lower “Twitter” section in the screenshot above.

Selecting a wallpaper shows who tweeted it, and what the original text of the tweet was. When you mouse over a wallpaper, you also get three options:


The top button removes an image from your library. Because you may sometimes come across images that you don’t particularly like, the program asks if you want to exclude this picture from ever showing up again. If you say yes, then it’ll be added to an exclusion list that will stop it from showing up again – regardless of who tweets it.

The middle button pins the wallpaper. Pinned wallpapers are images you want to keep in your library. They appear in the section on top, as seen in the screenshot above, and won’t disappear if you restart the application. If you ever decide you don’t want to keep a wallpaper, you can unpin it. (To indicate that it is pinned, the wallpaper will keep showing the pinned icon, even after you mouse away from it.)

The bottom button magnifies the wallpaper. In this view, it fills the entire upper portion of the program. You can click anywhere on the zoomed version to dismiss it. Keep in mind that you can resize the main window (or fully maximize it) – which will also expand the size of the magnified image.

There is also a small settings screen that you can access by clicking the button with the gear on it, in the lower right. From this screen, you can control how often Twitter is searched, how often your wallpaper should change, and what the minimum size an image should be in order to be included in the library.

And speaking of changing the wallpaper – it will randomly choose an image, either from your pinned list, or the images it has found on Twitter. So if you don’t want an image to show as a wallpaper, it is best to remove it.

A few last points: by default, a wallpaper image is named the URL it was pulled from. But you can rename it to anything you want – selecting the thumbnail lets you change the text below it. You can close the main window any time – it will sit in your system tray. Double click the icon to re-open the window, or right click to Exit. When you first start the program, it won’t check Twitter right away. It will start at the next scheduled interval. You will know it’s checking Twitter, as there will be a green progress bar in the “Twitter” header bar.

I think that’s it as far as features go. I’m offering this proof of concept version as a way to gauge what people think of it. I have a lot of interesting ideas for where this could go – but with both Trowl and Project Nom being actively developed, I don’t want to spend a lot of time on this unless it’s something people would actually use and enjoy.

So if you like it, let me know! And if you don’t like it, let me know that too – but let me know what could be done to improve it.

In any case, I hope you like playing with this as much as I have. You’ll notice that there aren’t too many #wallpaper tweets that actually link directly to an image, so if you have any wallpapers you can share with a #wallpaper tag on Twitter, please do! And I’ll do the same.


Proof of concept. Requires .NET Framework 4. 505KB.

Update: Something like this doesn’t really work unless lots of people contribute their favorite wallpapers. So, to that end: you can now upload your own wallpapers and tweet them!

Tagged , , ,

13 thoughts on “Sociable Wallpaper

  1. Shinkuu says:

    Smart-looking program, and a cool idea! I’ll let you know what I think once I try it.

  2. Shinkuu says:

    It works! Kinda. It’s hard for me to tell when it’s working and when there’s just nothing for it to grab. How far back in the Twitter timeline does it go back? At the moment I have it set to check every 1 minute but I’ve only seen one result so far, and it was a NSFW one.

    It was a wallpaper I didn’t want to keep, so I X’d it. It made me think of two things… even though the wallpaper disappeared, the relevant tweet info did not. And another was… what if I removed it by accident? It might be nice to have a log of removed pics so you can change your mind later, but I imagine that’d be a fair amount of work.

    One thing I wished for right off the bat was some way to tell the program, “Search for wallpapers now!” I figured the next best thing was setting the interval to 1 minute. It might be nice to have status messages like, “Last checked X minutes ago” or “No new #wallpapers found in last X minutes” or something.

    Speaking of the hashtag… Have you thought about letting the user customize what it searches on? I don’t know what other tags someone might use for wallpapers, but… What if you wanted to look for #anime #wallpaper in particular? I dunno, though, just #wallpaper would probably suffice.

    Hm, one thing about the tweet info… What if it could appear in a small pop-up window, and it was easy for the user to copy to clipboard things like the tweet’s sender, a link to the tweet, stuff like that? If someone happened to be a prolific wallpaper tweeter, or just someone who had stuff you liked, you might want to try following that user… Or retweet a wallpaper you really liked!

    One other thing I was thinking… A while back, didn’t you already work on a program to occasionally change your wallpaper to another one from your collection? I can see how it’s nice in this program to keep things interesting, but personally I’d feel like doing one of two other things… I’d like to be able to either immediately set a picture as my current wallpaper, or to save it to a pre-determined folder somewhere. For example, maybe “Z:\Pictures\Wallpapers\From Twitter”. By default I guess it could be something like “My Documents\Pictures\Twitter Wallpapers”.

    Overall, I like it! It seems like a fun idea. I guess most of the program is just seeing what people tweet, which you have no control over… So right now it’s really barren for me. I didn’t use your random wallpaper program much because I didn’t have a huge stock of wallpapers saved up, so something like this could really help expand my collection!

    • mageuzi says:

      Thanks for the feedback!

      For the initial pull from Twitter, it goes back as far as Twitter allows for the search timeline. After that, it picks up from where it left off. You’re right that a more concrete status indicator would work well — right now the only indication it’s doing anything is the “TWITTER” header will show a green progress bar when it’s actively querying Twitter and analyzing the results. It’s pretty subtle.

      Pretty much everything else you talk about is stuff I’d really love to do with this program. :) Custom hashtags, tweeting or retweeting a wallpaper in your library, adding your own local library — definitely good stuff, and would probably be some of the first things I’d add if I worked on expanding the program’s capabilities.

      Like I said in the post: this is a proof of concept, so it only has the very bare amount of features to illustrate the idea. If it seems like something people like, then I’d love to build out these extra bells and whistles. But I didn’t want to spend time doing that if no one was going to use it. :)

      • Shinkuu says:

        Hm, just now Windows said it stopped working. Sorry I don’t have any more info on what happened! I just checked on it randomly and it was no longer working. I had it check every 1 minute, change the wallpaper every 30 minutes (though of course I had nothing to change to at that point) and didn’t check either of the minimum dimensions for the image. Maybe it tried to change my wallpaper when I didn’t have any to choose from, and that caused the problem…

        But cool, yeah! This is a really fun idea and I’d be interested to see how you build upon it. Hopefully other people like it too!

    • mageuzi says:

      Oh, also: a special note about the NSFW image you got.

      I know exactly what you’re talking about, I got that one this morning too. One of my other ideas was building a way to add certain wallpapers to a database of inappropriate or adult wallpapers. You could flag the image, and that data would be shared with other users of the program. A user could then exclude those images from their results if they wished.

  3. Shinkuu says:

    Hm, this is odd. For some reason I’m not seeing any results, even though when I go to Twitter’s page I get a ton of results for #wallpaper. The only result I’ve seen all day was the one from “HackettPrince” this morning.

    • mageuzi says:

      This is normal. While there are a lot of matches for #wallpaper, very few link directly to an image, which is what the program requires right now (unfortunately).

      On top of that, even though you have the program to check Twitter every minute, it may not REALLY check every minute. Twitter advises application developers to not hammer their servers, and back off if you don’t receive results. So it may sometimes be 5, 10, 20 minutes before new results pop up.

      That being said, you should see the #wallpaper tweet I sent earlier eventually…

      • Shinkuu says:

        Once I downloaded the newer version, I set it back to checking Twitter every 15 minutes.

        Checking the Twitter results for #wallpaper, there seemed to be a number of them that had links, yet they still weren’t being picked up by the program… I went away for a bit then checked it again, and it had crashed once again. But I could see it had loaded one new Twitter result, but it was your second Pokemon link, and it had missed your first one entirely (not to mention tweets from others)

        Hm, sorry, I’m not really sure what’s going on. Are your results different?

        • mageuzi says:

          I’ve had the same results. I don’t think there were any wallpaper images today except for the ones I posted — but I got both of the ones I posted, so I’m not sure why you only got the second one. :/

          • Shinkuu says:

            Got your Assassin’s Creed wallpaper today, and someone else’s wallpaper as well!

  4. […] that my experimental project is out there in the wild (have you tried it yet? please try it!), it’s time to move on to something a bit more stable and mainstream: […]

Leave a Reply

Your email address will not be published.