HideFilesystemStructure
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.
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.