geigi / cozy

🎧 Listen to audio books 📚 on Linux
https://cozy.sh
GNU General Public License v3.0
1.09k stars 84 forks source link

GTK4 port? #760

Closed bertob closed 9 months ago

bertob commented 1 year ago

We're trying to get all Circle apps updated to GTK4 and Cozy is one of the last apps that hasn't made the transition yet, so I wanted to ask what your plans are on this front.

geigi commented 1 year ago

Hey @bertob, I've started porting to GTK4 and libadwaita a while ago but was not able to finish it yet. The branch is named gtk4 and contains the most recent stuff I've done. Cozy starts with GTK4 but some stuff is broken and it doesn't look very slick yet. I think there is still more work to be done to adapt a more modern style. Sadly I currently don't have any resources to continue work on this... so I can't promise when it will be finished. If somebody wants to give it a shot let me know. Although the branch is a heavy work in progress and I probably would need some time to remember the state that I last left it.

bertob commented 1 year ago

Thank you for the update! In general, if you're struggling to keep up with maintenance we recommend asking for help from the community, and trying to find co-maintainers. Asking in the #app-dev:gnome.org and #circle:gnome.org rooms on Matrix could be a good starting point for that.

sophie-h commented 1 year ago

See #656 for our attempts to find new maintainers

geigi commented 1 year ago

Just read about the awesome changes in libadwaita, I think it will be easy to migrate the current gtk4 branch to the new widgets and it would also solve some problems mentioned in the article:

https://blogs.gnome.org/alexm/2023/06/15/rethinking-adaptivity/

bragefuglseth commented 11 months ago

Hi, another Circle Committee member here. You might be interested in knowing that Cozy is currently slated for removal from Circle due to this. We'd like to have the app in Circle even if it's temporarily excluded, so feel free to resubmit it when you've finished the port :slightly_smiling_face:

grahamvh commented 9 months ago

Hello, I'm a bit of a newbie, but I'm interested in trying to get the gkt4 port working @geigi. I'm interested in working with you on this if you have any time to spare. My goal here is to help keep Cozy going, and perhaps become a maintainer at some point.

I know you've mentioned that this codebase really needs an experienced dev, but it's been many months without any appearance of someone coming in to take over(that I can see).

I've slowly been working on getting the gtk4 branch fixed up and working: https://github.com/grahamvh/cozy/tree/grahamvh/gtk4. It's currently functional enough to where I'm using it daily. Still has a few issues to fix though.

Really appreciate the work you've done on cozy so far!

LSeelig commented 9 months ago

Hello, I'm a bit of a newbie, but I'm interested in trying to get the gkt4 port working @geigi. I'm interested in working with you on this if you have any time to spare. My goal here is to help keep Cozy going, and perhaps become a maintainer at some point.

I know you've mentioned that this codebase really needs an experienced dev, but it's been many months without any appearance of someone coming in to take over(that I can see).

I've slowly been working on getting the gtk4 branch fixed up and working: https://github.com/grahamvh/cozy/tree/grahamvh/gtk4. It's currently functional enough to where I'm using it daily. Still has a few issues to fix though.

Really appreciate the work you've done on cozy so far!

I'd love to try it soon! I appreciate you're giving it some attention.

rdbende commented 9 months ago

I've slowly been working on getting the gtk4 branch fixed up and working: https://github.com/grahamvh/cozy/tree/grahamvh/gtk4. It's currently functional enough to where I'm using it daily. Still has a few issues to fix though.

Lol, I just did the same thing on the weekend 🙄 I also ported it to the latest and greatest libadwaita widgets, but I've been struggling with the shitty seek bar and the book context menu. As I've seen from your diff, our commits almost supplement each other :) Here's mine: https://github.com/rdbende/cozy/tree/gtk4-rdbende

rdbende commented 9 months ago

@geigi I'd also be happy to help out with the maintenance of the project. I'm quite experienced with Python, and although I'm not on top of my game with GTK, it seems I know it well enough to get this far with the GTK 4 port.

I've familiarized myself with the codebase to some extent and it seems to be relatively straightforward, so I don't think it would be that difficult for me to maintain the project, even if I sometimes have little free time. It would also be great to work together on Cozy with @grahamvh.

grahamvh commented 9 months ago

I've slowly been working on getting the gtk4 branch fixed up and working: https://github.com/grahamvh/cozy/tree/grahamvh/gtk4. It's currently functional enough to where I'm using it daily. Still has a few issues to fix though.

Lol, I just did the same thing on the weekend 🙄 I also ported it to the latest and greatest libadwaita widgets, but I've been struggling with the shitty seek bar and the book context menu. As I've seen from your diff, our commits almost supplement each other :) Here's mine: https://github.com/rdbende/cozy/tree/gtk4-rdbende

That's pretty awesome, yeah it looks like we've mostly been going after different things. I'd be happy to work with you on Cozy! This weekend I'll see if I can figure out how compatible our different branches are(unless you already have), and maybe attempt to rebase against yours. What are your thoughts on collaboration on this gtk4 branch?

I've programmed python for years, but have virtually no experience with writing guis/gtk(I'm a Sysadmin, and mostly write cli tools). I can generally figure out how to make something work, but I'll likely need some guidance on the right way to do things.

My current todo list for the gtk4 port is is (likely needs some changes based on your work):

If you haven't figured out I mainly use Cozy on mobile :)

Look forward to working with you!

geigi commented 9 months ago

Thanks for giving the GTK4 port a go! Sounds like you made good progress. If you merged your branches, could you create a pull request for it? I'd be happy to have a look at it and merge it when it's finished 😊 Also thanks for the offer of helping out to maintain Cozy @rdbende. I think the GTK4 port is one of the most important tasks right now. But let's have a look afterwards at what's good to do next.

rdbende commented 9 months ago

This weekend I'll see if I can figure out how compatible our different branches are(unless you already have), and maybe attempt to rebase against yours. What are your thoughts on collaboration on this gtk4 branch?

I think most of our changes are compatible. The only conflict I can see immediately is the right click menu and the delete confirmation dialog, where I put the menu model in the UI definition file and used a libadwaita MessageDialog instead of the GTK one.

Since I've done a lot of commits on my branch, it might make sense for me to cherry pick the commits from your repo that I don't have, and then give you write access to my fork so we can work together on the same branch. This would make it easier to open a pull request in the future.

Otherwise, I'm almost done with the port. At the moment it's at the point where the app is mostly working, and there aren't many broken things left, just a few popups and the scan progress button. However, the whole thing could do with a bit of cleaning up. It would be nice if you could try it out on your mobile to see how it works.

@geigi I already have some plans for after the GTK 4 port is done. It would be nice to turn the search popover into a separate view that appears when the search button is clicked. I use Cozy's search feature quite often, but found that the popover doesn't really work for this purpose. Also, it's inconsistent with other GTK/GNOME apps, and not ideal on mobile.

Secondly, I think the code itself could benefit from some cleanup and formatting. In my own projects, I use black to format the code in a consistent style and use isort to organize the imports. I've found that this combination greatly improves readability, for me at least.

archisman-panigrahi commented 1 month ago

@bragefuglseth Now that cozy has adopted GTK4 and Libadwaita, can it be added back to GNOME Circle?

rdbende commented 1 month ago

See this issue: https://gitlab.gnome.org/Teams/Circle/-/issues/187

I will apply to re-join Circle once Cozy is in good enough shape for it.