Homepage    |    GitHub    |    API    |    FAQ

Background image?

Is it possible to set a background image as part of the GUI theme (not the rendered note)? As in, I would want an image, rather than a solid colour in the background of the GUI.

I tried:

body  {
background-image: 
url("example.com/whatever.jpg")
}

in 'userchrome.css', but to no avail.

What bit of the GUI?

If you wanted to put an image behind the Markdown editor it would take something like:

div.CodeMirror {
     background-image: url("https://example.com/whatever.jpg");
}

link

You will always need internet access when using this background. However an image could be embedded using a base64 encoded image using something like:

div.CodeMirror {
     background-image: url("data:image/jpg;base64,<enter_the_base64_code_here>");
}

embed

It looks the same but this background image is embedded in the css file and so Joplin will not need internet access. The css file, however, is now massive (in this case 407KB). So a small, repeating image would be better.

2 Likes

Thanks!
By doing the following:

div.rli-root  {
background-image: 
url("/home/(path)/background.jpg");
}

I was able to get closer to the desired effect (which is having the image behind the whole GUI: sorry if that was not clear).

Now I just need a way to make the editor and note list's backgrounds transparent (I was able to make the sidebar and edited note backgrounds transparent). Do you know how I might do that? I have searched and searched but can't seem to find the right div classes to change (can't find one that works and is not machine generated for the sidebar, and can't find one that allows opacity for the editor).

I had a quick look and could not see an easy way. Using non-machine generated classes I could get the opacity changed of the entire note-list pane but that also affected the text, so it was not exactly useful. You have obviously grasped the way this sort of thing is done so I guess all you can do is experiment. I have found this page useful for helping to devise "stacked" selectors (such as where a particular class is the child of or contained within another element type).

Good luck!!

Okay, I ended up doing the following :

*{
background-color: transparent !important;
}

Then restoring individual panels with

div.rli-editor{
background-color: rgba(201, 76, 76, 0.3) !important;
}
div.rli-noteList{
background-color: rgba(201, 76, 76, 0.3) !important;
}
div.sidebar{
background-color: rgba(201, 76, 76, 0.3) !important;
}

and similar.

I have marked your original answer as the solution, since it's probably what most people searching up this question would want.

Thanks for all you help!

I really would like to see a screenshot of the end result. You really made me curious how this might look like... :wink: