You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
225 lines
6.6 KiB
225 lines
6.6 KiB
 |
|
# Enlightenment |
|
|
|
 |
|
|
|
----- |
|
|
|
*Please report bugs/issues at* |
|
[git.enlightenment.org](https://git.enlightenment.org/enlightenment/enlightenment/issues) |
|
|
|
----- |
|
|
|
Enlightenment is a Window Manager, Compositor and basic "Desktop |
|
Shell". It replaces your GUI environment that runs your day to day |
|
graphical Desktop. It includes a built-in File Manager, Application |
|
Launcher, Shelves, Settings Dialogs, Menus, Audio Mixer Controls, Network |
|
Control front-end (for Connman), Battery Monitoring, CPU Frequency |
|
Controls, Screen Blanking and Backlight controls, Screenshotting and |
|
editing, Clock and Calendar, Temperature Guages, Mpris2 Music Controls, |
|
Packagekit Update Front-end, Bluetooth controls for BlueZ 5, Screen |
|
resolution and layout controls and much much more. |
|
|
|
Enlightenment is one of the lowest resource environments around |
|
relative to its featureset. |
|
|
|
Enlightenment is primarly developed for X11, but does have an |
|
experimental Wayland mode that will have issues, so only try it if |
|
you are adventurous or willing to work on it. |
|
|
|
For more information please see |
|
[Enlightenment's About Page](https://www.enlightenment.org/about-enlightenment). |
|
|
|
 |
|
 |
|
 |
|
 |
|
 |
|
|
|
----- |
|
|
|
Things that need doing: |
|
|
|
[TODO](TODO.md) |
|
|
|
----- |
|
|
|
## Requirements |
|
|
|
Must: |
|
|
|
* [efl](https://git.enlightenment.org/enlightenment/efl) |
|
* libpam (Required on Linux, not BSD) |
|
|
|
Highly suggested: |
|
|
|
* libexif (exif metadata display support) |
|
* bluez5 (BT support and l2ping tool) |
|
* connman |
|
* bc (For everything calculator) |
|
* pulseaudio |
|
* acpid (Unless your system doesn't have ACPI at all) |
|
* packagekit (For packagekit module updates status) |
|
* udisks2 |
|
* gdb (If you want automatic bactraces in ~/.e-crashdump.txt) |
|
|
|
----- |
|
|
|
## Compiling and Installing |
|
|
|
Meson is the build system used for this project. For more information |
|
please see [mesonbuild.com](https://mesonbuild.com) |
|
|
|
You will need normal build tooling installed such as a compiler (gcc |
|
or clang for example), pkg-config, ninja, any relevant package-dev or |
|
package-devel packages if your distribution splits out development |
|
headers (e.g. libc6-dev) etc. |
|
|
|
Depending on where dependencies (like efl) are installed, you might have to |
|
set your `PKG_CONFIG_PATH` environment variable like: |
|
```sh |
|
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig |
|
``` |
|
|
|
Also note that some distributions like to add extra arch directories |
|
to your library locations so you might have to have more like: |
|
```sh |
|
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig |
|
``` |
|
|
|
You will need to ensure that the destination library directory (e.g. |
|
`/usr/local/lib` is in your /etc/ld.so.conf or /etc/ld.so.conf.d/ |
|
files and after installing anything that installs libraries you |
|
re-run `ldconfig`. Please see relevant documentation on ldconfig and |
|
ld.so.conf for your distribution. |
|
|
|
You might also want to add the destination bin dir to your environment |
|
variable PATH (see documentation on your shell PATH variable) such as: |
|
```sh |
|
export PATH=/usr/local/bin:/usr/bin:/bin |
|
``` |
|
|
|
Normal compilation in /usr/local: |
|
```sh |
|
meson . build |
|
ninja -C build |
|
sudo ninja -C build install |
|
``` |
|
|
|
For meson build generic options: |
|
```sh |
|
meson --help |
|
``` |
|
|
|
For a list of project specific options supported: |
|
```sh |
|
cat meson_options.txt |
|
``` |
|
|
|
To set 1 or more project specific options: |
|
```sh |
|
meson --prefix=/path/to -Doption=value [-Dother=value2] [...] . build |
|
``` |
|
|
|
To display current configuration: |
|
```sh |
|
meson configure build |
|
``` |
|
|
|
The above will only work after at least the following is done: |
|
```sh |
|
meson . build |
|
``` |
|
|
|
### Quick build help |
|
|
|
How to clean out the build and config and start fresh: |
|
```sh |
|
rm -rf build |
|
``` |
|
|
|
How to make a dist tarball and check its build: |
|
(must do it from git tree clone and commit all changes to git first) |
|
```sh |
|
ninja -C build dist |
|
``` |
|
|
|
How to change prefix: |
|
```sh |
|
meson --prefix=/path/to/prefix . build |
|
``` |
|
|
|
How to install in a specific destination directory for packaging: |
|
```sh |
|
DESTDIR=/path/to/destdir ninja -C build install |
|
``` |
|
|
|
How to build with verbose output (full commands run): |
|
```sh |
|
ninja -C build -v |
|
``` |
|
----- |
|
|
|
**NOTE:** Once Enlightenment is started by `enlightenment_start`, all |
|
output logs are put in `~/.e-log.log`. The previous log for the |
|
previous execution of Enlightenment will be moved to `~/.e-log.log.old`. |
|
|
|
----- |
|
|
|
**NOTE:** If you install enlightenment to the default compile prefix |
|
(`/usr/local`) then you might want to ensure the session file is |
|
accessible to your login manager (assuming you use one) by doing |
|
something like: |
|
|
|
```sh |
|
sudo ln -s /usr/local/share/xsessions/enlightenment.desktop /usr/share/xsessions/enlightenment.desktop |
|
``` |
|
|
|
You can also just set up a custom launcher script. Edit the |
|
`~/.xinitrc` file in your home directory and have it have this content: |
|
|
|
```sh |
|
#!/bin/sh |
|
exec /usr/local/bin/enlightenment_start >& ~/.xsession-errors |
|
``` |
|
|
|
(`exec` tells the shell to replace itself with the following command |
|
and `>& ~/.xsession-errors` ensures all output is logged to the |
|
`~/.xsession-errors` file). |
|
|
|
You may also want your `~/.xsession` file to be the same, so make a link: |
|
|
|
```sh |
|
ln -s .xinitrc .xsession |
|
``` |
|
|
|
This assumes `/usr/local` as well and just modify based on your |
|
install prefix location. |
|
|
|
If you do not use a login manager you can just log into a text console |
|
and run `startx` after the above `.xinitrc` file is set up. |
|
|
|
----- |
|
|
|
**NOTE:** If you do not want security issues make sure `sysactions.conf` is in |
|
`/etc/enlightenment` (not `PREFIX/etc/enlightenment`) as this is the first |
|
place it looks at. This file is intended to be customized by packagers and |
|
system integrators to match your policies and scripts/tools. This also |
|
applies to `system.conf` in the same directory. |
|
|
|
----- |
|
|
|
**NOTE:** To enable Wayland support (still considered experimental and not for |
|
regular end users) use the meson `-Dwl=true option`. To run Enlightenment in |
|
Wayland mode, just login on any text VT and run `enlightenment_start`. If you |
|
wish to debug and see all the output try using something like screen then |
|
attaching to the remote screen session by sshing in etc. |
|
|
|
----- |
|
|
|
**NOTE:** Nvidia support - do *not* enable Wayland support if you have |
|
Nvidia cards and use Nvidia drivers. You will need to use **full** |
|
OpenGL+GLX with EFL instead of the default OpenGL-ES/EGL for those to not |
|
have problems and this conflicts with any **DRM** and **Wayland** support. |
|
You will |
|
|
|
|