Set an HTML page as the wallpaper on Linux

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.


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.