Wow, absolutely awesome Kingdaro! My favourite OS in terms of actual practicality and usability by far! :D/>/ (PearOS is very nice graphically, but you can't do anything in it)
Few suggestions:
- It would be really cool if you monitored the shell's program stack somehow (through shell.run maybe), and whenever a program was added to the stack you open it in a new multitasking tab (like when running a program through LuaIDE).
- One problem I found was that the OS seems to crash if you do while true do print("hello") end or something similar, probably due to lack of yielding, not sure how to fix this, if you wanted to fix it.
- The computer doesn't seem to remember me setting a name? I set a name at startup, then quit it, then it asks again. Is this a bug of sorts?
- A more GUI centric installer would be nice :)/>
- Would hiding the global CraftBang functions from programs when you run them to avoid them messing with the OS be worth it? Are you intending to allow a developer to use them or not?
- Finally, did you plan to include any default programs with this OS? It would be cool, maybe have an option for downloading them in the installer, or add some form of quick download store for common programs on the forums. This would be awesome :D/>
Personally, I would try to keep this OS from being too feature bloated, so I wouldn't include an API, and have default programs for the OS an option in the installer, and just have a quick download store, with a few programs (not user submitted, or maybe have user submitted ones in a completely different section from the common useage ones if you wanted to make it communal) for easy download, so you don't have to go looking up the pastebin IDs all the time, and maybe a weekly/monthly/whenever you feel like it highlight if you're bored :P/>
Thanks for the feedback, GS. Glad you like it!
- I actually tried to do that, but environments weren't really playing nice with me at the time. I might try it again sometime in the future though. (Then again, I could just overwrite it on coroutine resume, like I'm doing with os.pullEvent. Bleh.)
- That's…very odd. Though I'm pretty sure that's because the coroutine is resumed in writing to the buffer, and the coroutine hasn't stopped resuming for the buffer to draw to the screen. Not exactly sure how to fix that…hm.
- Not sure? Every computer I've tested it on never asked again once I've set the name. It's not an issue with preference saving or whatever, because it uses the computer's label. That's curious.
- I thought about it, and it's more effort than its worth, and not really necessary. :P/> (I'd do it if I could use my arealib though!)
- I was sort of iffy about hiding global CB functions myself. I had the idea that a programmer (or even a user) could screw up the system and your preferences bad with access to them. On the other side of the spectrum, having access to the global craftbang functions would allow programs to add new tasks, open dialogues, access craftbang's version, and a number of other neat helpful stuff. I'll think about it, I suppose.
- Default programs are definitely a yes! The terminal is actually one of them; you can just run it on its own in CraftOS by running craftbang/terminal.
What to include, I'm not sure. Of course I won't be including too many programs to keep that lightweight feel, as you've said, but a couple of default shortcuts and nice apps to start people off definitely wouldn't hurt.
As for the store, that might work out pretty well, the more I think about it.