Arguably Enhanced graphics:
[Confirmed@17/04/2013]
Easier to use, slightly faster than the regular graphics. Why? - for now that's classified.
I'd say this is what I'm most proud of, it makes graphics handling much easier and frankly was my biggest stroke of genius.
Windows-Style System:
[Confirmed@17/04/2013]
Taking a lot of inspiration from microsoft here. I know they don't always get things right *cough* IE *cough* but generally they have some decent ideas and it's what most people are used to, so I'm not going to deny a working formula.
Alternate-Style System:
[[email protected]/04/2013]
Here's something windows doesn't give you. On top of having a windows style desktop (aka windows explorer) I'm going to implement some other desktop styles to suit your needs. I plan to have a system based on the Nintendo 3DS home screen (because frankly I have to appreciate what an improvement it was on the old systems) which will probably be restricted to improve performance for games built in lua. By restricted I mean the system will boot with minimal APIs, apis must be loaded manually and it is encouraged that only the necessities are used. To help with that I will probably build a system.
If people want other styles like mac style or playstation style homescreens, I may go on to develop those. (I know game system styles are better for non-colour computers for one thing, Plus I'd like to make a steam-style system at some point)
Backwards compatibility:
[Confirmed@17/04/2013]
I hope to offer a compatibility mode designed to run programs that work on CraftOS so you don't have to worry about converting your programs if you don't want to (though it is advised in some cases). I already have an idea for how I'm going to manage it, this is covered in my next point/interjection:
How is this all possible!?
I'm rewriting an entire shell - of course it's possible.
By taking the native APIs and intercepting their input and output, I can add security layers and perform checks to keep the system running nicely. It's nothing CraftOS doesn't do (to a smaller scale). CraftOS intercepts up the native metatable assignment system to give you the ability to set a table as the __index of a metatable. This is like that but much bigger. That reminds me, my next point:
Pseudo-ReadOnly Files:
[[email protected]/04/2013]
By intercepting the fs API, I can develop a system that marks files as being readonly or requiring certain rights to access. Which brings me to my next point:
Admin Rights:
[[email protected]/04/2013]
Going with the windows theme, this is a MUE (multi-user environment) which means some people are admin, some are not, and the system is always king. Yet another windows trick up my sleeve:
Update: 17/04/2013
Until a MUE version is developed, Admin rights are an unnecessary feature as there is only the user and the system. The User is thus Admin by default. Same goes for readonly files for now.
System Registry:
[[email protected]/04/2013]
Now, some of you out there will be thinking 'my god the man's gone crazy'. In fact most people who know about the system registry probably are. I'll have you know I was crazy before I started programming, any features of my programs that come about as a result of this are merely the side effect of volatile genius.
The system registry is a many misunderstood thing to most people. Heck even I don't fully get it. What I do get though, is that it's a database full of important configuration data (like config files) that greatly replace Microsoft's original initialisation (.ini) files over the years.
The main idea is to stop things like boot.ini getting edited with ease.
There were actually several games that did this by accident and practically bricked people's computers.
The reason this works is that the registry acts as a virtual file system, (like the real life system, but slimmed down and more organised, and part of the system, not part of the hard disk) loading all its data from a protected database file at startup.
Since the system is virtual, even if someone blitzes a bunch of files, as long as the main database is intact, the registry remains untouched. It is for this reason that the registry is used to store things like admin rights, file associations and the local data for the current and offline users.
Essentially, just know that the registry is there to help you, and I hope to make it a bit friendlier than the actual windows registry.
Customisability:
[Confirmed@17/04/2013]
I intend to allow things like changing the desktop background. And not just to a single colour, to a full blown sprite if you want!
I can afford this because of the graphics system. I'll also probably allow for the taskbar to have different orientations (even though I haven't figured out how to do that on my own windows computer) as well as changing the window theme (the colour that gets set as the background for the task bar and the window control bar, the thing the _ [ ] and X appear on).