September 17, 2007 · General · Email This Post

Sponsored Link
Like my article on Conky, this is one of my favorite techniques to use on any Linux distribution. This technique -- utilizing devilspie -- will create a transparent terminal session on your desktop that will remain for the duration of your login (unless you exit the terminal session for some reason) This particular how-to addresses Ubuntu specifically, but I've done this successfully in 3 or 4 distributions.

It should look something like this when you're done:


1) The first thing to do is to install devilspie. This is easily done at the command line.

sudo apt-get install devilspie

This will show up in your terminal looking something like this:

Once you have devilspie installed, it is time to configure it.

2) The first command creates a directory (.devilspie) off of your home directory in which you will create a file called DesktopConsole.ds that will contain the configuration parameters (you can edit the geometry values later to better fit your desktop size).

Again, go to the command line/console and type the following commands:

mkdir ~/.devilspie
gedit ~/.devilspie/DesktopConsole.ds

Copy and paste the following configuration text into the file you just opened with gedit:

(if
(matches (window_name) "DesktopConsole")
(begin
(set_workspace 4)
(below)
(undecorate)
(skip_pager)
(skip_tasklist)
(wintype "utility")
(geometry "+50+50″)
(geometry "924×668″)
)
)

Save the file and close gedit.

3) Create a new gnome-terminal profile named "DesktopConsole"

Open a gnome terminal (Applications-Accessories-Terminal) and choose File-New Profile. Type in "DesktopConsole" for the name of the profile. Your screen should look something like this:

On the General Tab, uncheck the "Show menubar by default in new terminals" box:

On the Scrolling tab, make sure that the Scrollbar is disabled:

On the Effects tab, enable "Transparent background" and move the slider to wherever you want to get your desired degree of transparency. I like mine totally transparent (all the way to the left):

5) Now you have to add two programs to your startup/sessions group -- one to launch devilspie and the other to launch the reconfigured terminal within the devilspie parameters.

Go to System-Preferences-Sessions and you should see the following screen (or something similar):

Click on the "New" button and type in "devilspie" for the program name and "/usr/bin/devilspie" for the command. I"m pretty sure sure it will work if you leave out the "/usr/bin/" part, but I usually put it in just to make sure.

Create another new startup program called "gnome-terminal xxx" (choose anything really) and type in "gnome-terminal --window-with-profile=DesktopConsole" in the command window (that's a double dash before the word "window").

When you complete this step, your screen should look like the following. Make sure that devilspie loads before gnome-terminal.

6) At this point, all you should have to do is log out and back in or use the CTRL-ALT-BKSP key combination.

Your desktop should look similar to the following:

You might notice that between the two pictures that the text color is different. That's something that you can easily change using the profile editor. I will sometimes change the profile so that I can see the text better -- depending on which background I'm using.

One more thing -- I configure my installation to have X follow the mouse so that all I have to do is move the cursor in the general direction of the terminal session on the desktop in order for the terminal to gain focus. You can do this in System-Preferences-Windows.

Devilspie has many more capabilities than just this. There is a good wiki here. Also, in order to give credit where credit is due, I got most of my information from this small tutorial (I have pictures, though.) :)

Enjoy!

Sponsored Link

Incoming search terms:

Related posts

32 Comments to “How to create a transparent terminal session as your desktop background”

  1. Andrey says:

    (if (is (application_name) “qutim” (geometry “+300+300″)))

    or

    (if (is (application_name) “easytag” (fullscreen)))

    Doesn’t work. Why ???

    [Reply]

  2. Andrey says:

    fixed. delete my previous comment pls.

    [Reply]

Leave a Reply