Reviving an Old Program

What is a Shimeji?

    A shimeji is a litle desktop pet that entertains the user by walking around, grabbing windows, and reproducing until the whole screen is filled with them. From what I recall, these were pretty popular back in the early 2010's and possibly a bit before then. Since then, I haven't seen these as often. Until now, when I was messing with a friend's Windows VM that was intentionally used to test malware. We came across a crappy desktop pet, and that's when I remembered about shimejis.

Example


    After looking through a bunch of old shimejis online, I realized that if I wanted to have one on my computer, I'd have to go through a bunch of hoops to get the java code written way back in 2012 to work with my modern Java environment. I didn't feel like doing that, so instead I decided to give the shimeji software a breath of new modern programming life.

The Beginning

    So, to the drawing board. While my friend was thinking about designing the program structure, I was chipping away at trying to solve how we'd even make such a program. It draws the little character over all open windows, and those characters can even interact with the windows. Drawing the character over the screen didn't take that long to figure out. X11 has some nice functions to create a borderless overlay window. As for interacting with other windows, I haven't quite figured that out yet.

The Recent Stuff

    After my friend got the shimejis drawing to his screen on Windows (sorry macOS), he wrote some code to allow python scripts to control the shimejis. This way, shimejis can have their own personalities instead of fitting into a one-size-fits-all kind of deal.

Demo


    That's about all the progress I've made on this so far. Progress has slowed down because of schoolwork and other projects (expect a post soon about a Terraria world parser.) You can check out the code in this project here on my GitHub.