2022-06-04 07:17:35 -07:00
|
|
|
![Enlightenment](/data/readme/enlightenment.png)
|
|
|
|
# Enlightenment
|
2022-06-04 07:14:05 -07:00
|
|
|
|
|
|
|
![Screenshot](/data/readme/screenshot.png)
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
*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 environment that runs your day to day GUI
|
|
|
|
Desktop. It includes a built-in file manager, Launcher, Shelves,
|
|
|
|
Settings dialogs, Menus, Audo Mixer controls and much much more.
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
## 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:
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
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:
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
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 enusre that the destination library directory (e.g.
|
|
|
|
`/usr/local/lib` is in your /etc/ld.so.conf or /etc/ld.so.conf.d/
|
2022-06-04 08:50:33 -07:00
|
|
|
files and after installing anything that installs libraries you
|
2022-06-04 07:14:05 -07:00
|
|
|
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:
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
export PATH=/usr/local/bin:/usr/bin:/bin
|
|
|
|
```
|
|
|
|
|
|
|
|
Normal compilation in /usr/local:
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
meson . build
|
|
|
|
ninja -C build
|
|
|
|
sudo ninja -C build install
|
|
|
|
```
|
|
|
|
|
|
|
|
For meson build generic options:
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
meson --help
|
|
|
|
```
|
|
|
|
|
|
|
|
For a list of project specific options supported:
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
cat meson_options.txt
|
|
|
|
```
|
|
|
|
|
|
|
|
To set 1 or more project specific options:
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
meson --prefix=/path/to -Doption=value [-Dother=value2] [...] . build
|
|
|
|
```
|
|
|
|
|
|
|
|
To display current configuration:
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
meson configure build
|
|
|
|
```
|
|
|
|
|
|
|
|
The above will only work after at least the following is done:
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
meson . build
|
|
|
|
```
|
|
|
|
|
|
|
|
### Quick build help
|
|
|
|
|
|
|
|
How clean out the build and config and start fresh:
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
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)
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
ninja -C build dist
|
|
|
|
```
|
|
|
|
|
|
|
|
How to change prefix:
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
meson --prefix=/path/to/prefix . build
|
|
|
|
```
|
|
|
|
|
|
|
|
How to install in a specific destination directory for packaging:
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
DESTDIR=/path/to/destdir ninja -C build install
|
|
|
|
```
|
|
|
|
|
|
|
|
How to build with verbose output (full commands run):
|
2022-06-04 07:22:33 -07:00
|
|
|
```sh
|
2022-06-04 07:14:05 -07:00
|
|
|
ninja -C build -v
|
|
|
|
```
|
|
|
|
-----
|
|
|
|
|
2022-06-04 07:24:48 -07:00
|
|
|
**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
|
2022-06-04 07:14:05 -07:00
|
|
|
system integrators to match your policies and scripts/tools.
|
|
|
|
|
2022-06-04 07:24:48 -07:00
|
|
|
**NOTE:** To enable Wayland support (still considered experimental and not for
|
|
|
|
regular end users) use the meson -Dwl=true option. To run Enlightenment in
|
|
|
|
Eayland mode, just log on on any text VT and run enlightenment_start. If you
|
2022-06-04 07:14:05 -07:00
|
|
|
wish to debug and see all the output try using something like screen then
|
|
|
|
attaching to the remote screen session by sshing in etc.
|