I do not like the current state of affairs of Linux distributions, and I want to create my own. I want it to be as simple and lightweight as possible, while still being convenient to use. After playing with Linux for nearly three years, I think I have the 'skillz' necessary to begin work on my own Linux distribution. I am unsure of a few things, however. First, on what existing distro should I base my dream distro? Source-based distros are out of the question (Goodbye Gentoo, Sorcerer, etc.), and Debian seems much too complicated for my tastes. I want something simple, but with a good set of tools (bash, gcc, make, autoconf, etc.). Right now I am torn between Slackware and Arch Linux. I have never used either distros, but they seem to provide the simple base system I want. Does anyone have any preferences? If I go with Slackware, does anybody have any advice or links to places that would help me cross-compile (or just install the various package sets) to a spare partition from a Vector Linux install (which is based off Slackware). Alright, if I am able to decide on the base distribution, here are the other features I want in my dream distribution: - Linux 2.6.17+udev - hardware autodetection (it should not be too hard to rip off another distribution's hardware autodetection) - Grub would be the bootloader installed by default. The splash screen will also have to look snazzy. - Development tools: gcc, g++, java, python, perl, tcltk, gcl, guile, mono, cvs, subversion, cvsup, and the source code to the entire distribution would come standard. - There will be a directory (maybe /usr/programs) where all the user (read: desktop) programs can be stored, and the directory hierarchy for each package in /usr/programs would look like this: program program-2.5 program-2.6 program -> program-2.6 When the program is updated, the package manager would create a symbolic link that pointed to the latest version of the package, which would make updating easier. - All the userland packages would also be statically compiled and have all the necessary data located in their directories; also, the source code for the package would be found in a little src directory inside the package. - Instead of the last two points, maybe I could use the Klik packaging system, but the package's source code would still be shipped by default. - Reiserfs would be the default filesystem, but this distro would also support Ext2/3, FAT32, NTFS (at least read support), HFS+ (for iPod support), XFS and JFS (maybe?). Desktop related matters: - Xgl will be used if I thought it was stable enough; otherwise, vanilla X11R7 will be used. - The GTK-1.2, GTK-2.0, and QT libraries will all be included to maintain compatiblity with other applications, but QT will be the widget toolkit of choice for my desktop. - Window management will be awesome! At the press of the button, the windows will sort themselves from the top of the screen to the bottom, so that the top of the window would always be visible. If you wanted to view the contents of that window, you would just click on the top, and that window would bring itself to the bottom. The window decorations would have to be very thin, though. - Optional: At the bottom of the screen there will be a pop-up panel that contains a number of rows corresponding to the number of virtual displays you have. On each row, you would see a list of all the windows on each desktop. Moving a window between desktops would be a simple matter of clicking and dragging it to another desktop. - The X terminal emulator will be similar to Yakuake. - The menu panel (which contains all the applications in various categories, such as Internet, Office, Utilities, etc.) will lie along the left side of the screen. - All the applications will be tweaked to have similar keybindings, which favor the windows style: Ctrl+a: Highlight all text Ctrl+c: copy Ctrl+x: cut Ctrl+v: paste Shift+End: Highlight to end of line etc. Desktop applications: - Only a small number of packages will be included, so the included packages can be tightly integrated. - XMMS will be the default audio player. Xine will be the default video player. If I do not distribute libdvdcss or all the MPlayer codecs (which might be a good idea, considering where I live), I would allow them to be easily installed as part of the installation process (or maybe I can find someone else who is willing to host this distribution). - Firefox will be the default browser, and it will have 'better' default settings: ask for all cookies, a shorter History, a smaller cache, etc. Plus, it will come with Flashgot, NoScript, Adblock, Adblock Filterset Updater, DownThemAll, FasterFox, Forecast Fox, AspellFox and Tab Mix Plus. It would also have the Flash, Java, and Xine plugins. - Eclipse would also be installed by default, since I heard it was a good IDE. - The text editor would be based off of KWrite. - OpenOffice.org would also be included. - Ditto for Wine. If I ever fulfilled those requirements, I would also like to tackle some other things: - The distro would be LSB compliant, to help package developers. - The distro would come with a system management console, that not only allowed you to tweak the display, mouse, desktop themes, etc., but also allowed you to view all mounted partitions, the routing table, the logs, a list of all running processes, and you could administer the system from this console. - The distro will have an easy to use automounter that will mount all removable media (unless specified otherwise) so that everyone may read it. - The distro will include rlocate, so the database will easily stay up-to-date. - A GUI front-end to r/slocate will make it easy to search for files on your hard drive, similar to beagle, but without the Mono dependency. - I will use Anaconda as a graphical installer, and I will integrate QTParted into the installer, so one can dynamically repartition Windows while installing Linux. - I will try to make the installation as simple as possible, with it only asking what partitions you want to create (ONLY in advanced mode), what timezone you are in (querying an NTP server should net the proper time), what is your real name, what username and password do you want to use, and would you like to install non-free binary drivers (from ATI & Nvidia) to improve your graphics performance. - I will try to make the default terminal look like the terminal on the Gentoo LiveCD. So what does everyone think? What P2P should I include? What about IM & IRC clients, and FTP/SSH clients? What Window Manager and/or DE should I use for my 'kick-ass' desktop? What graphical file manager would be a good choice? How should I construct the system so that it would be easy to update while maintaining backwards compatibility?