Basically, what I’m trying to do is vnc or rdp from my librem 5, I’m guessing with wayvnc, into a desktop with more memory and storage than a librem 5, but still with the convenient UI the librem 5 has with PureOS for the touch screen. So I imagine there’s probably a way to set up PureOS on desktop with the phosh UI replicating its configuration on the librem 5.
For many circumstances except things like calling using my sim directly on the phone, i think i would like to take advantage of extra memory and storage on my remote desktop.
So is setting up the librem 5’s UI on a desktop somehow in PureOS something that can be done currently?
I have never bought a Librem 11, but does the Librem 11 use the Phosh system on an x86 processor in the way that @phoshy is asking for here? Perhaps a Librem 11 user will answer and will know
When they used to talk about an X-server (now a Wayland server if I understand correctly), they are literally talking about a display server. Everything in linux seesm to be a server or a service. When you log in to a unix or Linux session on a remote PC and set the display back to your Librem 5 machine, it’s the same as if you were sitting at that remote display. So if you can set the display server on your remote PC running Linux, to match the x/y size of the Librem 5 display, then even if the display itself is PC-sized, you should still see the Librem-5 sized display from the x86 machine displayed on your both the remote PC and also on the librem 5. I used to know how to do this in the x-server days. You just edit a text file using VI or nano and change the x and y settings that adjust the screen to a different screen size.
Since you are operating between two Linux machines within Linux in both cases, whether you are in ARM or PC on either or both machines, shouldn’t matter. Everything just works on the OS level. I would focus first on getting a remote terminal to display from a remote PC, back to your Librem 5. After that works, I would then try to get the Graphical User Interface to work. Start with SSH. Linux has the built-in tools to create a remote graphical display, if you can find them and learn how to use them.
If you get a remote display from an x86 box, you won’t see phosh unless the remote PC is running Phosh. But Phosh is not built to run on x86. So you would need to get the source code for phosh and build it in to PureOS on x86. If you can compile PureOS for ARM using an x86 compiler, then you might get Phosh running on the x86 desktop.
An easier option might be to write scripts to run the program on an individual program basis, without thinking about needing a desktop. I used to run a lot of Windows programs under Wine. It usually took a script to configure the program and how it should run in Linux. So I would create an extensive configuration file to execute the program and then assign an alias to each respective execution script such as “Wolfenstine”, “Word", etc. That also made it quick and easy to execute windows programs without needing to assign an icon to each program. With Limited space on the Librem 5 display, that strategy might work well.
There’s nothing in Phosh that would make it “not built to run on x86” and PureOS has had the amd64 builds of Phosh packaged since the very beginning. As others noted already, it runs as the default on Librem 11, which is a amd64 system.
Is your use-case about remoting into existing desktop session that you want to be based on Phosh, or do you just want to run a Phosh session to use on the phone, but backed by desktop’s hardware? If it’s the latter, it should be trivial to do it - just launch a Phosh session within a nested or headless phoc instance sized to match the phone’s screen and use some VNC client. If it’s the former, it’s still possible, but you’ll have to be creative in how to make a single session be usable on both big and small screens at the same time.
If you’ve ever seen a large monitor set to 1024x768, you may have seen a small screen positioned well inside of a much larger black box. Some higher-end monitors work this way when set to much lower screen resolutions. The black edges all the way around are apparently pixels that the graphics card just ignores, leaving them all black. Isn’t this the behavior we would expect from a big monitor to match the Librem 5 display settings? I would hate to see a phone dialer that takes up every pixil on my 25" screen.
Its the latter. But the experience I’m hoping for is to essentially have the session window from the remote desktop be fit or close to fit to the size of my librem 5’s screen as i view the open session on the screen in my hands. And also be able to interact with the UI within the session using basically the same touch screen presses and gestures as if I was using my phone normally. So are you saying that’s pretty much what the outcome will be by following the steps you listed?
And why not just running Phosh on phone and the programs that need more memory on PC streaming to Librem 5? I mean you can play AAA games on your L5 this way (to show how much more useful it is). And you don’t need the PC run all the time just to use the phone.
Edit: the downside is, you cannot control your phone via PC (that is may possible with further setups, but I don’t know if it makes much sense).
So are you saying that’s pretty much what the outcome will be by following the steps you listed?
As so often: it depends: while you can easily run a Phosh session on x86 (i run Phosh as my main desktop on a laptop) whether the forwarding works depends on the forwarding solution (vnc, rdp, …) and how that forwards the touch events (so you get proper multitouch rather than an emulated mouse pointer, etc). No idea what the state is today but in the past VNC didn’t have support for touch events. I think RDP has support but then it depends on the client and server implementing it (see e.g. Forward Touch events over RDP (#2949) · Issues · Remmina / Remmina · GitLab ) .
Since Purism mentions hosting Android apps on remote systems in their (closing the app gap the might have already thought about a solution for this though).
it seems that turbovnc added mutlitouch support from the viewer client stated in the patch notes of version 3.0.2. But although TurboVNC can be run on linux, that specific note refers to enabling this feature on windows viewer clients. So idk if that feature works on linux viewer clients.
This Github issue has one of the devs claiming that multitouch does work from Linux viewer clients, however the issue creator’s device turned out to be incompatible for some reason. And the dev said he’d have work to enable the feature to be supported on a broader collection of hardware. And then the dev said that extending support to a broader category of devices than what already happens to work would have to be a feature request funded by someone for him to do it. So idk it might already happen to work on the librem 5.
In case relevevant, I have wayvnc set up with the screen dimensions of my Librem 5 so that the Librem 5 can remote into it for using spyware android software. But I would typically connect using vinagre on the Librem 5 and this largely offers a “bad experience” due to inconsistencies between local client touch interface and remote touch operations. (It’s also worth noting the remote machine was running sway rather than phosh and only appeared relatively “mobile” due to Waydroid+AOSP.)
I think that the goal of running a remote session from your home PC on your Librem 5 would bring huge benefits. Imagine If your Librem 5 had 128 GB of built in RAM and 2TB of Solid State Drive instead of 128 GB of EMMC. Imagine if your Librem 5 could run x86 programs easily, without heating up. And imagine if while doing heavy data crunching on/from your Librem 5, that the battery never seems to use much energy. That is what you get when you have a PC doing the heavy lifting, while only controlling and watching that happening, from your Librem 5. You could easily run AI algorithms from your Librem 5, competing with the most powerful phones that Samsung can manufacture. When your Google phone is using powerful computers connected remotely to crunch numbers for your phone beyond the phone’s capability, your Librem 5 is doing the same thing. Who would not want to do that from their mobile phone? In a sense, the Librem 5 is the dumb terminal, connecting to the mainframe. The PC on the other end is the Mainframe.
I mean really the main issue i think is that alot of newer desktop software is not as optimized for low memory, and typical handheld levels of low power usage as dedicated mobile software. But alot of us probably just want to use the librem 5 as a mini linux pc you can carry in your hand with a touchscreen interface and the ability to make phone calls. All while still being able to easily transition to mobile optimized apps on the fly.
Given the amount of work its going to likely take to develop optimized mobile versions of software for a purely linux mobile software ecosystem, i think it makes more sense to just remote into hardware that can handle desktop software and while also avoiding draining the phone’s battery as much.
The librem 5 and the pinephone are the only purely linux phones with no proprietary android dependencies. So we have to settle for the hardware we have with the librem 5 and the liberty phone. The pinephone’s current usability due to buggyness is much more limited than the librem 5.
Personally my main desire rn is to use desktop browsers without having to close out all my tabs to save memory or to avoid draining my battery, and be easily able to switch between mobile and desktop websites when I need to. But if I’m using a vnc, when I’m using the mobile site i want to be able to use the touch screen as it would work on the phone normally.