HideFilesystemStructure

Differences between revisions 4 and 5
Revision 4 as of 2006-06-04 19:50:31
Size: 5866
Editor: apn-99-90
Comment: about GoboLinux filesystem
Revision 5 as of 2006-06-04 20:07:12
Size: 6284
Editor: apn-99-90
Comment: part Discussion
Deletions are marked like this. Additions are marked like this.
Line 49: Line 49:

 * See also discussion in part "Dot-files" in [https://wiki.ubuntu.com/UsabilityWishlist UsabilityWishlist]: "A home directory can be cleaned up, but as soon as you show hidden files it becomes a big, big mess. Suggestion: Create an infrastructure separating data, configuration and temporary/cache files. This will also allow to delete the gnome configuration if it becomes corrupted without data loss (...)"

  • Launchpad Entry: soon

  • Created: 2005-10-26 by Wolki

  • Contributors: Wolki

  • Packages affected:

Summary

A .hidden file should be included in / that hides the directories not required for typical desktop use. All modifications should as be easy to undo as possible.

Rationale

New and inexperienced users are often very scared of the many confusing directories in /. Most of them make sense only with an explanation of how a Linux system works, and not all users are interested in that. Some of them even seem misleading - /usr is not for user files. And those users usually don't have to do anything there; they don't even have to know these folders are there. / is already obscured in the GUI, but users still have many ways to get there, either accidentally or while exploring. By hiding all folders not relevant to desktop use, users won't get confused by things they don't have to deal with anyway, similar to how user configuration files in ~/ are only visible to those who want to mess with them.

Of course, any such changes should be easy to undo - many power users want to be able to access everything in / easily, and they have every right to. And it is important that everything still works on the command line as usual.

Use cases

Gustav has just installed Ubuntu, his first Linux distribution. He goes to the top level of his file system, like he's used to, and finds a ton of cryptic things that confuse him. He tries to put stuff there, but it tells him he can't do that. After playing around some more and making everything worse with half-knowledge, he removes Ubuntu again and proceeds to write "Why no sane person would ever use Linux" articles.

Henrietta is a Linux power user and system administrator and wants to be able to see every folder that's there, because she knows what it's for and what she can do there and how.

Scope

Design

This could be done in several ways. The easiest seems to be using .hidden files. Nautilus will hide everything in a directory that is listed in a text file called ".hidden" in that folder. This could be used to hide everything but the relevant things (probably /home and /media). It would also be possible to hide everything but newly created symlinks to these folders that have more accessible names ("User Data", "Drives", etc), but that might be problematic as symlinks start a different hierarchy. Another possibility would be to add a rename feature that works similar to the .hidden file, then more sensible names can be provided without creating a new hierarchy, but this would be a major feature change and probably has issues if it's own. If new names are introduced, they should be localized.

In all cases, undoing this would be very easy (just delete the .hidden file, and the renamed symlinks if created) and could be provided as a script. It's also possible view the files on demand by enabling "Show Hidden Files". It's also possible to hide only for normal users, so a sudo'd nautilus still shows everything by default.

Another way, that isn't tied to a specific file browser and doesn't require us to change applications it to use something like the [http://www.gobolinux.org/index.php?page=doc/articles/gobohide GoboHide patch], which hides directories and files in the system call level. It was [https://launchpad.net/distros/ubuntu/+spec/userfriendly-filesystem-structure suggested] that we even go as far as making the filesystem structure Gobo-like.

Gobolinux is a Linux distribution that breaks away from the historical UNIX directory hierarchy. Basically, this means that there are no directories such as /usr and /etc. The main idea of the alternative hierarchy is to store all files belonging to an application in its own separate subtree; therefore we have directories such as /Programs/GCC/2.95.3/lib. To allow the system to find these files, they are logically grouped in directories such as /System/Links/Executables, which, you guessed it, contains symbolic links to all executable files inside the Programs hierarchy. To maintain backwards compatibility with traditional Unix/Linux apps, there are symbolic links that mimic the Unix tree, such as "/usr/bin -> /System/Links/Executables", and "/sbin -> /System/Links/Executables" (this example shows that arbitrary differentiations between files of the same category were also removed) [http://www.gobolinux.org GoboLinux site]

[https://launchpad.net/people/hofy Hofy] and his [https://launchpad.net/distros/ubuntu/+spec/userfriendly-filesystem-structure specification]: "There are two problems if I open my harddisk I see /etc /var .... and so on. A normal user did not understand this and he is imprisoned in his home folder and can not use an own structure. The second thing is that if I install for example typo3 that I not know were the program is after the install. So I would suggest to make a new structure like this: On the root we have: /, /home (like before), /programs (contains all installed programs), /linux/etc...(includes all system specific thinks), /home/USERNAME/programs (contains all userspecific program things). Then we did not need the invisible folder in the user directory of installed software. Then I always know where the programs are and I can open the root path and I will find everything I need. Because I thing the current default filesystem structure is not good for home users"

Implementation

Code

Data preservation and migration

Outstanding issues

- http://bugzilla.gnome.org/show_bug.cgi?id=314280 needs to be fixed so the files hidden with .hidden are not visible in the file selector by default.

Note: Taken in part from the UsabilityWishlist. Many thanks to all contributors.

BoF agenda and discussion

  • See also discussion in part "Dot-files" in [https://wiki.ubuntu.com/UsabilityWishlist UsabilityWishlist]: "A home directory can be cleaned up, but as soon as you show hidden files it becomes a big, big mess. Suggestion: Create an infrastructure separating data, configuration and temporary/cache files. This will also allow to delete the gnome configuration if it becomes corrupted without data loss (...)"


CategorySpec

HideFilesystemStructure (last edited 2008-10-06 16:59:41 by 124-168-166-138)