Skin Development!



Thank you so much! followed the ReadMe from Github and got’er running in less then five mins! Any chance you’d do us a Lime Green and Black theme next??? Hopefully! Thanks in advance man!


Well, had some more free time today, and knocked out a nice Red skin, I think it turned out really well! Also took the time to colorize just about every image I could, so it feels more complete, and less hacky… Enjoy!

redrum1 redrum2 redrum3 redrum4

Available on Github

I also added @hpcodecraft’s alternative method for switching skins, and made a few updates to the documentation.



This is awesome @xstrex!! Thanks for the sweet skins and good documentation.


Are there any pages you can’t stylize?
I see hardcoded pygame.Color values in the code which makes me think it’s not possible (currently) to fully theme the launcher.

The music player or emulator rom list, for instance.
If those can all be themed I’ll close out as it doesn’t need to be worked on (and I’ll re-read the code and try to understand how the theme is applied)


You are correct, there are some hard-coded colors in pygame.Color, which cannot (currently) be colorized with a skin.

  • Vertical menu selector color
  • Scrollbar color
  • Font color
  • Pop-up confirmation dialog (eg: when selecting “PowerOFF”)
    • This dialog background color
    • This dialog text color
  • Settings/Storage: Free font color & usage bar color

Also, not exactly a color, but…

  • The graphic used for: Startup, Loading, Shutdown, etc…
    These are all stored outside of the Skin directory; would be nice if the were inside the skin directory, and change-able via a skin specific setting (config.cfg).
  • The font used to display text - I believe this is hardcoded, even though the TTF’s are provided via the skin. Would be nice if I could include a TTF file, then define it via the skin’s config.cfg file.

Hope this helps!


Perfect! I’m working on this issue now, I just thought I was going crazy after seeing how much progress you’ve made :smiley:

I’ll see if I can get all these hardcoded values converted over this weekend (no promises, though).
Once the colors are settable I’ll switch over to the fonts and images.

thank you! :+1:


Excellent! Thank you! Let me know if I can help further!


These are the files I’ve been looking at so far.
I know I am missing the music player (probably music_list_page or thing like that) and the time zone thing.

I’ve been unable to get self._SkinManager.GiveColor(“Color”)
To work in any of these…

Hopes this helps (unless you already found them. I was fairly slow.)


Right, that’s because there is no _SkinManager in that context.
I’m writing up a change right now and will talk with the other devs about it.


I mean, I’ve done my best to replicate the conditions in and and above_all_patch; including _SkinManager = None, imports… I was working on specifically to limit problems…

I know about zero python though. I’m excited to learn from your updated code when it’s ready! :smiley:
Context makes the world go round!


I wasn’t aware there’s aleady a skin manager in the works :smiley:

Anyway, I’ve created the first version of my first skin today! Here it is:

I also included the TTFs for now. Maybe I’ll dig deeper another time, enough for today xD

Btw, I like your Max Headroom avatar. :+1:

capture_01_04 capture_01_07 capture_01_02 capture_01_03 capture_01_05 capture_01_06 capture_01_01


Does anyone here know a way to take screenshots on the Gameshell?


xdg is your friend! Let me find a link…

export DISPLAY=:0
xwd -root -out screenshot.xwd

Convert screenshot.xwd with ImageMagick’s “convert” or, open in Gimp and export that way (I use the gimp method).

I like this method because it’s already installed, and doesn’t require a ton of bloated libs be installed on your GS. Could also try the x112vnc stuff, but I had mixed results with that.


Thanks for the help! I’m currently installing imagemagick and will try to capture & convert on the GS. I don’t have Gimp installed and don’t want it only for some screenshots… ^^



$ xwd -root -out screenshot.xwd
xwd: unable to open display ‘’

It doesn’t seem to work via SSH? How do you issue the command?


(forgot to add that bit)


Awesome, that did it!
I found a command that instantly converts to png, when imagemagick is installed, so

sudo apt-get install imagemagick

and then

xwd -root | convert xwd:- capture_01.png



sudo apt-get install imagemagick --fix-missing

Thanks for the tip!



Oh, typo! Thanks - corrected it!


lol, I love the tiny cloud icon