So after making a post about replacing my Vista shell with a custom shell, I stopped and thought a little more on it, and decided that it would be a nice challenge to try and attack. So I created myself a new project tonight and I’m going to mess around a little bit with it.
What goes into replacing a shell? A lot of things. I will need to recreate the start menu in some form, and I’m not sure how I want to do that just yet. The standard Vista start menu needs to go, and I’m thinking for something along the lines of how Mobile phones work. I really like the Expose for the iPhone, and might consider going with something along those lines. I wouldn’t exactly go the same route, as an icon based home screen would be cluttered for a desktop PC that can have 10 times the amount of apps an iPhone can carry. However, creating an icon based container with categories is a nice idea, as user’s can create categories or tags to store their applications within, much like how we manage our Music and Photo’s. Applications shouldn’t be any different, and it seems that no one has thought outside of the box, and realized that we have improved how we managed our media, but managing our installed applications hasn’t changed much since the 90’s.
So there’s one thought, what’s next? I need to be able to access currently running processes, allow users to change their windows settings and provide a better alternative to file management than the standard Windows Explorer. Much like Gnome 3, I want users to manage their files without having to browse the hard-drive all over the place. I like the Favorites links that Microsoft introduced in Vista’s Explorer file browser.
One of the important things I need to get built in right away is method to re-instate the original Explorer shell. If I can get the replacement shell far enough along to be simi useable, I will start using it in my day-to-day use, but just incase something goes badly wrong with it, I can at least get my Vista shell restored.
There’s quiet a bit of work that goes into a Shell replacement, accessing currently running services, task managers, settings, file management, working with user accounts, ensuring one user can’t access another users information, and lastly, trying to keep it as cross-platform as possible.
Enter Mono 2.4, the Linux and Mac OSX port of the Microsoft’s .NET Framework. If I can keep the Shell fairly modular, and keep it as Object Orientated as possible, then I can write OS specific pieces independent of the Shell, and allow me to easily get it ported from operating system to operating system. While Gnome and KDE is the primary IDE’s on Linux systems, there really isn’t anything out there just yet that grabs my fancy like Gnome 3, and Windows users don’t have anything close to it yet.