oasislinux / oasis

a small statically-linked linux system
Other
2.75k stars 84 forks source link

is flatpak/complex applications possible? #60

Open apprehensions opened 1 year ago

apprehensions commented 1 year ago

coming from void, I'm used to big applications such as sway or flatpak. I was wondering if that is possible via pkgsrc or nix. it may also be possible via a chroot but the issue with that is there is no Xwayland for swc and most apps are expected to run on a wlroots compositor.

Is there a way to get around this?

hovercats commented 1 year ago

I dont see why you shouldnt be able to use flatpak, or various more complex software. I know nix has alot of this, i.e. steam, spotify, zoom, hell even skype is in their repo. I belive nix might cover your needs here, if not, you can just build flatpak and fetch them from there instead. Regarding pkgsrc, i dont belive it covers as much in this area as nix does, so nix is probably a better fit here.

Swc does have Xwayland support, its listed in the readme for swc. Wether this works sufficently enough for your usecase, I dunno, but theres nothing stopping you from building wlroots/sway instead, or just stick with xorg, if swc/velox is giving you a hard time.

apprehensions commented 1 year ago

oh wow, no nvidia support in wld though 😔

hovercats commented 1 year ago

It does, It has support for nouveau. But that might not cut it?

apprehensions commented 1 year ago

I know nix has alot of this, i.e. steam

nouveau

hovercats commented 1 year ago

Does steam really require the proprietary drivers? Thats dumb.

Anyway, you can still use xorg, of wlroots instead, which should solve that issue.

apprehensions commented 1 year ago

Though, Steam and Spotify require libraries such as Mesa. I'm not sure if Nix will provide something like that.

And no, I meant that I am on an nvidia system. I think later I'll try to run oasis on a computer with Intel graphics.

sidkshatriya commented 1 year ago

@hovercats wrote:

I dont see why you shouldnt be able to use flatpak, or various more complex software. I know nix has alot of this

I agree -- running nix on oasis seems to be a good idea when the same application is not available in the oasis package manager.

The good thing about a nix installation is that it is fully contained -- every dependency, including libc etc. is packaged with the nix install and every application you install via nix.

Libreh commented 1 year ago

I don't know how far anyone has gotten with this but I tried using nix for this and I didn't suceed I have succeded with Kron4ek's Conty though The only problem I have encoutered is the inability to scroll in ungoogled-chromium but I don't know what the cause is

hovercats commented 1 year ago

I personally has not made any real effort in getting nix to work on Oasis, and I dont belive @apprehensions has either afaik.

Conty seems somewhat interesting. maybe its a viable alternative to the other ones.

@apprehensions do you have anything further you wish to add here, or can we close this?

apprehensions commented 1 year ago

as the person who asked if its possible, only one has tried and seemed to failed.

I'm yet to see that for myself

michaelforney commented 1 year ago

I have flatpak installed through some wip pkgsrc packages, and steam installed through flatpak. Though I'm not using Xwayland with swc to try to run steam/games. Instead I just run a separate Xorg session installed with pkgsrc.

I've used nix for a bit several years ago, so I know it should work. For people having trouble, what exactly isn't working? It's hard to offer any suggestions without any information. Like @sidkshatriya said, nix is fully self-contained, so the host OS shouldn't be much of a factor.

@Libreh I'm surprised that scrolling in chromium doesn't work. Perhaps you can debug by comparing the wayland protocol messages between swc and another compositor where it works? It's probably something simple.

Conty looks interesting. I will check it out.

Libreh commented 1 year ago

Is it worth it to use a wlroots compositor on oasis? I guess I'll try and see.

The problem with nix for me was graphics, I couldn't start any graphical applications since I got errors with libEGL and errors about not having a display even though I was in velox. I also had a 50/50 or so chance of getting sandboxing errors on the initial install. I had the same errors with flatpak as well.

I'm currently using firefox on velox and scrolling works. I'll try chromium again and debug when I get a wlroots compositor up and running.

Conty's nice, found it by accident too. I also never got any graphical errors using that, whereas I did with flatpak and nix.

xphung commented 1 year ago

You can actually take almost any command-line only Linux and make it host an Oasis Wayland desktop environment by copying over to it just a few executables: swc-launch, velox, status bar (in libexec), st (and optionally, netsurf). The Oasis binaries are more or less self contained, but expect to be able to find font files, xkb settings, etc under /share and /etc.

As you can run the Oasis Wayland Desktop on top of almost any other Linux, then Chrome works if the underlying Linux supports it (provided your underlying Linux supplies the dependency libraries for Chrome) - and in fact, Chrome can run as a window within velox - you just need to add an --ozone-platform=wayland switch to startup the app. It doesn't seem to have GPU acceleration however (or I can't get it to work), so it's animations and scrolling are very slightly less smooth (not really noticeable). Also scaling for HiDPI displays isn't supported by Velox (as far as I know). Chrome's built-in scaling works fine for website content itself, but the lack of HiDPI scaling is a problem for the browser chrome/tabs, location bar, menus etc.

I have recently switched over to MinBrowser, which is Electron based (and hence chromium based), but because it's UI is coded in Javascript, it should be quite easy to adjust the scaling of the UI by altering the Javascript (I haven't done this yet). To get MinBrowser, you first have to compile or install nodejs, then use npm (Node's package manager) to download and install Electron and MinBrowser.

On the issue of the shared library dependencies, I run the Oasis Wayland Desktop executables on a command-line only GKISS Linux (this is the glibc variant of KISS Linux). KISS community has provided packages for atk, cups, libjpeg, mesa, libnss, and you can find on github a package for dbus. I created my own no-op atk-bridge (which appears to work ok with Electron as long as you don't need accessiblity features) and have recently compiled my own atspi library. The following was my starting point for downloading & compiling all these libraries:

https://github.com/kiss-community/community/blob/main/community/chromium/depends

(In my system, velox is compiled using musl libc, whereas all the shared libraries above are compiled using glibc, but this is ok as it's an entirely separate process to Chrome/Electron, and the former doesn't touch any of the shared libraries used by the latter & all communication between Velox and Chrome/Electron is via wayland IPC).