Skip to content
Cecil edited this page Oct 31, 2015 · 1 revision

Do you want to make a Shoes app that doesn't look like a Shoes app? Maybe you just like to tweak things to scratch an itch?

Shoes 3.2 does have some facilities to make this slightly easier - primarily for Windows and OSX. It's not the easiest task you'll perform. You can't hide Shoes from someone who wants to poke around looking for it.

Icons

One step is to replace the Shoes icon. See this document about creating icons. There are a lot of icons involved with a Windows app.

Setting an icon and title for Shoes Windows.

Dialog titles

Gtk Themes for Windows (and Linux?)

Prior to Shoes 3.2.22, Shoes on Windows didn't use the built in theme engine. It just kind of defaulted to something reasonable. Now it uses the MS-Windows theme which is prettier. And you can tweak it! In fact, we had to tweak it just a tiny bit.

In gtk.c after the gtk_init() call is a commented call to shoes_native_print_env which lists the files Gtk is going to look for to get theme info. Uncomment and Shoes will report (cshoes.exe please) it's going to look for these

  1. {shoes_install_dir}\share\gtk-2.0\gtkrc
  2. C:\PROGRAMDATA\gtk-2.0\gtkrc
  3. {shoes_install_dir}\etc\gtk-2.0\gtkrc
  4. C:{HOME}.gtkrc-2.0

If there are multiple settings files, basically the last one wins. I strongly recommend you do not use #4, except for testing. Other Gtk programs like Gimp would see that settings file and you don't want that. Shoes puts it's tweak in #3. If you installed Shoes in the normal place that would be C:\Program Files (x86)\Shoes\etc\gtk-2.0\gtkrc. If you look at that you can see we set the font and size for widgets and friends.

This page contains some old but still good downloads. Pay attention to the details and warnings. Download the Prefs Tools supports 2.10 or later. When you run that app you get an idea of what you can tweak. Changes appear to be saved to #4 - did I warn you about that choice? Yes, I did.

Drive packaging with a script instead of clicks.

In Shoes 3.2, the packaging GUI and the code to do the work are in two separate files. You can can create a ruby script that sets the proper variables and call the second script. Which means that ruby script can build your app if you invoke shoes $ cshoes --ruby myscript.rb

Your own website for download and packaging

In Shoes 3.2 the website is not hard coded into various binary programs that only windows or osx developers can fix. Don't like the current website? You can change Shoes to use a different website. The website will have to run a cgi which is currently a ruby script (1.8.7 I think) but it could be written in anything you like.

Shoes based custom installer.

Under development so we can't talk too much about it. It doesn't hide Shoes like the difficult process above but provides a way make you Shoes app appear to be an application - special launchers and icons and the like.

Clone this wiki locally