ZeroBrane Studio in Zenburn and Tomorrow colors

Zenburn is a low contrast color scheme that was originally created for Vim and then applied to many popular editors and environments. According to the author "it's easy for your eyes and designed to keep you in the zone for long programming sessions."

Tomorrow theme is a bright color theme that aids your programming "with easily identifiable colours that add meaning and enhance legibility" with several theme variations (Tomorrow, TomorrowNight, TomorrowNightBright, TomorrowNightBlue, and TomorrowNightEighties).

ZeroBrane Studio always allowed for configuring colors used in the IDE, but it was not consistently applied to some of the areas in the Output/Console windows and some elements were not available for styling at all (like markers and their background). Now you can switch between color schemes (using cfg/scheme-picker.lua script) and see the immediate effect of your changes; you still need to update the cfg/user.lua configuration file after you settle on a particular scheme.

Here is the screenshot of an editor tab with Zenburn color scheme applied:

The number of colors used is set to 12 to provide some consistency across different color schemes; you can extend them to get more variety if you want. The current version of ZeroBrane Studio (get the most recent one from Github until v0.34 is out) supports Zenburn (thanks to Srdjan Marković for mapping Zenburn colors to the ZBS format) and six Tomorrow theme variations in addition to the default color scheme. Thanks to Christoph Kubisch for putting the original styling mechanism in place.

You should get a copy of my slick ZeroBrane Studio IDE and follow me on twitter here.


Hi, I'm evaluating MAOI at present and using ZeroBraneStudio to do it. If I go with MOAI (moving from Corona) I will most likely buy ZBS as editor.

I'm finding it difficult to read my lua files in the editor (advanced age doesn't help) but the text in the edit window is not nearly as crisp as in the project window. The Bold text is fuzzy but readable while the standard text is fuzzy and a light grey in colour. I can find no access to preferences to change the default font or colour scheme - is this possible?

I'm using a MacBook Pro 13 inch - ideally, I would like to use the crisp font that is the default in TextWrangler?

hope you can help

Sean Sherlock

Sean, you can indeed set both the font and the colour scheme.

To change the font, add the following lines to cfg/user.lua (you may need to create the file if you don't have it):

editor.fontname = "Courier New"

I'm not sure what font TextWrangler is using, but you can reference any font you have installed in your system.

To change the color scheme, add the following code to the same cfg/user.lua file:

local G = ... styles = G.loadfile('cfg/tomorrow.lua')('Tomorrow')

You can also set individual colors or add your own color schemes (look at cfg/tomorrow.lua for examples).

You may also want to check cfg/user-sample.lua for details on how these and many other settings can be set or changed.

Hi Paul,

Can't see my reply here so maybe I didn't hit "submit". Thanks for your help. The problem was that I only had ZBS, (no directory structure). I downloaded the whole thing from git and all is now well.

Thanks again.

Sean Sherlock

Hi Paul,

Not sure if this is the right forum for raising issues but since I downloaded the full "master" version, I've changed the font ok. Bu the lua app doesn't always run on project/run. I get "program started/program completed in..." but nothing happens. To recover I have to run the debugger - the program doesn't stop at the breakpoint but the sim runs ok. After that the ordinary project/run works ok for a while. Weird.

I'll try to pinpoint the problem and post again, but any ideas.

Also, the previous version of ZBS ran moai "out of the box" but for this latest version I had to set the moai path in the user file.

all the best


Sean, thanks for letting me know. By "lua app" do you mean a Moai application or some general Lua app? If it's a regular lua application, is it possible that it finishes so quickly that the application window is gone before it's activated and shown?

Also, the previous version of ZBS ran moai "out of the box" but for this latest version I had to set the moai path in the user file.

I made some changes to Moai path handling, but those were supposed to improve "out of the box" handling, not break it. What is your Moai location? I'll see if I can reproduce the issue. Also, do you have anything moai-related in your cfg/user.lua file?


I'm going to be out of contact for a day or two, will give you as much detail as I can when I return

all the best


Sean, let me know if you resolved the issue with Moai running "out of the box" or if you still have this problem. I'd like to make sure this is resolved (if there is an issue) before the next version is out. Thanks.

Paul, I just finished and posted a lengthy description of the problems I've encountered but it has not appeared. This is the second time this has happened. I'll type it in again later tonight. Hope you get this one.


Paul, this is my third attempt to reply to your last post. I filled in a lengthy description of the problems but it did not appear. I used the "leave a comment". This time I hit the "reply" button. Hope this one appears. Will re-type the full post later tonight.

Sean Sherlock

Hi Sean; I can see both of your last comments fine. Not sure what's happening, but you may need to wait till the form disappears completely (while the comment is being processed). Look forward to reading the description.

I first downloaded a file called ZeroBraneStudioEduPack-0.33-macos.dmg from your site. This contained only the ZBS executable and worked fine, finding Moai with no prompting. As I had trouble with the font and wanted to change it, but had no cfg folder, I downloaded the "master" package from git and installed the full folder structure. I added two lines font/size into user.lua. This looked fine in ZBS but it couldn't locate moai. I added moai path and user.lua now looks like this:

editor.fontname = "Monaco" editor.fontsize = 12 path.moai = "/Users/Sean/MOAI/moai-sdk/bin/osx/moai"

Since these changes I have experienced the following problems:

My app fails on a function call to RNGroup.lua - this is a module in the Rapanui framework which sits in its own folder in the main project folder.

Sometimes the app starts and finishes without throwing an exception:

Program starting as '"/Users/Sean/MOAI/moai-sdk/bin/osx/moai" "/Users/Sean/MOAI/Moai Apps/Bubbledux2/config.lua" "/Users/Sean/MOAI/Moai Apps/Bubbledux2/rapanui-sdk/RNGroup.lua"'. Program 'moai' started in '/Users/Sean/MOAI/Moai Apps/Bubbledux2' (pid: 188). Program completed in 0.93 seconds (pid: 188). - NOTE RNGroup.lua again.

If I then run the app in debug mode, putting a breakpoint very early in main.lua, the app halts, and when I continue, it works as expected. After this, when I run the app through project/run, everything works as expected. I don't yet know if the problem lies with moai, Rapanui, ZBS or me.

I have not been able to predictably reproduce these problems which recur at odd intervals.

One other odd thing is that when I ran the older version of ZBS (when having problems with the newer one) I made some changes to my code and when I later opened the newer version, the changes had disappeared. I have not been able to reproduce this, but since I don't expect to switch between versions in the normal run of things, I'm not concerned but thought I'd mention it in case having two versions installed and running alternately has anything to do with the other issues.

I appreciate this is not much to go on. The inability to reproduce the issues on demand is always a pain. If there's anything else I can do to help, let me know. Your software looks great and will be a great tool to have if I move to Moai.

All the best



I think you can forget this problem. I've only just realised that when I hit project/run moai executes the lua file that is currently active in the editor window. I assumed it would always invoke main.lua as the principal file in the project and I believe this accounts for all of the problems I've encountered. Apologies for wasting your time.


Sean, thank you for the detailed description. Yes, you can configure ZBS to always invoke "main.lua" by adding the following to cfg/user.lua: moai = { entrypoints = { "main.lua" } }

You can check cfg/user-sample.lua for example of the syntax.

Sometimes the app starts and finishes without throwing an exception:

Right, this may happen when you run a file other than main.lua. This should go away if you configure ZBS to always use main.lua as the entry point (in fact, you can specify a list of possible entry points).

I'm not concerned but thought I'd mention it in case having two versions installed and running alternately has anything to do with the other issues.

Thanks for bringing this up. You should be able to use multiple versions without any issues; they will by default use the same config, so you can switch between them at any time. If you run into this issue again, please let me know. Thanks. Paul.

Leave a comment

what will you say?


I am Paul Kulchenko.
I live in Kirkland, WA with my wife and three kids.
I do consulting as a software developer.
I study robotics and artificial intelligence.
I write books and open-source software.
I teach introductory computer science.
I develop a slick Lua IDE and debugger.