HideFilesystemStructure
Size: 6403
Comment: change empty "Launchpad Entry: soon" -> "https://launchpad.net (...)"
|
Size: 9006
Comment: added text in part "Discussion"
|
Deletions are marked like this. | Additions are marked like this. |
Line 50: | Line 50: |
* See also discussion in part "Userfriendly filesystem - Home folder 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 (...)" | See also discussion in part "Userfriendly filesystem - Home folder 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 (...)" ["Darek27"]: Microsoft Windows have a "Windows" folder. For Linux I propose a "System" folder not a "Linux", because we create a standard for future operating systems also for BSD and others. Maybe a future version of our operating system will base on a BSD kernel not a Linux kernel (but still will run a old linux programs). "Linux" word is copyrighted by Linus Torvalds and probably can't be used in the BSD and the others. "System" is a neutral, universal word. I propose a userfriendly filesystem: Home [[BR]] Media [[BR]] Programs files '' (contains all installed programs)'' [[BR]] System '' (contains boot, dev, ...)'' [[BR]] Home/username/Desktop [[BR]] Home/username/Documents [[BR]] Home/username/.Programs data '' (contains all userspecific program things)'' [[BR]] Home/username/.Programs data/gnome '' (Gnome config (easy back up desktop preferences))'' [[BR]] Home/username/.Programs data/temp '' (Mozilla, Gnome, KDE temp files)'' [[BR]] Home/username/.Programs data/thunderbird '' (config and data (mail, adressbook))'' [[BR]] Home/root ".Programs data" is a hidden folder. Don't create a separate folders Home/username/.Programs data/config Home/username/.Programs data/data because a lot of programs mix a config and data files (see Gimp folder tree (brushes, patterns, ...) and a other big programs). They always make a folder like Home/username/.Programs data/gimp (with it own mix a config and data subfolders). Userfriendly program will make a two folders itself: Home/username/.Programs data/userfriendly_program_2.6/config [[BR]] Home/username/.Programs data/userfriendly_program_2.6/data [[BR]] We can't force ALL programs to split its config and data files to our .Programs data/config .Programs data/data folders like this: [[BR]] Home/username/.Programs data/config/big_program_4 [[BR]] Home/username/.Programs data/data/big_program_4 [[BR]] They will only use our common temp folder .Programs data/temp. We won't convince all lazy programmers of close-source software. We will always see a thundreds of names of programs in the main data folder .Programs data like .Programs data/starwars_game .Programs data/dvdriper ... Therefore don't put a few programs in the separate folders .Programs data/config .Programs data/data and a rest in the main .Programs data folder (like .Programs data/starwars_game) because this is mislead for a new users. ALL must be in a one place. We need ONLY ONE method of store the config and data files. |
Launchpad Entry: [https://launchpad.net/distros/ubuntu/+spec/hide-filesystem-structure specification]
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 "Userfriendly filesystem - Home folder 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 (...)"
["Darek27"]: Microsoft Windows have a "Windows" folder. For Linux I propose a "System" folder not a "Linux", because we create a standard for future operating systems also for BSD and others. Maybe a future version of our operating system will base on a BSD kernel not a Linux kernel (but still will run a old linux programs). "Linux" word is copyrighted by Linus Torvalds and probably can't be used in the BSD and the others. "System" is a neutral, universal word. I propose a userfriendly filesystem:
Home BR Media BR Programs files (contains all installed programs) BR System (contains boot, dev, ...) BR Home/username/Desktop BR Home/username/Documents BR Home/username/.Programs data (contains all userspecific program things) BR Home/username/.Programs data/gnome (Gnome config (easy back up desktop preferences)) BR Home/username/.Programs data/temp (Mozilla, Gnome, KDE temp files) BR Home/username/.Programs data/thunderbird (config and data (mail, adressbook)) BR Home/root
".Programs data" is a hidden folder. Don't create a separate folders Home/username/.Programs data/config Home/username/.Programs data/data because a lot of programs mix a config and data files (see Gimp folder tree (brushes, patterns, ...) and a other big programs). They always make a folder like Home/username/.Programs data/gimp (with it own mix a config and data subfolders). Userfriendly program will make a two folders itself:
Home/username/.Programs data/userfriendly_program_2.6/config BR Home/username/.Programs data/userfriendly_program_2.6/data BR
We can't force ALL programs to split its config and data files to our .Programs data/config .Programs data/data folders like this: BR
Home/username/.Programs data/config/big_program_4 BR Home/username/.Programs data/data/big_program_4 BR
They will only use our common temp folder .Programs data/temp. We won't convince all lazy programmers of close-source software. We will always see a thundreds of names of programs in the main data folder .Programs data like .Programs data/starwars_game .Programs data/dvdriper ... Therefore don't put a few programs in the separate folders .Programs data/config .Programs data/data and a rest in the main .Programs data folder (like .Programs data/starwars_game) because this is mislead for a new users. ALL must be in a one place. We need ONLY ONE method of store the config and data files.
HideFilesystemStructure (last edited 2008-10-06 16:59:41 by 124-168-166-138)