Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I want to set an HTML file with JavaScript as my wallpaper on Linux. I'm running Openbox, how can I set it up so this is my desktop background?

share|improve this question
add comment

3 Answers

up vote 3 down vote accepted

I would recommend running a lightweight browser in the background, as suggested earlier.

This browser should be perfect, since you only want to use it to set a single page as your background. It uses WebKit, so everything should display just fine, and it's light enough that startup should be instant.

As long as you have gtk, webkit-gtk, python, and the python bindings for webkit-gtk (installed by default on many distros, and available from most package managers), you can save it to your home directory as, say, browser.py and add something like:

python ~/browser.py YOUR_WEBSITE &     #browser.py requires http:// before remote urls

to your ~/.config/openbox/autostart in order to have it start along with openbox.

You could then edit your ~/.config/openbox/rc.xml to include something like this under the <applications> section:

<application class="Browser.py">
  <decor>no</decor>
  <maximized>yes</maximized>
  <layer>below</layer>
  <desktop>all</desktop>
</application>

To get keybindings like "W-d" to work, you might want to install wmctrl (also available in most package managers).

This script should take you to your "desktop", regardless of whether or not it's started (See here for original script; also, there may be a slight delay in which your actual desktop is shown before the script focuses your browser, but not nearly enough to be bothersome.):

#!/bin/sh

terminal_wm_class="Browser.py"
terminal_exec="python ~/browser.py YOUR_WEBSITE"

# no terminal started, so start one
if [ -z "`wmctrl -lx | grep Browser.py`" ]; then
    $terminal_exec &
else
    wmctrl -x -a $terminal_wm_class
fi;

You can save it in your home directory as something like showdesktop.sh, then replace the default W-d keybinding in ~/.config/openbox/rc.xml

<keybind key="W-d">
  <action name="ToggleShowDesktop"/>
</keybind>

with

<keybind key="W-d">
  <action name="ToggleShowDesktop"/>
  <action name="Execute">
    <command>~/showdesktop.sh</command>
  </action>
</keybind>

Once you're done, you can just A-Tab back to your previous window.

(If you want to preserve your window layout, it's probably easiest to switch to an empty desktop with C-A-Left or W-F4, etc. (see default rc.xml), then back with C-A-Right or W-F1, etc., depending on your keybindings and current desktop.)

If you navigate from your start page for any reason, you can just close the window (A-F4 default) and press W-d to run showdesktop.sh and take you back to your homepage

Any of these can be modified or used without the others, so feel free to use whatever works best for you.

share|improve this answer
add comment

You may not be able to use an HTML file as wallpaper per se, but you can probably come fairly close using xsetroot -bitmap filename... set up a cron job which will render your html as a bitmap every minute, then run xsetroot to make it the background image. Google gives me this as an HTML to bitmap renderer. I haven't tried it, so caveat downloader.

share|improve this answer
add comment

You can't set an HTML file as wallpaper. You could either:

  • Take a screenshot of your browser and set that as a wallpaper.
  • Run the browser in the background and move it to a lower level than all the other applications.
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.