Back when I was poor and all I had was a laptop... my girlfriend wanted a computer but we didn't have enough money. So I loaded up virtual box and plugged in an external monitor, keyboard and mouse binding them to the virtual machine. This setup worked really well to let us both browse the internet simultaneously.
But it seems to have gone by the wayside as the upper limit is really the number of video outputs, and driving 30+ displays off one computer starts getting into custom setups that are going to be more expensive, even if the goal was just running 30 instances of Firefox on one computer. The wiki hasn't been updated in 6 years, so I assume it's not viable in modern Ubuntu?
It's not done often, as not many people must run 30 individual desktop sessions on a single server box at the end of the day.
Procedures are more or less same for every Unix or GNU/Linux systems. You somehow get dozens of display outputs, give Xorg with necessary config as to where to output and what input to watch, and run it. Unix and Linux are a multi-user operating systems so there's no inherent problem with it. Windows can do the same using the feature called Terminal Service. macOS Server had the same kind of feature years ago.
On GNU/Linux, DisplayLink(not to be confused with DisplayPort) USB graphics adapters should work for this, or virtual framebuffers using Xvfb can be used to connect over VNC or RDP. Or some sort of PCIe hub can be used to connect grapevine full of Quadros. Whatever.
The practicality problem of it is user experience tends to be rather suboptimal due to collectively massive issues, from network overheads, hardware acceleration issues or lack of support for it, workloads of sysadmin to constantly fighting outages, cost of client console hardware that aren't supposed to be full standalone computers but virtually it, etc.
The big issue with doing that sort of thing these days is that for the price of the specialized hardware you'd need, you can just buy mass-produced general-purpose computers.
Hardware was what kept me from donning my Olde Guy hat and going on about how we used to have 20 serial terminals attached to a DigiBoard and a single System V machine, and by golly, we were glad to have it. It then occurred to me, "where am I going to find serial terminal hardware these days, and will it cost more than a WalMart laptop?"
I did this on Gentoo around 10 years ago. It was quite cumbersome, but it worked. Separate X sessions in time of xorg.conf. The problem was with sound, I didn't know how to divide it, also removable media and danger of shutting down computer when another session was still running. Today it would be probably easier.
That's a brilliant idea! I was mentally practicing sharing my 32 inch screen with my wife when she complains about screen real estate inequality in the house - hers is surface pro - but never come close to solving keyboard and mouse sharing.
wow, this reminds me of my earlier days (also poor) but I did it with an ancient 30gbp Nvidia card that had a TV output and put another X session on that display output.
It surprises me that it works so well, but I think that the original technology was designed exactly for this.
I'm glad it worked for you in a personal setting. I know having VMs with thin clients is pretty common in office settings and schools, but I'm guessing they have dedicated hard- and software for it (Citrix I believe? It's been a while)
Without VirtualBox, all input and output devices are bound to the currently logged-in user (you can't tell Windows that another user should log in but their input/output come/go only to those devices).
Timesharing was introduced in the early 60's and still supported by Unix-based systems. Windows has similar functionality but probably needs some addons. Virtualbox is one way around that.
Neat idea. That would be super easy to implement on GNU/Linux using nested Wayland compositors, which BTW is something Valve is already playing with (although for different reasons): https://github.com/Plagman/gamescope
With nesting, you get full flexibility of how to display a single game (cropped, letterboxed, scaled, placing on the screen even if it insists on being fullscreen, input grabbing etc.) so you can play split-screen without having to switch your regular session to a special-purpose compositor.
I'm a bit curious if this could be bent into being a pair-programming tool. One of the core functions is simply routing multiple connected keyboards/mice to multiple concurrent copies of a given piece of software.
I like that idea. In the past I was thinking that multiple separate cursors and keyboard inputs on a shared screen would be neat, but the problem with the way I was imagining things was in how do you make it so that both people can work together unhindered at all times.
For example, in the way I was originally imagining it, you and me would sit down at a computer and I’d open the editor and we’d make concurrent edits. But then when I want to scroll, the suddenly you would not be able to scroll. And another example, if you were pointing and clicking at something, say for example that you were drawing a painting in Photoshop, and I try to move another window from one side of the screen to the other and suddenly I am occluding your window, and on top of that you might click in my window.
This was a few years ago so I was imagining a situation where both people were sharing the same computer and sitting together physically in front of it.
But I like what you said a lot. A split screen view with separate working areas that we both see, like in a video game, that would probably be nice. Both for local and remote collaboration.
There's an emacs plugin for it[0]. I've used it before, though only at the same network, and not over the internet. The host gives access to specific files, which people connecting to the session can then edit. Host and clients maintain separate buffers, selection, etc, which are then synchronized by rudel.
If you are on a shared account, it is even easier by running `(start-server)` and then connecting to it with emacsclient. The only downside is that marked regions are shared between clients.
How do you see this being used in pair programming? To me, the key is to work on the same thing, one person being the navigator (“where to go”), and the other being the driver (“handling the pedals and the steering”). In this mode, there is only one keyboard and one thing to look at. Why would you want a split screen?
My 5yo daughter has been really into creative mode minecraft lately (using my computer and copy). She's been begging me to get a second computer set up to play together but I haven't had the time or resources to do so. I'm definitely checking this out!
Is that the pi edition or full version? I have a 4 waiting for me to use. Once my daughter saw a video of someone playing with dragons in minecraft, she started asking why ours didn't have them... so now we have mods for unicorns, dragons, dinosaurs, and rocket ships. We just went to space yesterday for the first time, and she started building a house on a moon.
I want a 64-core 51GB box with this to use wih my teams. Anyones IDE will fly using that power available. Costs could be lower too (although I doubt setup and maintenance offsets the decreased hardware cost).
Basically, along the same vein. I have multiple offices at my house, it would be nice to just have one POWER-horse, that I can use throughout my home when working. Instead of have to use slower-laptops occassionally. I don't understand why this hasn't been solved as a problem before.
I think it is kind of solved, Windows for example support remote connections via remote desktop. With the desktop version you can either run local or remote session. If you run server versions you can have multiple simultaneous connections. The same things are of course available on Linux side as well
I'm doing this with Windows all the time, connecting from laptop my desktop where I have all the apps running. It's pretty usable even with 4G connections.
RDP or VNC over Ethernet is still laggy. Same reasons as why cloud gaming never takes off.
There are people running super long active HDMI or USB extension cables so perhaps that kind of setup paired with HDMI splitters could work. Security is going to be an issue though.
After looking at some of the setup guides for some of the games it doesn't look like it is using any fancy isolation tricks. So far it looks like it works with games that either allow the user to run multiple instances or the program somehow modifies the game to allow it to run a separate instance. Although I don't know what is being changed that allows the games to run multiple instances.
> Some games use Steam to prevent you from launching multiple instances, and some games use Steam for matchmaking, preventing you playing with one copy.
> The Goldberg emulator replaces the Steam API dll, tricking games into letting you launch multiple instances and join the same server.
There are also a few warnings on the site that the hooks used by universal split screen will likely trip anticheat software.
> There are also a few warnings on the site that the hooks used by universal split screen will likely trip anticheat software.
Yikes, they should make that warning more prominent. Like a big yellow banner across the top of the landing page.
If you trip VAC for example, you're banned from online play for all of your VAC-enabled Steam games, IIRC. I imagine programs like this that do all sorts of weird Windows API plumbing/injection are pretty likely to look anomalous to even the most basic anti-cheat.
No, you're only banned from playing the game that VAC detected a cheat in, unless it's a half-life or source based game where it bans you from related games using the same engine. http://www.vacbanned.com/static/information
Vac is also only triggered if you try to sign into VAC-secured servers and VAC detects a cheat. In the unlikely event that something like this is ever classified as a cheat (unlikely since valve manually detects and adds cheats to the blacklist), simply running a local server would not trigger a VAC ban.
Looking at some of the setup guide videos, I guess portrait mode for the monitor would work better as two landscape game windows would fit better on it.