_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:
[LEFT][Desktop Entry][/LEFT] [LEFT]Encoding=UTF-8[/LEFT] [LEFT]Name=Enlightened XFCE4[/LEFT] [LEFT]Comment=[/LEFT] [LEFT]Exec=buddha[/LEFT] [LEFT]Icon=[/LEFT] [LEFT]Type=Application[/LEFT]
[LEFT]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 :smile:.[/LEFT]
[LEFT]_IV. Poison Ivy_[/LEFT]
[LEFT]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. [/LEFT] [LEFT]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 [/LEFT]
[LEFT]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 [B] killall xfwm4 [/B] 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:
[B][Session: Default] [/B] Client0_UserId=ian[/LEFT] [LEFT]Client0_ClientId=10af783ad2000113376999500000128550002[/LEFT] [LEFT]Client0_Hostname=unix/brownie[/LEFT] [LEFT]Client0_CloneCommand=xftaskbar4,--sm-client-id,10af783ad2000113376999500000128550002,--display,:0.0Client1_CurrentDirectory=/home/ian[/LEFT] [LEFT]Client0_Priority=30[/LEFT] [LEFT]Client0_Program=xftaskbar4[/LEFT] [LEFT]Client0_RestartCommand=xftaskbar4,--sm-client-id,10af783ad2000113376999500000128550002,--display,:0.0
Client1_UserId=ian[/LEFT] [LEFT]Client1_ClientId=10af783ad2000113376999500000128550001[/LEFT] [LEFT]Client1_Hostname=unix/brownie[/LEFT] [LEFT]Client1_CloneCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0[/LEFT] [LEFT]Client1_CurrentDirectory=/home/ian[/LEFT] [LEFT]Client1_Priority=40[/LEFT] [LEFT]Client1_Program=xfce4-panel[/LEFT] [LEFT]Client1_RestartCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0[/LEFT] [LEFT]Client1_UserId=ian[/LEFT]
[LEFT]Count=2[/LEFT] [LEFT]LegacyCount=0[/LEFT]
[LEFT]Keep in mind your file shouldn't look *exactl**y* 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[/LEFT] [LEFT]Client1_ClientId=10af783ad200011337699950000012855 0001[/LEFT] [LEFT]Client1_Hostname=unix/brownie[/LEFT] [LEFT]Client1_CloneCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0[/LEFT] [LEFT]Client1_CurrentDirectory=/home/ian[/LEFT] [LEFT]Client1_Priority=40[/LEFT] [LEFT]Client1_Program=xfce4-panel[/LEFT] [LEFT]Client1_RestartCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0[/LEFT] [LEFT]Client1_UserId=ian[/LEFT]
[LEFT]Client1_UserId=ian[/LEFT] [LEFT]Client1_ClientId=10af783ad200011337699950000012855 0001[/LEFT] [LEFT]Client1_Hostname=unix/brownie[/LEFT] [LEFT]Client1_CloneCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0[/LEFT] [LEFT]Client1_CurrentDirectory=/home/ian[/LEFT] [LEFT]Client1_Priority=40[/LEFT] [LEFT]Client1_Program=xfce4-panel[/LEFT] [LEFT]Client1_RestartCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0[/LEFT] [LEFT]Client1_UserId=ian[/LEFT]
[LEFT]Count=2[/LEFT] [LEFT]LegacyCount=0[/LEFT]
[LEFT]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).[/LEFT]
[LEFT] If you've done all that, the final file should look like
[B][Session: Default] [/B] Client0_UserId=ian[/LEFT] [LEFT]Client0_ClientId=10af783ad200011337699950000012855 0002[/LEFT] [LEFT]Client0_Hostname=unix/brownie[/LEFT] [LEFT]Client0_CloneCommand=xftaskbar4,--sm-client-id,10af783ad2000113376999500000128550002,--display,:0.0Client1_CurrentDirectory=/home/ian[/LEFT] [LEFT]Client0_Priority=30[/LEFT] [LEFT]Client0_Program=xftaskbar4[/LEFT] [LEFT]Client0_RestartCommand=xftaskbar4,--sm-client-id,10af783ad2000113376999500000128550002,--display,:0.0[/LEFT]
[LEFT]Client1_UserId=ian[/LEFT] [LEFT]Client1_ClientId=10af783ad200011337699950000012855 0001[/LEFT] [LEFT]Client1_Hostname=unix/brownie[/LEFT] [LEFT]Client1_CloneCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0[/LEFT] [LEFT]Client1_CurrentDirectory=/home/ian[/LEFT] [LEFT]Client1_Priority=40[/LEFT] [LEFT]Client1_Program=xfce4-panel[/LEFT] [LEFT]Client1_RestartCommand=xfce4-panel,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0[/LEFT] [LEFT]Client1_UserId=ian[/LEFT]
[LEFT]Client2_UserId=ian[/LEFT] [LEFT]Client2_ClientId=10af783ad2000113376999500000128550001[/LEFT] [LEFT]Client2_Hostname=unix/brownie[/LEFT] [LEFT]Client2_CloneCommand=enlightenment,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0[/LEFT] [LEFT]Client2_CurrentDirectory=/home/ian[/LEFT] [LEFT]Client2_Priority=40[/LEFT] [LEFT]Client2_Program=enlightenment[/LEFT] [LEFT]Client2_RestartCommand=enlightenment,--sm-client-id,10af783ad2000113376999500000128550001,--display,:0.0[/LEFT] [LEFT]Client2_UserId=ian[/LEFT]
[LEFT]Count=3[/LEFT] [LEFT]LegacyCount=0[/LEFT]
[LEFT]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![/LEFT] [U] V. Removing the Splash Screen[/U]
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: [B] BEGIN_NEW_FILE_MENU("DEBIAN_MENU","ROOT","/var/lib/enlightenment/debian.menu")
[/B]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.