Re: [E-devel] Mount volumes
Quelrond <[email protected]> Tue, 8 Apr 2025 14:48:26 +0000
| Newsgroups | gmane.comp.window-managers.enlightenment.devel |
|---|---|
| Message-ID | <[email protected]> |
Thanks for this clarification, Raster. As for now - I do not suppose to touch the code of EFM or any other component, I would like just to understand how does it work in the current state (it seems to work in Linux). Then - yes, I understand the idea of EFM2 and I suppose that with such approach the management of mount/unmount will be much more simple. In the current state it seems that udev is not used in this process, but with udisks, even without eeze it should work somehow. udisk itself is available https://www.freshports.org/sysutils/libudisks ...and it works (udisksctl shows correctly add/remove of usb disk). Maybe, E needs eeze and libmount, maybe something else, but it does not show the device icon on desktop after insert. Peter On 08/04/2025 14:26, Carsten Haitzler wrote: > On Tue, 8 Apr 2025 13:24:00 +0000 Quelrond <[email protected]> said: > >> Hello, >> >> I would like to enable mount/unmount volumes support in Enlightenment >> under FreeBSD. >> >> I see three options in meson_options.txt of Enlightenment: >> >> - 'device-udev' >> - 'mount-udisks' >> - 'mount-eeze' >> >> It seems that eeze needs libmount that is not present in FreeBSD, so, >> probably, the last option cannot work. >> >> udev and udisks are present and enables by default, but Enlightenment >> does not show devices on desktop (yes, this option is activated in EFM >> settings). >> >> How should the components work together and how can I debug them? > at this point i'm not going to touch these bits of efm... why? > > https://git.enlightenment.org/raster/efm2 > > this is a temporary place to build efm2 code until it's fully featured enough > to merge in and replace current efm. > > it's a new design with a backend process (per dir) that you speak to over > stdin/out - the idea is you can replace the backend with any other script > (bash, python or anything or any binary that can do stdin/out). i alrady made a > custom view bash script: > > https://git.enlightenment.org/raster/efm2/src/branch/master/src/backends/table/open > > and this is the default standard filesystem one: > > https://git.enlightenment.org/raster/efm2/src/branch/master/src/backends/default > > the backend is responsible for generating of thumbnails as well as metadata > saving/loading and tracking status of background operations. the thumbnailer is > pretty fully featured there. does all the usual and also can download images > from the internet like movie posters and music album art and so on. it guesses > on what to do. for theme files it can render a mini screen of content i the > theme, thumbnail ttf fonts too. for paged content (pdf, ps, doc etc.) it will > pre-render the first 32 pages into the thumbnail for movies/video it also > renderes multiple frames in the file into the thumbnail ... i was going to have > it later also maybe do some kind of waveform render for wav and other > music/audio files. i need to make a thumbnail command kit that can be called to > examine and modify (insert/remove) images from the thumbnail files. still - > this would be necessary if you replace the default thumbnailer with your own > in your own vfs backend. but that's not hard - easy to do - all the code is > there. > > the reason i point to this is... this is meant to be a lot more modular and > easier to extend and change, which when i get to handling mounting of > filesystems - i'll follow a similar design with some process that sits around > and probably writes some files to disk to indicate if there is something you > can mount (or have fixed files for fixed mounts - be they local block devices or > sshfs or smb or anything else). this should ultimately make it easier to > support bsd. > > at this point i'm fleshing out the backend and frontend features. dnd currently > works (it moves files). you can navigate dirs and it'll list files and > generate/fetch thumbnails or album art/covers or movie posters etc. i don't have > dnd with "copy" or "ask" done. copy & paste is not done (cut is actually the > big problem - when you cut files ... what do i do with the cut files? > conceptually i should move them into a special cut buffer dir - available for > paste, but that's not sane. i could keep a special cut buffer list of file > paths and all files when loaded by a backend filter out listing any files in > the cut buffer list and pretend they are not there... not sure). i don't have > any delete done (will have to support full unlink directly or trash can stuff). > i need as trashcan vfs implementation too. i am recently working on mime > handling and that now has me at the point of "what is the ui model for allowing > the user to select any app/desktop to open a set of files with". > > anyway... efm2 is where i am putting effort as there isn't much point putting > effort into efm now as it'll be replaced by efm2 (efm2 will migrate into the e > tree then). so right now the best thing to do is to look at efm2 and how it > works and make THAT work for you on bsd. first see if efm2 currently works fine > and find any issues that are not "i just haven't done that yet". > > efm2 already has multiple icon views (free-placement - i.,e. icon stays where > you manually dnd it like on the desktop with horizontal and vertical > auto-arrange modes, auto icon grid view with horiz or vert layout, simple list > mode and a detailed column list mode). > > https://www.enlightenment.org/ss/e-67df028d5a3310.10486448.jpg > https://www.enlightenment.org/ss/e-67df00c3916aa9.36155616.jpg > https://www.enlightenment.org/ss/e-67df0332df1af7.22084925.jpg > https://www.enlightenment.org/ss/e-67df03ccd92de6.77421391.jpg > https://www.enlightenment.org/ss/e-67df03aa7e3a98.79713538.jpg > https://www.enlightenment.org/ss/e-67df039ae6b9b6.52391813.jpg > > columns are also dragable (click and drag the bar between columns) and sortable > by clicking on the header. > > the ui is a test ui - the main scrollable icon view is what is being worked on > -t he buttons around it are just for testing this. so don't assume this is what > efm2 will look like. it's a bunch of test code. > > anyway - this is where you want to be looking and spending effort. as per your > removable device + mounting problem... i haven't started solving that yet but > as above, my ideas are: > > 1. some process that sits around and maybe can run other or binaries in a > polling fashion or as a result of some system event. these would then put > special files in some dir that indicate some fs you can open/mount > 2. per mountable fs there would be some kind of mount and unmount handler > "binary/script" called when the fs first needs mounting or called when not > needed anymore (unmount time) as well as indicating a custom vfs if needed > other than the default one. >