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

Make OS show on monitor as well as computer

Started by claw106, 21 June 2015 - 02:00 AM
claw106 #1
Posted 21 June 2015 - 04:00 AM
Hi, I love LabyOS. I was wondering:

I know its possible to make it run to the Monitor by going monitor left startup

but it does not display on the computer screen, only on the monitor. So I then have to go into the Computer and click around the screen to see if I can click the account name. So is there a way to make it show on both?


Thanks!
HPWebcamAble #2
Posted 21 June 2015 - 05:41 AM
In my brief search of the forums, I was unable to find a program like this (Besides this one).
A program like this wouldn't be extremely difficultly to write, but not necessarily easy either.

You'll either need to search the forums more thoroughly (I only searched for 'mirror'), or write your own


On that note, LabyOS is getting a bit dated (Unless there was an update I'm unaware of)
Why not look through some of the more recent OS's?
http://www.computercraft.info/forums2/index.php?/forum/32-operating-systems/
Creator #3
Posted 21 June 2015 - 07:48 AM
You'd have to overwrite the term functions. For example:


local oldTerm = (function(tabl) local  t = {} for i,v in pairs(tabl) do t[i] = v end return t end)(term)
m = peripheral.wrap(side)
function term.write(...)
   oldTerm.write(...)
   m.write(...)
end

You have to do the same thing for the othe functions too.
Edited on 21 June 2015 - 05:51 AM
claw106 #4
Posted 21 June 2015 - 08:15 AM
In my brief search of the forums, I was unable to find a program like this (Besides this one).
A program like this wouldn't be extremely difficultly to write, but not necessarily easy either.

You'll either need to search the forums more thoroughly (I only searched for 'mirror'), or write your own


On that note, LabyOS is getting a bit dated (Unless there was an update I'm unaware of)
Why not look through some of the more recent OS's?
http://www.computerc...rating-systems/


This is perfect! Thank you!
InDieTasten #5
Posted 21 June 2015 - 10:35 AM
Well, the problem with viewing the same program on the terminal of the computer and a monitor simultaneously is, that the screen size will be different with stock configuration. This means, that the "OS" is not able to just draw to a single term object, when preventing letter boxing on the larger term.

You can either split the OS in MVC fashion. Model, View, Controller. This is most oftenly used when designing web applications, which has to deal with the same problem: different screen sizes.

The basic idea behind this is, that you can have a single model (the raw data that is in the core of the OS, which is most often pretty abstract) and you've got views. Now you can have different views, "displaying" the same model for different screen sizes. This way you can simply run your model code in one instance, and then as many views on as many monitors in as many sizes as you want.

If this explaination did not manage to explain what I mean, heres another example:

You could run your OS in multiple instances via coroutines and a bit environmental change. The only problem then is, that if you interact on one instance of the OS, the other instance wouldn't be able to respond to it. You would have total parallelism with no interaction between the instances. Now it comes to the part I described above. You only want the views to be parallel, but not your models, the thing that the views rely on and which they can change. If you still don't understand, I can try to code up a little example program, that deals with the exact problem.


Alternative:
As stated in the upper part of this post, you could allow for letter boxing. Which means, you generate a virtual term, that has a height of the lowest height term/monitor and the width of the lowest width term/monitor connected, and have any additional space on all monitors/terms bigger than those blacked out. That can sometimes be feasable and would not require an entire rewrite of your OS :D/>
Edited on 21 June 2015 - 08:38 AM
Bomb Bloke #6
Posted 21 June 2015 - 12:23 PM
So I then have to go into the Computer and click around the screen to see if I can click the account name.

If you're using an advanced monitor, you should be able to simply right-click the account name on the monitor itself.
HPWebcamAble #7
Posted 23 June 2015 - 07:07 AM
Can this post be deleted?

Just report the post you want removed (With the report button next to Quote and MultiQuote) and state that you want it deleted



right-click the account name on the monitor itself.
Yep, right-clicks on an advanced monitor are just like a left click on a regular computer screen
(Note that regular monitors don't register touch. Or have color)