Where can I get the theme color?

I see .navbar-inner.orange, .navbar-inner.red and so on, but I can't see what causes a theme color to be selected, either in the html or in the jinja2 template. How can I access that?

Depending on which side of the programming side you're using you could get it from the global settings under appearance > color. So a call like self._settings.global_get(["appearance","color"]) in python should work.

I need it at Jinja or JS, but that gives me a starting point.

Hmm. There's a call to the /settings endpoint, which has the appearance dict, but I can't figure out how to call it from JS in the initscript.jinja2 page. I see the data bindings that reference it as css/html/knockout, but that's where I get lost. @foosel can you weigh in?

From the js side if you include the settingsViewModel dependency you should be able to access it via settingsViewModel.settings.appearance.color() I think.

1 Like

I can confirm that this works. I did a quick test and you can see it here. Basically you include settingsViewModel as one of your dependencies like this and then at the beginning of your code you create a reference to that dependency like this.


OMG, thanks! I couldn't do what I wanted in initscript, but I could (easily) do it in appearance.js. Here it is- basically painting the favicon to match the theme color.

Hmm. Hey @jneilliii, I'm doing something wrong here, no matter how much I try, I'm getting a closure back. I can't execute the closure. I can see appearance_color is stuffed inside a Symbol, but I can't figure out how to actually access it. Grrrrrr.

Not really sure. I personally would approach this as a plugin instead of a change to the core, but not sure without digging deeper if it would even be possible as a plugin.

If I'm assuming your intention correctly, try using the following.


You may also want to move all your code inside the AppearanceViewModel altogether. The issues you are running into are more than likely the biggest thing I struggle with when developing plugins, knockout binding.