Enlightened XFCE4
____________________________________________
|1.16.06: Added a screenshot of EXCE running E17 |
|1.15.06: I added a fix which adds the Debian menu.|
|___________________________________________|
After reading poofyhairguy's excellent Enlightened GNOME howto, I got the idea
of attempting to apply Enlightenment as the window manager for XFCE. I sat
on the idea after a few unsuccessful attempts; however, after reading karma's
thread "XFCE with Enlightenment?" I decided to give it a go again. Mhancoc7
and I both came up with individual ways of applying E as the window manager
for XFCE. In this howto, I'm going to cover the various ways of getting Enlightened XFCE
that we came up with.
I. Getting Enlightenment
This is the primary step, of course. To obtain Enlightenment, you've got a couple options; there
are currently two versions available. First, you have available Enlightenment DR16,
which is fairly lightweight, looks good, and is currently more stable than the other
version, E17. E17 is heavier, looks pretty fine, but I've had bad luck running it.
My suggestion is to go with DR16 for the time being; it crashes less often. To
get DR16, ensure you have the Universe repository enabled .Open up Synaptic,
find the package named "enlightenment" and choose to install it. Getting E17
is slightly more complicated, but still easily achieved; to do so, may I suggest
Aboe's Howto? Enlightenment also has several great utilities available for it, which
are all available via Shadoi's repository (Covered in Aboe's howto).
II. Autostart
Mhancoc7 came up with this one. He's a genius for coming up with it; it's simpler
than both my methods and works better than the next one I came up with, which
is why I put it first. This one uses the stock XFCE setup, but makes a few slight
changes. Open up a terminal and type in
cd ~/Desktop
Which will bring you to the Desktop directory. once there, type in
mkdir Autostart
The directory Autostart is used by XFCE and runs any executables it finds in there
on start up; hence the name. Once this has been completed, enter the directory
by entering into the terminal
cd Autostart
and create a new file. It doesn't particularly matter what it's called, since XFCE
will run any executable file in the Autostart directory. For this example, I chose
to call it starte. Put the following into the file:
#!/bin/sh
enlightenment &
and save it. Make it an executable script with the following:
chmod 0775 starte
Now, enter the following command into the terminal:
killall xfwm4 xfdesktop
Which will kill the XFCE window manager and the XFCE desktop manager; these
both interfere with the proper functioning of Enlightenment. Log out and save
session. Enjoy your newly Enlightened XFCE!
III. Siddartha
I made this one up as a stopgap for until I could get Enlightenment working properly
with XFCE. Really, this is the worst of all the methods listed, but it is the next
simplest, so will be given the honour of being listed as the second. This method
completely eschews the session manager and starts up each component individually;
this has the drawback of giving you a new session each time you login and it
disables the logout button on the XFCE panel menu (Since that goes through
the XFCE session manager).
First, make a new file and put the following in it:
#!/bin/sh
xfce4-panel &
xfce4-iconbox &
enlightenment
Save it with a name that you like. For this example, I called mine buddha.
Enter
the following:
chmod 0775 buddha
Move your script to the folder /usr/bin with the following command:
sudo mv buddha /usr/bin
It will ask you for your password; this is necessary to move it to that folder.
Now, create a new file in the folder /usr/share/xsessions. It doesn't particularly
matter the name, but it does need to end in .desktop. Put the following in that
file:
[Desktop Entry]
Encoding=UTF-8
Name=Enlightened XFCE4
Comment=
Exec=buddha
Icon=
Type=Application
Save the file, log out, and at the login screen, check under "Sessions" for a new
session called Enlightened XFCE4. Select it and run it. Do a little dance and enjoy
the newfound wisdom of your computer
.
IV. Poison Ivy
This is the last, and most complicated, method available. I've listed it last because
it is the most complex. I've named it Poison Ivy for no good reason other than it seemed
appropriate. The only merit over the Autostart method is that it's faster.
First,
enter a different desktop environment/window manager than XFCE4. I suggest
Windowmaker for those on old hardware. Open up a terminal and type in
rm ~/.cache/sessions/*
Which will completely remove all the session data for XFCE4. Now, log in to the XFCE4
environment, and open up the "run program" dialog. Enter into it
killall xfwm4
and as soon as you can verify xfwm4 is no longer running (I'd suggest running
this in a terminal; when the terminal window goes crazy, type in exit), save session
and log out. Now, log back into your alternative DE. Navigate to the directory
~/.cache/sessions in whatever way pleases you most. It should be empty save
for a single file. The one on my computer was named "xfce4-session-brownie:0"
Whatever file you get should at least look something like that. If it doesn't, cross
your fingers and hope for the best. Open up the file for editing. it should look
like this:
[Session: Default]
Client0_UserId=ian
Client0_ClientId=10af783ad2000113376999500000128550002
Client0_Hostname=unix/brownie
Client0_CloneCommand=xftaskbar4,--sm-client-id,10af783ad2000113376999500000128550002,--display,:0.0Client1_CurrentDirectory=/home/ian
Client0_Priority=30
Client0_Program=xftaskbar4
Client0_RestartCommand=xftaskbar4,--sm-client-id,10af783ad2000113376999500000128550002,--display,:0.0
Client1_UserId=ian
Client1_ClientId=10af783ad2000113376999500000128550001
Client1_Hostname=unix/brownie
Client1_CloneCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0
Client1_CurrentDirectory=/home/ian
Client1_Priority=40
Client1_Program=xfce4-panel
Client1_RestartCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0
Client1_UserId=ian
Count=2
LegacyCount=0
Keep in mind your file shouldn't look exactly like this; just close. Copy and paste
the last segment of "Client[num]_[something]" groups to right past itself. What
you should get is this (The first section has been omitted):
Client1_UserId=ian
Client1_ClientId=10af783ad200011337699950000012855 0001
Client1_Hostname=unix/brownie
Client1_CloneCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0
Client1_CurrentDirectory=/home/ian
Client1_Priority=40
Client1_Program=xfce4-panel
Client1_RestartCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0
Client1_UserId=ian
Client1_UserId=ian
Client1_ClientId=10af783ad200011337699950000012855 0001
Client1_Hostname=unix/brownie
Client1_CloneCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0
Client1_CurrentDirectory=/home/ian
Client1_Priority=40
Client1_Program=xfce4-panel
Client1_RestartCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0
Client1_UserId=ian
Count=2
LegacyCount=0
With the new section, go through and change every instance of "Client1_[something]"
to "Client2_[something]". On the line that says "Client2_CloneCommand=xfce4-panel, [stuff]"
change
it to read "Client2_CloneCommand=enlightenment, [stuff]", change the line that
reads "Client2_Program=xfce4-panel" to "Client2_Program=enlightenment", and
change the line that reads "Client2_RestartCommand=xfce4-panel, [stuff]"
to
"Client2_RestartCommand=enlightenment, [stuff]". Update "count=2" to count="3"
(Or whatever the appropriate number is).
If you've done all that, the final file should look like
[Session: Default]
Client0_UserId=ian
Client0_ClientId=10af783ad200011337699950000012855 0002
Client0_Hostname=unix/brownie
Client0_CloneCommand=xftaskbar4,--sm-client-id,10af783ad2000113376999500000128550002,--display,:0.0Client1_CurrentDirectory=/home/ian
Client0_Priority=30
Client0_Program=xftaskbar4
Client0_RestartCommand=xftaskbar4,--sm-client-id,10af783ad2000113376999500000128550002,--display,:0.0
Client1_UserId=ian
Client1_ClientId=10af783ad200011337699950000012855 0001
Client1_Hostname=unix/brownie
Client1_CloneCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0
Client1_CurrentDirectory=/home/ian
Client1_Priority=40
Client1_Program=xfce4-panel
Client1_RestartCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0
Client1_UserId=ian
Client2_UserId=ian
Client2_ClientId=10af783ad2000113376999500000128550001
Client2_Hostname=unix/brownie
Client2_CloneCommand=enlightenment,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0
Client2_CurrentDirectory=/home/ian
Client2_Priority=40
Client2_Program=enlightenment
Client2_RestartCommand=enlightenment,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0
Client2_UserId=ian
Count=3
LegacyCount=0
If you've got all that, save the file, and try logging into XFCE. If all went well,
it should stop and load Enlightenment somewhere in the process of starting up.
Enjoy your new, Unburdened XFCE!
V. Removing the Splash Screen
This is an optional step. I've gotten a few complaints that on startup, the splash screen is
interrupted by the Enlightenment startup screen, which just looks kinda bad. To fix this, go
to the XFCE settings dialog, and open up the splash screen settings dialog. Set the
splash screen to "none" and then close. You're set!
VI. Getting Debian Menus
Some people had issues getting the Debian menus working under Enlightenment,
but here's a fix, care of superprotta. Thanks, superprotta! Open up a terminal and run:
sudo aptitude install menu && update-menus
open up the following file as root using your preferred text editor: /usr/share/enlightenment/config/menus.cfg.
Look around for a line that looks similar to this:
BEGIN_NEW_FILE_MENU("DEBIAN_MENU","ROOT","/var/lib/enlightenment/debian.menu")
Change it to point to where your debian.menu file is- if it isn't in /var/lib/enlightenment,
then it's probably in ~/.enlightenment/menus_debian/. After changing it, it should look like
BEGIN_NEW_FILE_MENU("DEBIAN_MENU","ROOT","/home/<username>/.enlightenment/menus_debian/debian.menu")
Regenerate the menu by going to Maintenance--> Regenerate Menus under the Enlightenment
menu. Hope this works!
NOTE: Constructive criticism of this howto is encouraged, but only on the conditions
that if you find you dislike something or find an area confusing, point it out politely
and perhaps propose a solution. It's no good to me to have you to say that it sucks
without saying why, and there's no profit in being rude.
Bookmarks