...yeah sorry, I guess my emails are going to everyone on the user list?
- Happy New Year everyone 😅
On 02/01/2023 17:49, Al Poole wrote:
Hi Carsten,
Happy New Year to you too.
Keep the faithE :)
On Mon, Jan 2, 2023 at 5:41 PM Φ SNAKΣ ΣYΣZ Φ<snake8e...@gmail.com> wrote:
Thanks for the reply - it's appreciated. Shame about the dragbar; it's
a killer feature for my workflow, although the independent desktop
switching per screen/monitor in more recent Enlightenment has advantages
- I use window groups and raising/lowering to achieve similar things on
e16 with multiple monitors. Wayland has advantages for touchscreens,
although you can use xinput to detach the cursor and still use
multitouch applications without moving the cursor - I guess e16 will
never support Wayland?
Glad your kitchens getting sorted ;)
On 02/01/2023 16:46, Carsten Haitzler wrote:
On Mon, 2 Jan 2023 16:26:41 +0000 Φ SNAKΣ ΣYΣZ Φ<snake8e...@gmail.com>
said:
This is great - only signed up recently so thanks for the update :)
Happy new year!
Any chance of implementing the workspace dragbar from e16 in the latest
Enlightenment?
No - as desktops are done quite differently this doesn't quite work. :)
E16 did
this because desktops other than desktop 0 were their own windows which
thus
would move all children with it etc - this also causes a whole lot of
pain with
apsp assuming lots of things and breaking their ability to know their
window
frame positions.
I used to be a kitchen designer for MFI years ago; their trade outlet
Howdens is still around and worth a look. It was always a good place to
get the same quality kitchens at a better price with additional bits and
bobs you can't get separately from mainstream stores - I used to use it
to sort out issues with customer's kitchens. You were /supposed/ to be
a tradesman to buy there, but they usually have business cards on the
counter for local tradesmen and they'll usually deal with you direct
anyway ;)
Kitchen s already "in" (cabinets). Wren. The problem is... backsplashes
still
have to go in (quartz guys have to come back and install those in the
coming
weeks). The big real problem is appliances. No stove, oven, microwave,
dishwasher, fridge, washer, dryer, taps, sink waste .. because plumbers
and
electricians don't show up. So a bunch of cabinets and otherwise
non-functional. This is the tale of much of this... get it to 80% but not
actually functioning.
Best of luck with your house renovations and all the best.
On 02/01/2023 11:11, Carsten Haitzler wrote:
So ... Happy new year and what not.
As a new years resolution... I've decided to be a bit more
communicative.
I'm going to start with this email.
So things have been a bit quiet lately. I've been busy with buying a
house
(oddly it's my first house I've ever bought) in London. Like most
places
that are not astronomically prices, it needs work. I've been having it
get
renovated and oddly this actually has proven to be an extra full-time
job
in addition to my full time work at Arm, so time for E is preciously
small.
Bonuses are that the work is coming towards the latter end (well it was
originally meant to be a 10 week project. 24 weeks later and it's still
going...). I've been living without a proper bathroom and no kitchen
now
for several months (relying on a small shower room) and battling dust
and
dirt, freezing cold coming through open doorways (with no doors), a
central
heating system that is broken (it seems some people have zero clue how
to
install and commission these). Oddly I have gigabit internet with cat6a
wired up through the house... no kitchen but gigabit networking. I
guess
I'm officially a nerd. Once things settle I'll have more time, but
there is
so much to do still even when builder do finally leave one day...
Now that aside let's get on with E stuff.
I've been working away at a rewrite of efm. Why? The old efm code is...
old. It has some nasty dark corners that mean e gets i/o stalls and
especially in some cases when on possibly slow storage like some slow
usb
drive or network mount. I've really needed to TOTALLY isolate the i/o
from
the front end. Bonus - doing this means I can fake the back-end fs.
Let's
not waste your curiosity and give you a link to the work so far (not
in git
yet):
http://www.rasterman.com/files/efm2.tar.gz
To unpack + build:
tar zxvf efm2.tar.gz
cd efm2
meson . build
ninja -C build
sudo ninja -C build install
efm ./testdir
(note - pass any dir as the argument on the cmdline or no dir == list
current dir).
It's a TEST tool. It is not a final, look and feel. Actually the
window is
more about testing things like focus movement - the buttons
surrounding the
scrollable view are all for testing. It's all about creating enough
code to
test and build the actual efm internals for the view and make the
back-end
file i/o function. You will need a git checkout of efl for new theme
elements BTW.
So ... what is this? Roughly... A file manager view that currently does
regular row by row icon view (with fixed icon sizes), simple list view
(icon + name), detailed list view (lots of columns with resizable drag
bars, and an interesting size view with a colored and sized bar for
relative file size, full permission display, mime type etc.) ...
currently
custom view is unimplemented (this is for icons you can manually place
anywhere - i.e. like on the desktop). I was hoping to also add the
ability
to have custom icon sizes per file there too when I get to that. It
does
drag and drop (it won't DO anything like move/copy files but it'll
tell you
on stdout what it should be doing), copy & paste, single and multiple
selections, monitor the directory for changes and update accordingly.
In
theory it has various sorting modes but only exp;oses access to one
right
now. Focus should work (tab/arrow keys). It should handle massive dirs
(1000's of files). The front end and back end should be totally
divorced
and thus you can point it at some insanely slow sshfs mount to the
other
side of the planet over a 2400 baud modem and the gui should remain
fluid... it just may update slowly (exception right now - .desktop
files
that refer to local content within that slow fs - to be addressed)...
:).
It will generate thumbnails and update them. The backend fs is a
separate
process the front end talks to via stdin/out - as is the thumbnailer
too
that the back-end uses. Why do this? You could implement a new fs as a
python or shell script. The idea is that you can write new fs backends
that
maybe wrap the default one that do extra setup stuff at the start like
mount a specific fs, ask for user and password things etc. at this
point
(the front end will eventually provide commands via stdin/out to
present
these ui things). It will see .desktop files and handle them specially
using the label from the .desktop and the icon the .desktop says to
use (I
know - potential security problem here ... undecided how to handle this
yet). It will handle som extensions I made to .desktop files to have
different images/icons when clicked and selected (testdir has an
example).
It handles dirs with custom icons (example in testdir). If desktop
filers
use animated icons (gifs, webp etc.) they will also play.
It will not actually run anything. It won't actually copy, move,
delete etc.
anything. I've started filling in keyboard handling and enough hooks
to glue
this together so it'll print what it sees event wise or action-wise on
stdout.
The backends are installed in PREFIX/lib/efm/backends - there is only
one
right now (default) and it has 2 binaries. open and thumb. open opens a
target dir and monitors it for changes - listing the contents and
sending
updates. thumb does what you think - it will generate a thumbnail.
Thumbnails are always installed in ~/ assuming ~/ is fast and thus any
i/o
to access thumbnails there is "instant" (It's still done async in
threads
though...).
Have a look at sample-open-stdio.txt in the base source to get an idea
of
the text output from the open back-end that gets sent to the front-end
as
well as the commands sent to the back-end (it sends a set-dir to set
which
dir to list/monitor). As this is 2-way communication it can be made to
do
just about anything.
What I currently have not decided is how "actions" will work. Should
they be
CMD's sent back to the open back-end to then implement - I think it
should
be. This back-end I plan to then just run a local cp/mv/rm binary in
the
backend and pass on updates via stdout (and allow cancelling). This
will
allow the open binary to basically be the master of everything. open
already handles running the thumb tool to update/generate thumbnails
when
needed, so might as well do the rest. So from efm's point of view it
talks
to this open tool (can be a binary, perl, python, lua, bash or whatever
script) and this open tool does all the necessary i/o itself or via
other
tools.
So I'm filling in all the bits. Custom view will be needed soon. I also
haven't handled video files in icons (It won't play a video as an icon
at
this point - but on my todo list - this will also double up to play
audio
files with the same code at some point).
What I will need to do is expand the commands that the back-end can
send
over. Things on my todo list are like:
* Display and update a progress bar (for various things but mostly
cp/mv/rm
ops)
* Handle a list/stack of these progress bars
* Display an overlayed progress bar per icon
* Display other overlayed info on icons (labels, overlay icons)
* Set different states fo an icon (fade, pulse, zoom/grow, bounce, ...)
* Select/unselect files
* Display overlayed text on view (doesn't scroll) in a corner, edge or
center
* Display overlayed icons/images like above
* Display background images (don't scroll)
* Display overlayed foreground images (don't scroll)
* Display background images (scroll and size of file view not scroller)
* Display overlay foreground images (scroll and size of file view not
scroller)
* Scroll to a position or file
* Display in-view popup with label, icons, entry (text and passwd)
list of
text+icons and buttons and get events
* Display bottom/top/left/right edge extra panels with
buttons/icons/etc.
content and hear events from these
* Hear events from front end like select/unselect, scroll, dnd, copy &
paste, keys, mouse events etc.
* Graphs ... display 1 or more and allow overlay with updates and
interaction events (line graph, bar graph etc. etc. - a few canned
types to
make themes sane)
* Allow extension or replacement of right click menu on view
background or
files
* Allow typebuf like updates of what a user types so the back-end can
parse/interpret what a user types and "Do smart things" like run like a
pseudo-cmdline shell
* Vertical highlight display along edges (e.g. for search highlights)
The above list should begin to give you some idea that the idea is
there is
a bit of a pseudo high-level remote UI handled by the efm front end
that the
back end can use and interact with. The idea at least is, over time as
this
matures, to allow the fm back end to e.g. do a download manager like
display
like maybe you find on steam with some graph that shows download speed
and
disk speed as 2 overlayed graphs. For the back-end to display a copy
or move
operation in the view as little progress bars per icon that is being
copied
or moved. Given a flexible enough front end that even allows more
advanced
layout of items. Imagine commands that can create boxes or tables with
various labels, bars, graphs, buttons, lists etc. and then the
back-end can
even create relatively featureful UIs like if the back-end detects
this is
your music collection... it can display a whole ,music player UI in a
side-panel and when you select a file it starts playing it allowing for
controls to do that. Imagine a directory of just photos and the view
switches icon view style to have the label overlay the icon and
display the
selected icon (photo) as the background (temporarily). The point is to
allow for rich and powerful file view backends that can avoid having
to do
a lot of graphics and design work and just simply present what they
want to
show the user or ask of them and have the front end deal with it in a
nice
way.
Eventually I'd like to see a backend "repository" where people can
post new
backends available for download that users can grab and use thus
adding to
their workflow and power. Share your created bash shell backend with
others
by uploading it. Yes. I know. Security implications. How do you know
this
backend is not just going to delete all your files... I'll have to
come up
with some kind of rating, signing and blacklisting (removal) system.
This
kind of thing has already been tried with screenshots in e to some
reasonable success. This will need to expand it to track the uploader
by
some unique key/hash so only the uploader can upload updates to a
backend
and that uploader can be identified and banned if they do bad things.
New
backends that have not had anyone look into them yet can be flagged as
"in
staging" with big warning symbols until enough people (or the right
people)
give them a clean bill of health. Will cross that bridge when we come
to it.
I plan to re-use the whole stdin/out system in future for gadgets too
allowing much more easily hacked together gadgets and such in e.
Imagine
you right click on a gadget and you get an "edit source" menu and up
comes
the bash script for that gadget - you can edit and press "save" and it
will
change/update on the fly. like with fm backends press "share" to share
your
creation... same problems with security, so will need the same
solution for
both, but the point here is ease of use and separating out gui from
back
end.
Anyway - there is a new year update on what I have been doing and
where it
is now, where it's going etc. and real code to back it up - not just
hot
air.
--
Φ SNAKΣ ΣYΣZ Φ
--
Φ SNAKΣ ΣYΣZ Φ
_______________________________________________
enlightenment-users mailing list
enlightenment-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-users
_______________________________________________
enlightenment-users mailing list
enlightenment-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-users
--
Φ SNAKΣ ΣYΣZ Φ
_______________________________________________
enlightenment-users mailing list
enlightenment-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-users