797 posts
Posted 19 August 2013 - 06:52 AM
Flutter OS!
Flutter OS is an OS based around compatibility, customizeability, and creativity. (The 3 C's :P/>) It is fully multitasking, allowing an unlimited amount of programs to be open at once, and gives each running program the whole screen to work with. It's a clean easy to use interface heavily aimed at using mouse support.
Screenshots:Spoiler
Can't tell the difference from a normal shell right?
wrong, this was all running from the OS
A bit of an explanation:
A few good things to know:Spoiler
To change the colours of the OS, open the settings menu then click on the part you wish to change. It is quite self explanatory, but tc_* means the text colour and bc_* means background colour, and border is the "blue by default" border that separates the different parts of the screen
When you select the option, type in colours from the colours API, not the colors API, as these will not work. Then press enter or click somewhere else on the screen and it should change and update the screen. Click save to save and reset to go back to defaults. If you made a mistake and don't want to change the colour, just type garbage or something that isn't in the colours API and it will ignore it.
To switch between the homepage and programs, press f3
To switch between programs, press f4 while viewing a program or press the little arrow at the bottom of the screen on the homepage
The OS doesn't actually let you add users, but you can do it manually and log in with them. Just copy a user from the Flutter/users directory and change the name of the folder. You can also change the password in the Flutter/users/[user]/password file.
What programs there are currently:
Paint ( Massive WIP, expect to be complete next update ) - A more advanced paint program with fill and rectangle tools, as well as text support
Shell - Just the normal shell What to do in certain circumstances:Spoiler
P: Help! The homepage isn't rendering and is getting stuck! - This should never happen, but I might have missed a couple of things
S: Try adding a program, this will cause a force update for the screen, and remember to tell me so I can fix it
P: The paint program isn't working how I expected it to
S: There are multiple issues with this program. I broke the rendering when I was trying to fix the flickering so it doesn't update the screen very often. Also, the saving is really messed up for some reason. Basically, only use this program to see what is going to come, not to actually use it for anything serious.
P: I restarted manually and now the OS won't run from startup
S: The OS deletes the startup file when it starts so the shell program doesn't do "OSception" and open the startup file again and again. Just run "Flutter/startup" and remember to use the buttons on the top-right to restart the computer!Downloads:
Installer:
To install, just run this. It will go to a page that lets you add a user, and then start the OS. If you have any problems, post them on here or PM me.
( For some reason I can't get it to attach a file, I will put it on pastebin instead. Link:
http://pastebin.com/jKaMi56K )
695 posts
Location
In my basement.
Posted 19 August 2013 - 07:29 AM
It has a very nice UI. But you need to have a file named startup to install in the root folder.
Also, use read("*") for the inputs as it will censor the password
[Post more carefully so I don't have to merge posts next time. -L]
2151 posts
Location
Auckland, New Zealand
Posted 19 August 2013 - 08:01 AM
This looks pretty impressive!
797 posts
Posted 19 August 2013 - 11:36 AM
It has a very nice UI. But you need to have a file named startup to install in the root folder.
Also, use read("*") for the inputs as it will censor the password
[Post more carefully so I don't have to merge posts next time. -L]
Thanks, but I don't really know what you mean about the startup file. It creates one when you shut the computer down and deletes it on startup ( because of OSception ) read the spoiler for more detail
Spoiler
If the startup file stays, when you open the shell app, the shell runs the startup also so you have the OS running in a shell running in the OS and there is no way to actually use the shell normallyAs for "*"ing the password box, the reason I haven't done that is because of the API that I made ( I didn't give an option to mask the text in text boxes )
And what do you mean about merging posts? Did I accidentally double post or something?
This looks pretty impressive!
Thanks for the feedback! I agree with you on that one :P/>
8543 posts
Posted 19 August 2013 - 12:46 PM
The post merging note was from me to the poster of the comment it appeared in.
1688 posts
Location
'MURICA
Posted 19 August 2013 - 02:35 PM
As for "*"ing the password box, the reason I haven't done that is because of the API that I made ( I didn't give an option to mask the text in text boxes )
Why not just edit your API then? I had to edit gopher's redirect API so that it would give correct error messages at a higher stack level, so it shouldn't be a problem for you to add the option to star input fields, especially since it's your own API.
Great OS by the way.
797 posts
Posted 19 August 2013 - 04:37 PM
The post merging note was from me to the poster of the comment it appeared in.
Ah thanks…that was very confusing
Spoiler
As for "*"ing the password box, the reason I haven't done that is because of the API that I made ( I didn't give an option to mask the text in text boxes )
Why not just edit your API then? I had to edit gopher's redirect API so that it would give correct error messages at a higher stack level, so it shouldn't be a problem for you to add the option to star input fields, especially since it's your own API.
Great OS by the way.
I was just explaining why it wasn't "*"d, I will probably add this in for the next release, and thanks or saying its great :D/>/>/> I'm glad people seem to think it's good.
On a side note, it would be very appreciated if someone could look into the image saving functions in the image api, as the background colour is never saved. It has me completely stumped which is why I am asking. Full credit will be give of course.
Thanks.
695 posts
Location
In my basement.
Posted 20 August 2013 - 06:51 AM
Thanks, but I don't really know what you mean about the startup file. It creates one when you shut the computer down and deletes it on startup ( because of OSception ) read the spoiler for more detail
I mean that you need to edit it so that it doesn't delete the startup file.
Make an installer for it that deletes itself.
797 posts
Posted 20 August 2013 - 10:14 AM
Thanks, but I don't really know what you mean about the startup file. It creates one when you shut the computer down and deletes it on startup ( because of OSception ) read the spoiler for more detail
I mean that you need to edit it so that it doesn't delete the startup file.
Make an installer for it that deletes itself.
Did you read the spoiler? I know that you mean that the startup file should stay, but it can't otherwise ( like I have said previously ) it will do 'osception' if you open up a shell while the OS is running. I have tried a couple of other methods to prevent this, but none of them worked, and it isn't that much of a problem as long as you don't use ctrl-* and terminate the OS in some way other than the buttons on the top right of the screen.
If you can come up with a way that means the startup file will only run the OS once after it is turned on, then I will be sure to use that and credit you, but it simply isn't high enough on my priority list to give it much thought
8543 posts
Posted 20 August 2013 - 10:42 AM
You're probably doing it wrong if it tries to run startup each time you start a new shell instance.
797 posts
Posted 20 August 2013 - 11:12 AM
You're probably doing it wrong if it tries to run startup each time you start a new shell instance.
I mean the shell instance runs the startup, so you would have the OS running in the shell instance running in the OS running in the shell running in the computer…it's crazy really. I do agree that there are much better ways of doing it, but I am not really concentrating on it now. It would be very helpful if you could tell me a way of running the shell without it running the startup, just as a temporary fix before I add in the fs sandboxing ( which might take a while to complete and get to a standard I am satisfied with… ) .
8543 posts
Posted 20 August 2013 - 12:46 PM
Uh, just simply: shell.run("rom/programs/shell").
797 posts
Posted 20 August 2013 - 01:12 PM
Uh, just simply: shell.run("rom/programs/shell").
The code I use is loadfile( "rom/programs/shell" )( ), which should have the same outcome if I am correct. I will certainly try that though…it might be something I have messed up when setting up the environment for programs I guess…
8543 posts
Posted 20 August 2013 - 01:44 PM
No, it won't have the same outcome. You should not use loadfile to run programs. When you use shell.run, it places the shell "API" in the environment table of the function created from the loaded file. Manually using loadfile won't do this, so the new shell session starting up assumes it is the first shell (since it does not know about the parent shell, since you refused to tell it), and therefore runs through the startup files.
797 posts
Posted 21 August 2013 - 07:01 AM
Ah ok, thanks!
There is another problem I am having now with sandboxing the apps to the user directory…
It works fine with a normal app, but I am guessing when using shell.run, it must use an env that doesn't have the sandboxed version of fs, so using edit in the shell app doesn't get sandboxed and can edit programs in the main dir. Also, if I don't use shell.run, it will assume it is starting up, and load all the APIs from rom/apis which will also remove the fs sandboxing…do you know how I can get around this problem?
8543 posts
Posted 21 August 2013 - 10:28 AM
API loading is done in bios.lua. You can instead simply add the shell instance to the environment table of an os.run call in addition to your modified fs table. Perhaps I should move this topic to Ask a Pro.
797 posts
Posted 21 August 2013 - 11:34 AM
Update!New features: fs sandboxing to users directory ( this makes the shell go a bit wierd…"list" works but "ls" doesn't )( expect fix soon ) passwords are now *d some colour changesAPI loading is done in bios.lua. You can instead simply add the shell instance to the environment table of an os.run call in addition to your modified fs table. Perhaps I should move this topic to Ask a Pro.
It would be great if you could use your admin powers and remove the questions/answers ( or anything that looks like it could be in Ask A Pro ). Although they have been very helpful, they kind of go off-topic and aren't very useful to people who might want to download the program.
8543 posts
Posted 21 August 2013 - 12:42 PM
And they're embarrassing, heh? No, they're part of the topic; they'll stay.
5 posts
Posted 16 September 2013 - 05:20 PM
if i get this working can i use it on my server?
797 posts
Posted 25 September 2013 - 02:37 PM
if i get this working can i use it on my server?
Of course, how do you mean get it working though? I never released a broken version, I was just having a couple of (now solved(I think)) minor problems before.