Enlightenment

From Gentoo Wiki
Jump to: navigation, search

Enlightenment is an eye-candy, compositing and stacking window manager that is released under the permissive BSD License. It was first released in 1997 by Carsten Haitzler (Rasterman) and this original release was dubbed Enlightenment DR16 (or E16 for short). In 2012 a new version of Enlightenment was released, which was called Enlightenment DR17 (or E17). Since then many further major releases of Enlightenment have been made: E18, E19, E20, E21 and E22. E20, E21 and E22 are all presently in the Portage Tree.

There has been some confusion over Enlightenment versions. E16, despite being an older release of Enlightenment, has its releases numbered 1.x, while the later releases of Enlightenment (E17-E22) all have decimal release numbers. E17 is numbered 0.17.x, E18 is numbered 0.18.x, E19 is numbered 0.19.x while E20 is numbered 0.20.x and so on. Consequently, it is advised that users are careful as to which version of Enlightenment they are installing. While the version numbers reflect actual versions of the upstream tar archives, they can be confusing.

Installation

USE flags

USE flags for x11-wm/enlightenment Enlightenment window manager

acpi Add support for Advanced Configuration and Power Interface global
enlightenment_modules_appmenu Gadget that holds the menubar of the foreground application local
enlightenment_modules_backlight Backlight control slider gadget local
enlightenment_modules_battery A gadget to visualize your battery status local
enlightenment_modules_bluez4 Configure Bluetooth devices local
enlightenment_modules_clock Nice clock gadget to show current time local
enlightenment_modules_conf Settings Panel local
enlightenment_modules_conf-applications Allows configuration of Ibar, Restart, and Startup applications local
enlightenment_modules_conf-bindings Input Control Settings local
enlightenment_modules_conf-dialogs Configure default dialog properties local
enlightenment_modules_conf-display Used to configure your screen local
enlightenment_modules_conf-interaction Configure Mouse and Touch input local
enlightenment_modules_conf-intl Used to select a default language local
enlightenment_modules_conf-menus Configures menu behavior local
enlightenment_modules_conf-paths Specifies the Enlightenment search paths and default directories local
enlightenment_modules_conf-performance Used to configure certain performance related items as frame rates and cache settings local
enlightenment_modules_conf-randr Used to configure your screen's resolution local
enlightenment_modules_conf-shelves Shelf configuration dialog local
enlightenment_modules_conf-theme Used to configure your theme preferences local
enlightenment_modules_conf-window-manipulation Configures window raise, resistance, and maximize policies local
enlightenment_modules_conf-window-remembers Delete existing window remembers local
enlightenment_modules_cpufreq Gadget to monitor and change the CPU frequency local
enlightenment_modules_everything The run command module provides an application launcher dialog local
enlightenment_modules_fileman Enlightenment's integrated file manager local
enlightenment_modules_fileman-opinfo Allows EFM to be placen on the desktop or in a shelf local
enlightenment_modules_gadman Module to manage gadgets on the desktop local
enlightenment_modules_geolocation Geolocation information local
enlightenment_modules_ibar Iconic application launcher local
enlightenment_modules_ibox A home for your iconified applications local
enlightenment_modules_lokker Screen locker local
enlightenment_modules_luncher Iconic application launcher local
enlightenment_modules_mixer A module to provide a mixer for changing volume local
enlightenment_modules_msgbus DBus Extension local
enlightenment_modules_music-control Control your music in your shelf local
enlightenment_modules_notification Notification-daemon alternative local
enlightenment_modules_packagekit Package manager integration local
enlightenment_modules_pager Gadget to allow you to visualize your virtual desktops and the windows they contain local
enlightenment_modules_pager-plain A simpler desktop pager local
enlightenment_modules_quickaccess Enlightenment Quickaccess Launcher local
enlightenment_modules_shot Simple screenshot+save/upload module local
enlightenment_modules_start Enlightenment's 'Start' button equivalent local
enlightenment_modules_syscon Provides a unified popup dialog for all the system actions in Enlightenment local
enlightenment_modules_sysinfo A gadget to visualize your system info local
enlightenment_modules_systray System tray that hold applications icons like Skype, Pidgin, Kopete and others local
enlightenment_modules_tasks Gadget to allow you to switch tasks local
enlightenment_modules_teamwork Enable teamwork module local
enlightenment_modules_temperature Temperature monitor local
enlightenment_modules_tiling Positions/resizes your windows tilingly local
enlightenment_modules_time Time related gadgets local
enlightenment_modules_vkbd Virtual keyboard local
enlightenment_modules_winlist A module to show the list of client applications presently running local
enlightenment_modules_wireless WiFi monitoring local
enlightenment_modules_wizard First Run Wizard local
enlightenment_modules_wl-buffer Wayland buffer local
enlightenment_modules_wl-desktop-shell Enlightenment Wayland Desktop Shell local
enlightenment_modules_wl-drm Wayland DRM (Direct Rendering Manager) compositing module local
enlightenment_modules_wl-text-input Wayland text input support local
enlightenment_modules_wl-weekeyboard Wayland virtual keyboard local
enlightenment_modules_wl-wl Wayland-in-Wayland module local
enlightenment_modules_wl-x11 Wayland-in-X11 module local
enlightenment_modules_xkbswitch Keyboard layout configuration and switcher local
enlightenment_modules_xwayland X/Wayland integration local
nls Add Native Language Support (using gettext - GNU locale utilities) global
pam Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip global
wayland Enable dev-libs/wayland backend global

All wayland-related modules should be either disabled or enabled, depending on your wayland USE flag status.

Important
Upstream requires systemd to be used when enabling wayland, see Wayland requirements.

Latest Enlightenment

For installing the latest Enlightenment WM and the needed libraries, just issue the following command:

root #emerge --ask enlightenment

For SVG support e.g. for previews or menu entries, you can additionally install dev-libs/efl with the svg USE flag enabled.

Addition to /etc/portage/package.use (unless you already have the svg USE flag globally enabled) and install the package:

root #euse -p dev-libs/efl -E svg
root #emerge --ask efl

Enlightenment 0.21

To get the latest release of Enlightenment-E21, type

root #emerge --ask =x11-wm/enlightenment-0.21.11

and mask later releases if you don't wish to receive E22+ updates using /etc/portage/package.mask.

Enlightenment 0.20

At the time of writing the latest stable release of Enlightenment is E20. You will get it automatically when using a stable system and typing

root #emerge --ask enlightenment

Otherwise, you can utilize /etc/portage/package.mask again.

Enlightenment live ebuilds

The process is a little different because it's recommended to always rebuild all of the components using their current state in Git. Make sure you have installed Layman or Eselect/Repository. Now you can add the enlightenment-live overlay.

root #layman -a enlightenment-live

or

root #eselect repository enable enlightenment-live

Make sure to install all core enlightenment packages using live ebuilds. You can update using the exact same command to ensure that all core packages are updated.

root #emerge --ask --autounmask-write @enlightenment-core-9999

The overlay contains masked package even for latest stable enlightenment releases.

Be aware that they are currently masked for ~amd64, so you need to unmask them.

root #emerge --ask --autounmask-write efl enlightenment
Note
The ebuilds are currently tested for X and not for Wayland. Further investigation and feedback is needed for Enlightenment with Wayland and Systemd
Note
The ebuilds for the latest stable packages may be moved to the official repository once tested and stable.

If anything goes wrong, file a ticket on GitHub or contact User:Rafspiny. Those are live ebuilds and therefore they can occasionally need updating. I'm also considering starting a separate overlay just for Enlightenment, let me know if that would help you.

Enlightenment e16

Old Enlightenment-e16 is still maintained. It was removed from Gentoo's portage tree because it caused a lot of confusion and made later Enlightenment releases harder to handle due to wrongly slotted packages. You can install e16 from e16-overlay. Please report any issues you find with e16 to the maintainer of that overlay via Github issues.

Note
Update this section when the overlay gets added to public layman / eselect-repository list.

Configuration

Enlightenment

Enlightenment's configuration is all handled through the settings editor from within enlightenment. You can access some "under-the-hood" config options with

user $elementary_config

And there's also a command line tool called vieet which especially useful in emergency. In many cases, if your Enlightenment's configuration gets broken, moving ~/.e and ~/.elementary to a temporary place, then re-starting Enlightenment usually helps.

Launching enlightenment with startx

FILE ~/.xinitrc
exec dbus-launch --exit-with-session enlightenment_start

Tips and tricks

Now one can start Enlightenment desktop environment by launching the default Display Manager (DM).

You may have to add an entry to your X sessions directory, if you use SLiM for example

root # echo "enlightenment_start" >> /etc/X11/Sessions/Enlightenment
root # chmod +x /etc/X11/Sessions/Enlightenment

Or else, opt for a DM free set up. See X without Display Manager#Multiple X Session/Virtual_Console for more info on starting a X Session without a DM.

And do not forget to install NetworkManager and gnome-extra/nm-applet or else a light weight network manager like Dhcpcd+Dhcpcd-ui or even net-misc/connman for which there is an Enlightenment applet.

EFL-based applications

EFL and python-efl offer developers everything needed to develop eye-candy applications that integrate into Enlightenment WM. Here are few of them,

Note
More to be introduced in the Gentoo portage tree.

Troubleshooting

Black window contents

If you get windows with completely black contents (most likely with the nvidia proprietary driver and Enlightenment 0.20.5 or 0.20.6), follow these steps:

  • log out from Xorg.
  • set E_COMP_ENGINE=sw, for example in .xinitrc:
FILE ~/.xinitrc
export E_COMP_ENGINE=sw
exec dbus-launch --exit-with-session enlightenment_start

Alternatively, you can set the variable in /etc/environment.

  • start X.
  • Go to Settings->Composite->Advanced->Rendering and disable "Texture from pixmap".
  • Then you can remove "export E_COMP_ENGINE=sw" from .xinitrc and log out/in to get accelerated rendering again.

For more information see this bug report.

Debugging

If you've tried to move your config files away and Enlightenment still doesn't work, you can debug the problem by typing

user $enlightenment_start 2>&1
user $ tee logthing.txt

and reading the log file. It is useful when making a bug report to bugs.gentoo.org or upstream's Phabricator. If the log file doesn't imply clear errors, you might have to install and run it it with debugging tools like gdb, strace or valgrind.

"No opengl engines found" with nvidia-drivers

With latest releases of mesa and xorg-1.20, efl can look for libGL.so from a wrong place. This results in Enlightenment's gl-engine not using opengl backend. This can be fixed with patchelf utility.

Identify where your libGL.so is installed, usually /usr/lib/opengl/nvidia/lib/libGL.so. Then use patchelf to modify efl's gl engine,

user $patchelf --set-rpath /usr/lib/opengl/nvidia/lib/ /usr/lib64/evas/modules/engines/gl_x11/v-1.20/module.so

And relog. Paths depend on your architechture. This needs to be done once, or everytime efl is re-installed.

Screenshots

See also

External resources