Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Is there such a thing as a remote GUI? What I mean is something such as a program running in a VM that does not have a display device that communicates with a program in a remote system (perhaps another Linux system or perhaps a Windows system) that shows a GUI. When we use a VM we typically use a text-only interface such as SSH to execute programs and the programs execute in the VM and the standard I/O is redirected to our remote system.
It seems to me that it should be possible for a program in a VM to communicate with a program executing in our local system and for the VM program to issue GUI functions that are executed in the local GUI program.
I am experienced with development of Windows programs using Windows GUIs. I understand there are many details that need to be considered. A GUI would process many mouse move messages, too many to be sent to a remote system. Mouse move messages would need to be processed locally to the GUI but events such as a button click would need to be sent to the VM system. Has someone developed something that solves such problems?
If you are using X11, you can have a system display on another. This is what I do for my VMS guest OSs.
Code:
$ SET DISPLAY/CREATE/TRANSPORT=TCPIP/NODE=192.168.20.1/SERVER=1/PERMANENT
$ DEFINE/SYSTEM DECW$DISPLAY 'F$TRNLNM("DECW$DISPLAY")
$ RUN SYS$SYSTEM:DECW$STARTLOGIN.EXE
Then catch it on Linux
Code:
Xephyr :1 -ac -listen tcp -from 192.168.20.1
Windows and Linux can do RDP. Look at Xrdp, freeRDP, rdesktop, and Windows Terminal Server. I don't know what modern Windows calls it now. It used to be "Terminal Server". Qemu has, I believe, a VNC display (but I never used it).
Is there such a thing as a remote GUI? What I mean is something such as a program running in a VM that does not have a display device that communicates with a program in a remote system (perhaps another Linux system or perhaps a Windows system) that shows a GUI. When we use a VM we typically use a text-only interface such as SSH to execute programs and the programs execute in the VM and the standard I/O is redirected to our remote system.
It seems to me that it should be possible for a program in a VM to communicate with a program executing in our local system and for the VM program to issue GUI functions that are executed in the local GUI program.
I am experienced with development of Windows programs using Windows GUIs. I understand there are many details that need to be considered. A GUI would process many mouse move messages, too many to be sent to a remote system. Mouse move messages would need to be processed locally to the GUI but events such as a button click would need to be sent to the VM system. Has someone developed something that solves such problems?
Many years ago, long before Windows; it's call X-Windows, which can work over SSH just fine. And you can have a 100% GUI 'console' using VNC. Look at X forwarding with ssh, so as long as you have an X server on your local system, you run the GUI program over the SSH terminal, just by typing in the program name.
Windows and Linux can do RDP. Look at Xrdp, freeRDP, rdesktop, and Windows Terminal Server. I don't know what modern Windows calls it now. It used to be "Terminal Server". Qemu has, I believe, a VNC display (but I never used it).
I think those work by capturing the GUI in a system and showing the GUI in another system. I think it does not work when the system that I call the VM system does not have a GUI.
Quote:
Originally Posted by TB0ne
Many years ago, long before Windows; it's call X-Windows, which can work over SSH just fine. And you can have a 100% GUI 'console' using VNC. Look at X forwarding with ssh, so as long as you have an X server on your local system, you run the GUI program over the SSH terminal, just by typing in the program name.
The X Window System might be the type of thing I am asking about. The specifics of how something like this works can be confusing; the Wikipedia article says that RDP is an alternative but I think I am familiar enough with RDP to say that it requires both systems to support a GUI and what I am asking about would be designed to not require a full GUI in the one system.
There is also something called Remote Desktop Protocol (RDP) available with gnome.
As long as gnome is running on the one machine and RDP is properly configured the desktop can be mirrored and operated on a remote system. The remote system sees the exact desktop as is displayed locally. This may also be available with other desktops, but I know it is available for gnome.
I think RDP does require a full gui on both systems. Using X forwarding with ssh also requires that the app being run is gui as well (and may require gui on the local system before it can be forwarded to the remote system as gui)
As long as gnome is running on the one machine and RDP is properly configured the desktop can be mirrored and operated on a remote system. The remote system sees the exact desktop as is displayed locally.
That is exactly what I do not want. I am trying to ask about remote systems that do not have a GUI such as Gnome in it. It is the mirroring that would not work. Perhaps it would be possible to make a library that:
The program executing in the system without a GUI detours calls to a GUI (the output from it) and sends them to the local system
the program in the local system (that does have a GUI) sends the events (the input) to the system that has no GUI
However a GUI such as Gnome is a desktop environment that does more than a GUI. A text-only system might not support a full installation of a desktop environment such as Gnome.
I think those work by capturing the GUI in a system and showing the GUI in another system. I think it does not work when the system that I call the VM system does not have a GUI.
The X Window System might be the type of thing I am asking about. The specifics of how something like this works can be confusing; the Wikipedia article says that RDP is an alternative but I think I am familiar enough with RDP to say that it requires both systems to support a GUI and what I am asking about would be designed to not require a full GUI in the one system.
Again, you were given exactly what you asked for. You already HAVE X windows....Gnome, KDE, Enlightenment, XFCE, etc....any Linux desktop GUI runs on top of X windows, as you'd know if you did a tiny bit of research. You were also told about X forwarding over ssh; again, a well documented topic. Again, if you want to run a GUI application, you log in with "ssh -x user@address" over SSH. Then type in the name of the application, such as "xclock". Amazingly, the graphical application will appear on your local screen.
You were also told about VNC (again, copious amounts of documentation exist), which will give you a full GUI, as if you were sitting in front of the machine, just like RDP does. It appears you're not looking into anything people are telling you, nor are you paying attention to the answers.
XWindows, and its partial-successor XOrg, is a client-server graphic system. The host sends drawing commands to the client, which draws the requested imagery and sends responses back. (On a typical local-desktop system, both components are running at once.)
This is quite unlike Windows' "rdesktop," which has to "schlep a bunch of bitmaps around" and so requires copious bandwidth to work well.
What this pragmatically means is that you can run a full-featured GUI session against a computer that doesn't even have a graphics card, across even a comparatively slow network connection.
Last edited by sundialsvcs; 07-10-2023 at 05:09 PM.
Yes, sundialsvcs, that is what I understood from previous responses and that is what I was asking about.
I have installed xming in my Windows system and used SSH for my DigitalOcean Droplet. I can issue the command xclock in the Droplet and a clock opens in my Windows system. The Droplet has no other GUI and definitely no desktop environment such as Gnome.
Yes, sundialsvcs, that is what I understood from previous responses and that is what I was asking about.
I have installed xming in my Windows system and used SSH for my DigitalOcean Droplet. I can issue the command xclock in the Droplet and a clock opens in my Windows system. The Droplet has no other GUI and definitely no desktop environment such as Gnome.
Right; exactly as was told to you in post #3. Congratulations.
Right; exactly as was told to you in post #3. Congratulations.
There are thousands of questions asked in forums, perhaps every day. When someone replies by saying the question is answered it seems unusual to me for someone to respond in this manner.
Yes, sundialsvcs, that is what I understood from previous responses and that is what I was asking about.
I have installed xming in my Windows system and used SSH for my DigitalOcean Droplet. I can issue the command xclock in the Droplet and a clock opens in my Windows system. The Droplet has no other GUI and definitely no desktop environment such as Gnome.
Right. That's because the X11 server is on your local machine. If you're running a legacy operating system then that X11 server can be xming. The remote system has no graphical desktop environment or a graphical window manager or even a display system. However, by using X11 forwarding over SSH using the -X option you can have a graphical client like xclock run on the remote system and render graphically on your local system.
tldr; the client-server arrangement in X11 is opposite of what many people initially consider
Do I understand correctly that if one wants a GUI display of a remote headless system, that system must be able to run the Gnome/KDE/etc client? I have a headless server that does not have Gnome installed, so while I could connect as described, there is no GUI client software to run on the remote system. Right?
Do I understand correctly that if one wants a GUI display of a remote headless system, that system must be able to run the Gnome/KDE/etc client?
I think no, if not using X Windows but yes if using most any alternative suggested.
Quote:
Originally Posted by scasey
I have a headless server that does not have Gnome installed, so while I could connect as described, there is no GUI client software to run on the remote system. Right?
I am not sure which one is the remote here. If the remote system is the headless server then it would need a X Windows client (but not desktop environment) but most Linux systems have that already or maybe it is that utilities like SSH have it, I am not sure. The most important thing to consider is that the client (in the headless system) would be a program that either is already written that uses X Windows and that you can use or someone would need to develop (convert) an application. I am the X Windows beginner here and I assume someone will correct any inaccuracies in anything I said above.
Do I understand correctly that if one wants a GUI display of a remote headless system, that system must be able to run the Gnome/KDE/etc client? I have a headless server that does not have Gnome installed, so while I could connect as described, there is no GUI client software to run on the remote system. Right?
Nope. The remote system does not need to have any graphical capabilities at all, just the various client programs. The graphical programs run on such a system won't have X as a dependency but when run they will try to connect to X11. That'll cause them to fail since there is no X server. Howevwer, if you have forwarded the remote graphical program's X11 attempts using SSH's -X option then your local X11 server will display the remote graphical program.
As mentioned X11's client-server arrangement is kind of opposite of what many expect. The way it works is that the X server does the display and rendering, which will be local to you. The X client will be the program which does something graphically and that can be either local or, with forwarding, remote.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.