This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
Mr. Bateman's profile picture

PocketShell 2.3 - A multitasking pocket OS - Mix and match colors!

Started by Mr. Bateman, 28 June 2014 - 08:08 AM
Mr. Bateman #1
Posted 28 June 2014 - 10:08 AM
PocketShell v2.3

Screenshots:
Spoiler


Home GUI, custom programs supported (but not implemented yet)



Settings app that is modular, and can load each setting from each program individually


Process list to terminate and switch between programs


Ink tested in running in PocketShell, fully working

PocketShell's design and functionality is based around Android (but the design is still very much a WIP). I plan to make it more user friendly and get what they want easier to find (Recently used applications is a must that will be implemented), More technicality is also a want, but not as much as a priority (Partitioning, kernel functions etc.)
Features:
  • Multitasking, which also has a task manager (processlist for the time being) which you can click on each entry to jump to that process
  • A statusbar (with time) and a bar of buttons at the bottom which always show up in every app (Now testing a signal bar for GPS connections)
  • The <- button is a back button (nothing uses it right now), [] button brings you back to the shell from any other process and /\ brings up the process list.
  • Every CraftOS program has compatibility
  • All programs opened are redirected to their own process and window, so you will only be using the shell as a shell (this can be a nuisance with programs like "clear" since it redirects those too, but I'll add a blacklist in a later update)
  • Uses a heavily modified version of multishell, so anything you can do in that you can do here.
  • NEW: Added custom backgrounds, and the ability to change the bar color. You can also shutdown and reboot the device from the process manager now.
Upcoming:
  • A better design, colours and themes (Almost, will implement custom colours soon)
  • Clicking the status bar will bring up a menu, but I haven't decided what yet
  • A better use for that backbutton
This can still have bugs, but I will squish them soon enough.

Installer:
pastebin run dJhsAxpe

Please post any feedback!
oeed #2
Posted 28 June 2014 - 11:07 AM
Wow you're really smashing out these programs.

Did you make a few before joining the forums?

Anyway, nice to see a few more pocket computer OSs. Looks very nice!
Mr. Bateman #3
Posted 28 June 2014 - 11:29 AM
Wow you're really smashing out these programs.

Did you make a few before joining the forums?

Anyway, nice to see a few more pocket computer OSs. Looks very nice!

The only program I made before joining was the virtual file service, everything else was made after that.
I actually made this yesterday, but I was too lazy to post it until now ;)/>
puzzletime #4
Posted 29 June 2014 - 02:32 PM
Looks pretty, I'd definitely checked this out if I had Minecraft 1.6 installed (there are reasons why I'm still on 1.5).
Selim #5
Posted 04 July 2014 - 01:02 AM
Could you make it so that it does not require whitelisting any URL's?
hbomb79 #6
Posted 06 July 2014 - 12:32 AM
This might be a dumb question but could someone give me a quick explanation on how to make it so a taskbar like the one in this stays ontop of windows?? does it require editing the program, I mean like oneOS im trying to make an OS and have no idea how to do any of it to be honest, but i may as well give it a shot, ive made a basic desktop but thats it…
Mr. Bateman #7
Posted 06 July 2014 - 01:51 AM
Could you make it so that it does not require whitelisting any URL's?
It only requires whitelisting for the installation. It would be really hard to move all the files to pastebin.
This might be a dumb question but could someone give me a quick explanation on how to make it so a taskbar like the one in this stays ontop of windows?? does it require editing the program, I mean like oneOS im trying to make an OS and have no idea how to do any of it to be honest, but i may as well give it a shot, ive made a basic desktop but thats it…
It's more complicated than it looks. I've used an implementation of multishell, have a look into that.
Mr. Bateman #8
Posted 16 July 2014 - 11:10 AM
Version 2 released, new GUI implemented.
Testing a GPS signal bar at the top left hand corner, doesn't change from 3 full bars since it's not functional (yet)
Will probably replace it with background colours instead, unless I/you come up with a better character set
cdel #9
Posted 16 July 2014 - 11:19 AM
a good pocket os? am I dreaming? great work :D/>
Mr. Bateman #10
Posted 16 July 2014 - 11:50 AM
a good pocket os? am I dreaming? great work :D/>
Thanks, nice to know that someone likes my work.
oeed #11
Posted 16 July 2014 - 12:17 PM
Very nice!

Haven't really used Android, well, ever; so I don't quite get the various buttons at the bottom. But yea, this is looking very, very good.
flaghacker #12
Posted 16 July 2014 - 12:31 PM
Very nice!

Haven't really used Android, well, ever; so I don't quite get the various buttons at the bottom. But yea, this is looking very, very good.

From left to right:
back (like in a browser), homescreen, previous apps
:P/>
Mr. Bateman #13
Posted 16 July 2014 - 12:45 PM
Very nice!

Haven't really used Android, well, ever; so I don't quite get the various buttons at the bottom. But yea, this is looking very, very good.
Android really differs from each model of phone (and software), so you've most likely used hardware buttons (like a big one at the bottom and volume buttons on the side).
Mine are based around software buttons that are on android tablets, which explains the functions of each (I have a tablet for reference, but the use of text really limits what I can make them look like)
Mr. Bateman #14
Posted 17 July 2014 - 12:44 PM
Working on a new process list GUI, this is still in development so don't really expect this exactly

(You can terminate programs now, had to spend heaps of time fixing multishell as it was pretty broken in the first place)
Mr. Bateman #15
Posted 18 July 2014 - 11:28 AM
Alternate view, I plan to make it possible to switch between these in the Settings app (which now has a purpose)
Mr. Bateman #16
Posted 19 July 2014 - 05:12 PM
Version 2.1 released.
Thought I'd might make a changelog this time:

+Added closing programs from process list (although programs like Ink that require input about saving files before closing don't work, keep reading for more info)
+Settings app is actually useful now, only program and setting it does currently is process list with the alternate theme (as seen above) but it is modular so just about anything can build upon it
+Two new themes for process list (the old one got trashed)
+New boot process, is so quick that it doesn't (shouldn't at least) show the text it prints while loading
+Now work correctly on normal PCs

*APIs are no longer loaded via programs, boot takes care of that now
*Back button on menus are enlarged slightly and turned blue (See: Image #2)
*Pressing <- while in process list now takes you back to the previous process rather than just home
*Menus that have a blue back button at the top left now emulate the <- button when pressed when no specific function has been specified, for ease of use
*PocketShell API has new functions, but of no use to anyone who are not devs

-Removed the test page and various Twitch Plays Pokemon references from the Settings app
-Many bugs


There is a new bug that happens rarely when being idle that causes the "Too long without yielding" error, but avoiding being idle for a while (5-10 minutes is what I've guessed with what I know) should prevent it.

Things I hope to add next update:
*Logo when booting (Will only last for at maximum 2 seconds, and even then it would be able to turn off in settings)
*Proper reception indicator that functions in the top left corner
*Drag down a menu from the top that displays process statistics (Might do notifications instead and make that a separate app, process list would become too clunky)
*Processes flashing yellow in process list like in Windows 7 (8?) when a program requires attention, but this time when a program fails to terminate (Like the Ink example above) and requires attention to continue
*Auto updating, already got some code for that
Edited on 21 July 2014 - 01:39 PM
Mr. Bateman #17
Posted 21 July 2014 - 10:45 AM
Version 2.2 is released. It might've been released later with more content to show, but anyway, happy birthday me.
The biggest thing is that the bug in the last update that appeared when closing apps is now fixed.

+Yellow flashing for programs that require attention before closing (looking at you Ink)

*You now can't close system apps in processlist (like Home or processlist itself, but you couldn't normally close the latter anyway)
*More error handling in Pocketshell API

New bugs:

*Ink seems to have a chance of showing "Terminated" when switched to when it flashes yellow, or just outright crashing to Home
Edited on 21 July 2014 - 08:47 AM
Mr. Bateman #18
Posted 26 August 2014 - 01:29 PM
Version 2.2.1 released.
Only thing that is added is backgrounds (not changeable, yet), with the support of transparency of text of the programs on the home page, which needs tweaking.



(The background is cut off vertically because it's an emulator of a normal computer)
Mr. Bateman #19
Posted 30 August 2014 - 12:46 AM
Version 2.3 Changelog:
Added custom backgrounds, and the ability to change the bar color. You can also shutdown and reboot the device from the process manager now.
To use a custom background, save an NFP file (normal paint image) to "/background.nfp", and reboot. Custom bar colors are in the Settings app.
DannySMc #20
Posted 11 December 2014 - 03:45 PM
PocketShell v2.3

Screenshots:
Spoiler


Home GUI, custom programs supported (but not implemented yet)



Settings app that is modular, and can load each setting from each program individually


Process list to terminate and switch between programs


Ink tested in running in PocketShell, fully working

PocketShell's design and functionality is based around Android (but the design is still very much a WIP). I plan to make it more user friendly and get what they want easier to find (Recently used applications is a must that will be implemented), More technicality is also a want, but not as much as a priority (Partitioning, kernel functions etc.)
Features:
  • Multitasking, which also has a task manager (processlist for the time being) which you can click on each entry to jump to that process
  • A statusbar (with time) and a bar of buttons at the bottom which always show up in every app (Now testing a signal bar for GPS connections)
  • The <- button is a back button (nothing uses it right now), [] button brings you back to the shell from any other process and /\ brings up the process list.
  • Every CraftOS program has compatibility
  • All programs opened are redirected to their own process and window, so you will only be using the shell as a shell (this can be a nuisance with programs like "clear" since it redirects those too, but I'll add a blacklist in a later update)
  • Uses a heavily modified version of multishell, so anything you can do in that you can do here.
  • NEW: Added custom backgrounds, and the ability to change the bar color. You can also shutdown and reboot the device from the process manager now.
Upcoming:
  • A better design, colours and themes (Almost, will implement custom colours soon)
  • Clicking the status bar will bring up a menu, but I haven't decided what yet
  • A better use for that backbutton
This can still have bugs, but I will squish them soon enough.

Installer:
pastebin run dJhsAxpe

Please post any feedback!
At last a decent environment for Pocket Computers! Nice look as well!! +1
Mr. Bateman #21
Posted 11 December 2014 - 11:25 PM
At last a decent environment for Pocket Computers! Nice look as well!! +1
Thanks, I plan to start updating this again after finishing a secret project.
DannySMc #22
Posted 12 December 2014 - 11:02 AM
At last a decent environment for Pocket Computers! Nice look as well!! +1
Thanks, I plan to start updating this again after finishing a secret project.

Yeah do it!!
GreenGene #23
Posted 12 December 2014 - 10:20 PM
You could call a function every time an app launches.
Mr. Bateman #24
Posted 13 December 2014 - 10:15 AM
You could call a function every time an app launches.
What will the function do?
Geforce Fan #25
Posted 13 December 2014 - 08:05 PM
Wow. I clicked this thinking "oh boy, another "os"", but this is actually a legitiment OS with multitasking and everything, not just a fake loading screen startup script!
Keep it up!
You could call a function every time an app launches.
I think he means call a function that, by default, is blank, but apps can overwrite it and use it to detect when an app is launched. But since ComputerCraft has an event system, it'd be better to use it.
Edited on 13 December 2014 - 10:14 PM
willwac #26
Posted 15 December 2014 - 11:44 PM

You might want to change the buttons now!
(The background is cut off vertically because it's an emulator of a normal computer)
What are you using to emulate a pocket computer on a standard CC computer?
You could call a function every time an app launches.
What will the function do?
iOS (and maybe Android) throws an event when an app is launched, crashed, when control and notification center is opened. It also throws an event when the multiswitcher is opened and the app is hidden from view. I believe that's what ComputerCraft_rules! is wanting, and I think its a great idea.
Also, I'd love to see mult users like Nova Horizon. And a chat AND email app is a must. I'd like to see a stand alone program to host the cha/email server, and possibly a PHP version, but I'm not asking you to host a real interserver application.

EDIT: Where's the API documentation?
Edited on 15 December 2014 - 11:11 PM
Mr. Bateman #27
Posted 16 December 2014 - 01:49 AM
You might want to change the buttons now!
I might end up creating custom buttons in the settings instead. Too confusing with so many standards.
What are you using to emulate a pocket computer on a standard CC computer?
I've built in a feature that allows it to run on a standard CC computer. I'm using the extra space as developer debug info, which is why I haven't made it public.
iOS (and maybe Android) throws an event when an app is launched, crashed, when control and notification center is opened. It also throws an event when the multiswitcher is opened and the app is hidden from view. I believe that's what ComputerCraft_rules! is wanting, and I think its a great idea.
That does seem like a great idea, certainly will be in next update.
Also, I'd love to see mult users like Nova Horizon. And a chat AND email app is a must. I'd like to see a stand alone program to host the cha/email server, and possibly a PHP version, but I'm not asking you to host a real interserver application.
I guess I can do these too, but I'll leave it as a lower priority.
EDIT: Where's the API documentation?
Which API? There's many, but I'm guessing you want the PocketShell one. I'll quickly draw up the documentation and post it, but there isn't much that's new over Multishell.
willwac #28
Posted 16 December 2014 - 11:11 PM
Yes.
You've said that the settings app in modular, and I'd like to put that to work.
Mr. Bateman #29
Posted 16 December 2014 - 11:32 PM
Yes.
You've said that the settings app in modular, and I'd like to put that to work.
Ah, that's simple. I've yet to make formal documentation, but I'll quickly type up the app API now:

Each program in the /programs folder has it's own folder. The contents must include a 'entry.reg', but 'icon.nft' (unless you want it to show up on the main page) and 'settings.template' aren't. If you want to hide the program from the homescreen, simply add a '.' to the start of the folder name. If you don't want to hide it, then 'icon.nft' is required.

The required entry.reg simply tells the system which file to load and the name of the application. It is simply the human friendly name, a new line and the relative path to the program. So if I had a paint program that started as 'main', I would do this:

Paint
main

icon.nft is an Sketch/NitrogenFingers paint file, which is 5x4. It isn't required if you don't want it to appear on the home screen, but you must prefix the folder name with a '.' or it will bug out.

settings.template is what you were looking for. As of writing, there are only two kinds of settings available: switches and colours. 'switch' is a toggle, and 'color' (please note the spelling and capitalization for both cases) is a colour selector. Each setting is separated by a new line, and the setting and type is separated by a ';' . I'll put it into example to make it easier.

This is a colour selector!;color
This is a switch!;switch
How to access these settings is much different. You can access it like this:

settings.getSettings('Human Friendly Name')['Specific Setting']
If we were to combine both examples a bit above, it would look like this if I wanted to get a set colour:

color = settings.getSettings('Paint')['This is a colour selector!]

That is, simply put, how the app API works in PocketShell.
Edited on 17 December 2014 - 02:07 AM
oeed #30
Posted 16 December 2014 - 11:41 PM
icon.nft is an Ink/NitrogenFingers paint file

*Sketch?

:P/>

Those settings look quite neat though, a nice idea.
Mr. Bateman #31
Posted 17 December 2014 - 12:40 AM
icon.nft is an Ink/NitrogenFingers paint file

*Sketch?

:P/>/>

Those settings look quite neat though, a nice idea.
Right. Too early in the morning.