Developing GUI app on Immutable Distros
from ByteBovine@lemmy.ml to linux@lemmy.ml on 10 Jul 2024 07:59
https://lemmy.ml/post/17823118

So I’m looking at trying am Immutable Linux Desktop (uBlue Aurora probably). One thing I’m not clear on is how to run GUI apps during development. From what I understand I should create a container with distrobox, install my toolchains in it and start developing. I’m used to containers for CLI and server work, but I’m not sure how it applies to the GUI (Wayland / KDE).

If I do a cargo run inside distrobox for a Rust GUI project will it just work? I saw that I can ‘export’ apps, but that is for already built executables whereas I will be building and rebuilding them.

#linux

threaded - newest

governorkeagan@lemdro.id on 10 Jul 2024 08:19 next collapse

I’ve used Bluefin and Aurora for some light web development. I created a container with toolbox (I assume things would be similar with distrobox) and did what I needed. When I needed, I could run npm start and it was as if I had developed locally.

ByteBovine@lemmy.ml on 10 Jul 2024 09:01 collapse

Are you accessing that through the browser? It might just be bridging the networking in that case.

bjoern_tantau@swg-empire.de on 10 Jul 2024 08:33 next collapse

You should be able to run any executable you like in your home directory. No need for any containers. Try it out with a Hello World app.

ByteBovine@lemmy.ml on 10 Jul 2024 08:59 next collapse

The executable that I would be running is cargo (the rust build tool) but I want that inside of a container. I could cargo build inside the container and then execute the output binary on the host but then I lose things like hot-reload.

priapus@sh.itjust.works on 11 Jul 2024 01:13 collapse

Since OP is using an immutable distro they are likely unable to install some dependencies they need without using a container.

samc@feddit.uk on 10 Jul 2024 09:19 next collapse

In my experience it Just Works ™️. I spin up a distro/toolbox, compile some software (e.g. Emacs) then run the executable inside the container, and up pops the GUI window.

If you use distrobox, you can even distrobox-export desktop files, at which point a containerised gui application is practically indistinguishable from one installed on the host system

JakobDev@feddit.org on 10 Jul 2024 09:20 next collapse

Distrobox supports GUI Apps (XServer and Wayland)

[deleted] on 10 Jul 2024 10:29 next collapse

.

TeryVeneno@lemmy.ml on 10 Jul 2024 21:29 collapse

Do we have a lost lemmy users community yet?

TeryVeneno@lemmy.ml on 10 Jul 2024 21:30 next collapse
d00phy@lemmy.world on 10 Jul 2024 22:51 collapse

Ah shit. That was weird. This post was near the casual conversation sub. Sorry about that.

ETA: thanks for the upvote to whoever appreciated my lack of sanity!

Telorand@reddthat.com on 10 Jul 2024 14:08 next collapse

Spin up a VM with Aurora, and try to develop a simple GUI app in a distrobox yourself. See what it can do out of the box. I’ve been practicing getting a problematic VPN installed that way (on Bazzite), so that when I move to the bare metal version, I’ll be ready to go.

Also, if you’re unsure about distrobox, it’s just a wrapper for podman. If you need detailed settings beyond what distrobox can offer, you should look into podman’s options.

ByteBovine@lemmy.ml on 11 Jul 2024 03:27 collapse

How did you go with the VPN? I will be looking at that next. I’m using Proton VPN which has an rpm package, but if that doesn’t work I can fallback to manually setting up the WireGuard config.

Telorand@reddthat.com on 11 Jul 2024 04:57 collapse

ProtonVPN actually has a flatpak, and it worked for me when I tested it out a couple months ago.

But my personal use case is with Private Internet Access. I basically had to install it from source, tweak the installer by commenting out some lines that tried to write to /usr (which is immutable), install and modify the systemd daemon service manually, then install the .desktop file for my local user. And for some reason, the OpenVPN tunnel doesn’t work, but WireGuard works fine.

I may try my hand at making a flatpak or RPM for a cleaner install, but it’s seriously made me reconsider if I want to keep this provider, move to one like AirVPN, or go with a different immutable distro like NixOS or openSUSE MicroOS.

If ProtonVPN has its package in the Fedora repos or as a downloadable RPM file, it should be as easy as rpm-ostree install protonvpn or rpm-ostree install /path/to/protonvpn.rpm.

priapus@sh.itjust.works on 11 Jul 2024 01:14 next collapse

It should just work, distrobox supports graphical apps.

ByteBovine@lemmy.ml on 12 Jul 2024 08:38 collapse

Dioxus desktop and fullstack worked out of the box. Bevy isn’t working because some Nvidia libraries aren’t in the container. I might need to switch to a different ‘GPU enabled’ image.