Rewrite of EFM for E - out of E tree for now until it's ready to drop into E and be integrated
Go to file
Carsten Haitzler 9413ca2e62 fix err handling to contain correct operation 2024-04-30 09:55:30 +01:00
data add screenshots to readne 2023-06-23 09:21:53 +01:00
src fix err handling to contain correct operation 2024-04-30 09:55:30 +01:00
.clang-format try using clang format to make auto-formatting work well 2023-09-27 11:20:03 +01:00
.gitignore add gitignoe 2023-06-23 09:03:37 +01:00
COPYING Import src 2023-06-23 09:02:36 +01:00
README.md add git master requirements 2023-06-23 09:27:45 +01:00
TODO.md update todo 2023-12-19 12:07:34 +00:00
meson.build detect nsec struct stat systems 2023-08-27 14:48:40 +01:00
sample-open-stdio.txt Import src 2023-06-23 09:02:36 +01:00

README.md

EFM

Remake of Enlightenment's file manager

This re-does EFM so it can be used in and out-of-process too in E. This moves the FS layer entirely to a child process that EFM talks to over stdio. The only direct file access is via local "cached" files in $HOME that are intended to always be fast access (the location could move somewhere - but this is the only sane way - have to depend on some fast data store).

Screenshot Screenshot Screenshot


Things that need doing:

TODO

Requirements

Must (EFL from git - must be latest master at any time):


Compiling and Installing

Meson is the build system used for this project. For more information please see 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:

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:

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:

export PATH=/usr/local/bin:/usr/bin:/bin

Normal compilation in /usr/local:

meson . build
ninja -C build
sudo ninja -C build install

For meson build generic options:

meson --help

For a list of project specific options supported:

cat meson_options.txt

To set 1 or more project specific options:

meson --prefix=/path/to -Doption=value [-Dother=value2] [...] . build

To display current configuration:

meson configure build

The above will only work after at least the following is done:

meson . build

Quick build help

How to clean out the build and config and start fresh:

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)

ninja -C build dist

How to change prefix:

meson --prefix=/path/to/prefix . build

How to install in a specific destination directory for packaging:

DESTDIR=/path/to/destdir ninja -C build install

How to build with verbose output (full commands run):

ninja -C build -v

To run this (for testing) either just run it and it will list/open the current working directory:

efm

Or you can pass in a path to a directory to open up:

efm /path/to/dir