Fwd: [RFC] One ioslave to rule them all...

Scott Wheeler wheeler at kde.org
Tue Jun 28 13:19:53 CEST 2005


This started quite a bit of discussion on kde-core-devel and is another one of 
those things that I felt might benefit from usability input.

My personal feeling is that we're getting a bit too far into the "everything 
is a URL" without clear navigation concepts and all that, but I'll leave that 
up to you guys.

Same as the last time I forwarded something here -- just replying on this list 
isn't all that useful; replies going to core-devel would seem appropriate if 
you feel motivated.  ;-)

-Scott

----------  Forwarded Message  ----------

Subject: [RFC] One ioslave to rule them all...
Date: Sunday 26 June 2005 0:46
From: Kévin Ottens <ervin at ipsquad.net>
To: kde-core-devel at kde.org

Hello list,

I'd need some opinions about the work I've done until now and about my
 current plans about system:/. The basic idea behind this ioslave was to have
 one root allowing desktop users to easily browse the relevant places in the
 system. I want to push the idea further hence why I need to know if there
 are
suggestions or objections.

In order to have this possible I developed mainly three ioslaves:
- media:/ which allows to deal with your partitions, removable media, cdroms,
etc.
- remote:/ which allows to have "remote folders" and is possible to use
 thanks to knetattach.
- home:/ which displays home directories of the users being in the same
 groups than the current user (because it's generally more relevant to share
 files with them), and the current user home directory.

Currently system:/ points to media:/, trash:/, remote:/, settings:/ and
 home:/ (which was committed yesterday). home:/ being the last part of my
 great evil plan : hiding the real file hierarchy!

I'm now almost able to do it, in fact if I could even do it now. Some of you
may wonder "why hiding the unixian file hierarchy??? and push use of
system:/???".
The answer is simply that for a desktop user this unix file hierarchy is an
implementation detail.

So, the current status of what I've done is exactly this : if you start
browsing using system:/ you can stay in this virtual hierarchy and do all
your daily work using it (as a desktop user, not a sysadmin).

So the user could use only this, but some entry point to the unix filesystem
still remain, in particular the shortcuts to the home directory...

Where I'd like to go is the following : replace $HOME with home:/$USER
everywhere, this way the user will be "on the right track" by default (in the
system:/ hierarchy).

Of course this would raise some issues on interoperability mainly because
there's no consensus about the available VFS protocols between desktops. I
currently see two problems in this area (I'll use media:/ as example since
it's older and more known, but everything I'll present is true with home:/ as
well) :

1) Opening a file in the system:/ (media:/) hierarchy.
When opening a file with an application, the application is launched thanks
 to its desktop file, and %u is replaced with the file URL (a media:/ URL for
 example). It'll work flawlessly with most KDE applications since they
 support KIO. But, some of them don't really support KIO completely (Kaffeine
 for example because it uses xine which only support some protocols like http
 and file). Moreover, non-KDE applications know nothing about media:/ URLs!

Then two things have been introduced:
- KIO::NetAccess::mostLocalURL() which allows KDE applications to resolve an
URL to a file:/ URL if needed (and if possible).
- X-KDE-Protocols key in desktop files, which allows to restrict the set of
supported protocols for an applications. Anything not present in this set is
automatically resolved to file:/ URLs if possible before launching the
application.

This way, we keep the compatibility with most applications, and KDE
applications are able to have more control on the process. I then consider
this issue as solved, the real solution would be of course to ensure that any
non-KDE application could deal with any KDE URL but that's definitely not
feasible currently, it would require a common VFS across all desktops,
something that we won't have before a long time IMO.

2) Drag and Dropping a file from the system:/ (media:/) hierarchy.
It's the same kind of issue than opening a file. The main difference being
that the application is already running, so the only counter-measure that can
apply is KIO::NetAccess::mostLocalURL(), then only KDE applications can
resolve the URLs to file:/ URLs... I've find no real way to make it work for
non-KDE applications. Suggestions are welcome!


Now I'm pondering on what to do :
a) Replacing $HOME with home:/$USER right now?
b) Replacing $HOME with home:/$USER for KDE 4 only?
c) Give up the whole idea?
d) Something else?

Of course I tend to think I should apply a), but I would consider b)
acceptable whereas I really dislike c). Of course, I'm open to any
interesting "d)" proposal.

Any opinions? advices?

Regards.
--
Kévin 'ervin' Ottens, http://ervin.ipsquad.net
"Ni le maître sans disciple, Ni le disciple sans maître,
Ne font reculer l'ignorance."

-------------------------------------------------------

-- 
For a successful technology, reality must take precedence over public 
relations, for nature cannot be fooled. 
--Richard Feynman


More information about the Kde-usability-devel mailing list