I am working on a GNU/Linux distribution.
Calix is it's name, purposely trying to avoid being called Linux because it is very different from your average breed distro.
I have been forming my vision of what I want this to become for about a year, the vision has been very unstable until now. It takes tips from Redhat, Mandrake, and GoboLinux. It will use a Gobo-like filesystem:
/Software - System wide software
/System - System stuff
....Fonts - system-wide fonts
....Themes - system-wide calix themes
....Executables - all executables on system
....Libraries - all libraries on system
....Boot - scripts for running the system
........Login - scripts run when logging in
/Users - user home directories
....Joe - ex
........Desktop
........Documents
........Fonts
........Software
....... .system
....... .kde
.........etc
The distro will be completely KDE-based.
All messages sent to the user from Calix come via the CXCUE system. The command cxcue will add an event to the queue. Events can be set to show instantly, be logged events, or act like emails accessed from the CXCUE icon in the Notification Area. The reason for using CXCUE is because a lot of the messages come from scripts run as root, and X11 doesnt like that. Also a lot of messages come before X11 starts, and when the user's cxcue daemon starts it processes all waiting messages. CXCUE will be used for instant device insertion notification, important help on errors, etc
When a user logs in physically to the system they are given Administrative priveleges unless the user is not allowed such priveleges. 'Administrative priveleges' means that kdesu and su will automatically be able to use the root account without asking for the password (for system configuration etc). If it is disabled, the user will have to enter the password *once*, and the priveleges will then be held for 1 hour. One problem I have with my experience with Redhat 9 is how many times I have had to enter the root password, even for some things that shouldn't need root priveleges.
The system will attempt to unify mimetypes and handlers. KDE mimetypes, Mozilla mimetypes etc will point to special handlers in /System/Executables like
mediaplayer
cdplayer
editor
browser
chat
mixer
etc
I hope to implement a hidden file system, perhaps GoboHide but that hasn't been fully decided yet.
Calix takes control over starting graphical processes like the KDE Panel, window manager, and desktop client, rather than KDE following it's own rules, KDE will be set up to only start required processes, then Calix will process /System/Boot/Login/Desktop.rc,Panel.rc etc, or if the user has created their own in ~/.system/Desktop.rc,Panel.rc etc.
This means if users have installed the proper packages, they can run the GNOME desktop, KDE panel, and the XCFE window manager very simply.
The system *must* require no setup other than entering names of people who will use the PC. I will change KDM to show the names of users who can log in, much like XP's, because I think that is one of the few good ideas that came out of XP. (it wont *look* like XP, it will *act* like XP).
The default KDE panel will be slicker, but an option will be available to use Kicker.
The theming system will be unique to Calix, it will support installing and using GTK+1/2 and QT/KDE themes in one file format. This is to try to step people into supporting both. It's possible that Calix may have a theming engine that is implemented both for GTK+1/2 and QT/KDE, again, to step people in the right direction.
A set of APIs related to setting MIMETYPES, sending CXCUE messages, manipulating audio, and a simpler interface to RANDR will be included, and libraries will be made available for other Linux distributions.
All components of Calix will be open source and available for source download. I can't find the source code to half the cool stuff that's embedded in some Linux distros. Compatibility will be fully provided for other Linux distros.
Calix will use RPM and Apt4RPM. RPM packages will be opened in a wizard form. If the RPM trying to be installed wasn't created for Calix, the installer will try to figure out where to put the directories under /Software/Program/Version to keep the software running.
When Calix is first installed, three icons will be on the desktop.
Home
Trash
Help
'Home' is *NOT* a link to the user's home directory, it is a directory containing folders for each partitioned hard drive, the name of the folder being the HD label if any or 'Hard drive 1/2/3/etc'. Under those folders will be access to the partitions (links to the partition mount point under /mnt)
There will be links for the cdroms, floppies, zip drives, etc.
There will be a folder Software which links in user-presentable executable files/desktop files from /Software/Program/Current/Software and ~/Software/Program/Current/Software.
There will be a link Settings which starts KControl.
The KControl modules will be completely reworked. The new ones will simplify settings changes, and offer the more elite settings under 'Advanced' buttons.
Like 'Add Hardware', 'Add/Remove Software', 'Sound', 'Display', 'File types', 'Apache' etc.
All configuration files, RC files, etc will follow a naming convention. (*all*). All configuration files will start with uppercase, and each word will be capitalized to look more friendly to users.
Standard CXConfig files: *.cfg
Freeform Config files: *.fcfg
System management scripts: *.rc
Examples: CXCueEvents.fcfg
SysInit.rc
GUI.cfg
When users login in text mode, they will see something to the effect of:
Welcome to Calix, to return to the
Calix graphical environment type `startgui'
For help on commands and more, type `help' or `?'
startgui will be Calix's equivalent of startx, but will be a bit higher-level. 'help' will be a curses-based help program and will provide access to things like Introduction to Calix Terminal, Tutorials, and man pages.
Calix's installer must be able to perform automated installs, so there will be a graphical tool to create install profiles and act as a server for installers to look for, connect to, and install via the directions of.
Im not sure what hardware detection calix will use but right now I'm thinking kudzu.
Phew, that was a big scramble of stuff.
I am looking for people to help me refine and make this idea better, and to implement it all. Also if anyone knows any project sites that would host a distro, or maybe of any free hosting...
[ June 01, 2003: Message edited by: Solo ]