Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux port #220

Open
Eated-Universe opened this issue Dec 7, 2020 · 34 comments
Open

Linux port #220

Eated-Universe opened this issue Dec 7, 2020 · 34 comments
Labels
enhancement New feature or request help wanted Extra attention is needed working on it

Comments

@Eated-Universe
Copy link

Very nice project! Love it! Would be awesome if there is any plan on a Linux version somewhere down the line.
Is there any chance for that?

@Eated-Universe Eated-Universe added the enhancement New feature or request label Dec 7, 2020
@aqilc
Copy link

aqilc commented Dec 7, 2020

Come on, let us windows users have at least some reason to stay :P

@ShankarBUS
Copy link

ShankarBUS commented Dec 8, 2020

@AqilCont, that made me chuckle.

@Eated-Universe, it would be a cumbersome task to port this project to Linux.

Most of the APIs this app uses depend on HWND (i.e. window handles) and some other Windows only APIS.

It would be a different project. It's better to keep this project "Windows Only".

@Eated-Universe
Copy link
Author

Eated-Universe commented Dec 8, 2020

I'm greedy Linux user, but you can't have it all I guess :)
Thanks for the answer, good luck with project !

@rocksdanister
Copy link
Owner

rocksdanister commented Dec 8, 2020

So my plan for Lively 2.0 is to make the Core and UI separate - for stability, portability and memory reasons (although GC does a good enough job already regarding memory.)
Currently wallpaper players (videoplayer and web browser) are separate programs from the main UI program... so some of the work is done already!

I know next to nothing about Linux programming, I can abstract away the Core implementations under some IDesktop interface and if someone willingly steps forward to implement and maintain linux code then its a possibility, I'll keep this issue open.

For the time being I want to do other things like making a wallpaper animator (just an excuse for me to play with Opengl haha)

@rocksdanister rocksdanister reopened this Dec 8, 2020
@rocksdanister rocksdanister added the help wanted Extra attention is needed label Dec 8, 2020
@Eated-Universe
Copy link
Author

I hope someone will step in at some point (I am an idiot for such things), and help with the project on Linux as well as Windows, and help the project grow.
good luck

@MoltenCoreDev
Copy link

There is a animated wallpaper app on ubuntu systems, it's named Komorebi 2. I have not tried it, but we can definetly contribute to make the linux app as close in ui to Lively.

@rocksdanister
Copy link
Owner

@MoltenCoreDev
The original project is not being developed, but there appears to be a updated fork..
https://github.com/Komorebi-Fork/komorebi

Don't worry too much about UI tbh, Lively is written in MVVM style and changing to a compatible framework should not be hard (exception: Preview window that host a separate program during wallpaper import will need a rewrite.. but its not essential for first release.)

What's important is make it compatible with all 100+ example wallpapers I posted here:
https://www.deviantart.com/livelywallpaper/gallery/
(Some of them require a custom schemehandler or localhost server due to cross-origin request issue.)

And the customizable web wallpapers require LivelyProperties API:
https://github.com/rocksdanister/lively/wiki/Web-Guide-IV-:-Interaction
and some newer api stuff for some of the newer wallpapers I posted:
https://github.com/rocksdanister/lively/wiki/Web-Guide-V-:-System-Data

mpv player is cross-platform and there are webview solutions for linux, so its certainly possible.

@rocksdanister rocksdanister pinned this issue Feb 18, 2021
@rocksdanister
Copy link
Owner

rocksdanister commented Feb 18, 2021

lively_linux.mp4

🐧

@dreaddr
Copy link

dreaddr commented Mar 16, 2021

Would love to see a flatpak of this app too, on the 🐧 side.

It would be so, dare I say, Lively then.

@WasteOfO2
Copy link

WasteOfO2 commented Aug 11, 2021

choosing between flatpak and snapd may req additional resources and additional development

Would love to see a flatpak of this app too, on the penguin side. It would be so, dare I say, Lively then.

Although virtually every distro may support both, it would still need development for 2 packaging protocols

it would prob be a decent idea to either have an AppImage for lively or the option to build from source

@skyemk
Copy link

skyemk commented Aug 13, 2021

AppImages works fine but I find it annoying when it comes to integration with the OS.

I like Flatpak apps so far, work's out of the box. On the other hand, I found snapd breaking on systems that don't use systemd by default.

However, AppImage is so far the best option.

@WasteOfO2
Copy link

The thing is, if u add smth to flatpak, it is only going to be natural for ppl to request snapd as well.

So either way if u go with snapd or flatpak, it is inevitable that at some point u have to maintain both

I understand the arguement for keeping apps contained. But I believe it is a good idea to have AppImages for smth like an alpha version of Linux port, while rockdanister figures out other possible options.

I too am looking forward for a flatpak release.

On the other hand, I found snapd breaking on systems that don't use systemd by default.

Heh, never happened to me™

TL;DR, keep AppImages as a temporary solution, (or permanent) when Linux port finally arrives. We can consider Flatpak and Snapd later down the road when the project picks up

@skyemk
Copy link

skyemk commented Aug 13, 2021

Heh, never happened to me™

Snap doesn't work on systems that use init instead of systemd.
An annoying problem I face with AppImage is that the apps don't really have an auto startup feature. Since lively is bound to have an auto startup that might be a problem.

That said AppImage temporarily sounds fine and then Flatpak support later will be great.

@WasteOfO2
Copy link

WasteOfO2 commented Aug 13, 2021

Snap doesn't work on systems that use init instead of systemd.

Majority of modern distros use systemd anyways, it's a low probability that someone using Puppy Linux will be using smth relatively GPU intense like Lively anyways.

Edit(made on 19 Aug, 2021): I realised while reading this again that there are ppl who do prefer other inits, Artix and Void being good examples.

But a point nonetheless

An annoying problem I face with AppImage is that the apps don't really have an auto startup feature.

I see. A way that it can be mitigated is just providing source code that can be compiled which launches the AppImage on startup.

For some ppl it is optional anyways.

Not sure if this is a practical solution, correct me if I am wrong.

And there is always compiling from source as a short-term and a long-term solution.

Good documentation is all that is needed!

@dreaddr
Copy link

dreaddr commented Aug 17, 2021

The way I see it, building from source and providing AppImage files is not going to help distribution of the app to as many users as possible, since for building from source people need to know how to do so and for AppImage, they need to download from the web or some other source. (Something most Linux users just don't do, when they have native package managers.)

Snap is definitely an option, but seeing as popular distributions such as Mint come with Snap disabled and some outright not even including snap by default, it's a much harder sell. Snaps are also more hated within the community than they are liked. (I use snaps personally, but would prefer not to use them too)

Flatpak is unique in the fact that it tackles most of the problems above, except, like @VihagChaturvedi mentioned, the community will expect a snap version as well, if a flatpak is released. The way I see it, this could be solved by just making an unofficial release via snap.

@WasteOfO2
Copy link

WasteOfO2 commented Aug 18, 2021

I proposed that AppImages and building from source can be seen as a temporary option when the port is figured out.

Yes, we can just work on getting repos for various distros unofficially.

Tbh, snap hate is kinda unjustified, even if I don't use snaps myself. It is just a distribution method, just like flatpak but maybe with a few differences here and there.

So here is what I propose.

AppImages/Build From source --> Flatpak/Snap (whichever is agreed to be ported to first) --> .rpm and .deb binaries conversion --> ppl can then host repos for various package managers.

This is obv tedious and the fact that we need to provide 4-6 options just for a single package is kind of a long shot.

AppImages and building from source are universal, regardless of distros. Hence which is why I suggest we go that route first.

This ideology is also mirrored in my proposal for the distribution of the project.

Edit(as of 19 Aug, 2021): Corrected a few grammatical errors :P

@Eated-Universe
Copy link
Author

Eated-Universe commented Aug 19, 2021

I'd suggest going for tarball binaries and an AppImage. Those should be enough for all major distros, for now and avoid flatpaks and snap, at least for the time being.

Only special look I'd suggest is Arch and AUR as it will benefit to SteamDeck users once it launcher (I know it will be battery draining, but people will wanna rice and show it)
Maybe even publishing it on Steam as other similar app does https://store.steampowered.com/app/672870/ScreenPlay/ to make it even easier.
It would also be a MAJOR help with getting more users

@WasteOfO2
Copy link

I agree on the flatpak, tarball and AppImages part.

Not really sold on the AUR part tho.

@dreaddr
Copy link

dreaddr commented Aug 24, 2021

After a tarball is released, I'm betting someone using Arch will make a PKGBUILD and maintain it on the AUR. Might not be necessary for the lead devs/maintainers to get involved.

I agree an AppImage would be nice for testing at first, although later on other options might have to be considered. AppImage updates and maintenance is not really a convenient thing to do.

@WasteOfO2
Copy link

I am also going to be learning RPM Packaging.

So I hope I am able to do a good enough job for like... Half the linux distros.

No pressure :)

@WasteOfO2
Copy link

WasteOfO2 commented Sep 6, 2021

Also, since Microsoft Edge is soon coming over to linux, I am curious how this will be affecting the linux port.

Afaik, one of the players(?) used MS is Edge.

Anyone who got an idea?

@rocksdanister
Copy link
Owner

rocksdanister commented Sep 30, 2021

Great.. so much discussion going on.. I understood some of the things 😅

@VihagChaturvedi
Edge would help, otherwise can use Firefox or Chromium.

For video I was thinking of using https://github.com/mireo91/Mpv.NET-lib- or just let user install mpv player (like in the demo video above.)

I'll post the code soon, been busy lately with personal stuff.

@WasteOfO2
Copy link

WasteOfO2 commented Sep 30, 2021

Great.. so much discussion going on.. I understood some of the things 😅

Heh dw, linux community gotchu, I am willing to help :)

@VihagChaturvedi
Edge would help, otherwise can use Firefox or Chromium.

Well I suggested edge cuz that's what is currently used in the Win10 release

For video I was thinking of using https://github.com/mireo91/Mpv.NET-lib- or just let user install mpv player (like in the demo video above.)

Actually a good choice! MPV is fairly popular with the community. Lightweight, powerful, open source, nothing else u can ask for

I'll post the code soon, been busy lately with personal stuff.

It's alr man, keep it healthy!

@rocksdanister Looking forward to it!

@arghanath007
Copy link

Is the Linux version being worked on currently and when will it release?

@WasteOfO2
Copy link

@arghanath007 its currently being worked on.

I dont have an idea about the ETA, prob gotta ask rock on that

@rocksdanister
Copy link
Owner

For now I made a separate repository for easier development:
https://github.com/rocksdanister/lively-linux

@WasteOfO2
Copy link

Woohooo

@dreaddr
Copy link

dreaddr commented Oct 18, 2021

Alright, so will this issue remain open or...?

@arghanath007
Copy link

Can me make it run through like Proton or wine? Just a thought

@dreaddr
Copy link

dreaddr commented Oct 19, 2021

@arghanath007 Its possible but unnecessary, most of the software used here for lively can be used in linux natively as well. In fact lively has an open repo for the linux port here.

@arghanath007
Copy link

I just recently switched from windows to linux. Until the native port is ready, the people who want to use lively on linux can use it via wine/proton. I don't know much about linux after using it for 2 weeks now, still learning.

@uiytt
Copy link

uiytt commented Oct 20, 2021

I just recently switched from windows to linux. Until the native port is ready, the people who want to use lively on linux can use it via wine/proton. I don't know much about linux after using it for 2 weeks now, still learning.

Does it works well ?

@arghanath007
Copy link

about

Nope they are still working on it. That's why I suggested to make it work through wine/proton until the native port is out.

@Arjun31415
Copy link

Hey there, I have made a small lively (like) app in rust which is able to display webpages, as wallpaper using webkit2 instead of CEF as being used here.

I am stuck on how to send the mouse inputs to the webbroswer. Could you please guide how you achieved that.
output_file.webm

As of now I have implemented it in Rust(idk c#) and on Nixos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed working on it
Projects
None yet
Development

No branches or pull requests