hexchat/hexchat

Port to gtk3

Opened this issue ยท 26 comments

vvug commented

GTK2 is old and nowadays a theming nightmare.
Please port hexchat to GTK3.

Feel free to submit a pull request.

vvug commented

I'm not able to, I contribute on downstream packaging but I can't code that much. I didn't want to be rude, I just think it's important and I found no specific issue on porting to gtk3.

I believe it's just a lot of effort to move everything across. Feel free to fork and maybe I'll help out too!

menu.c is needs some work and xtext.c needs a ton of work.

If somebody wants to rebase https://github.com/hexchat/hexchat/tree/xtext-cairo

Or ideally rewrite based on the improvements here: https://github.com/leeter/hexchat/blob/cpp-dev/src/fe-gtk/xtext.cpp

Are there any updates regarding this one?

Ah now I see why removing the scrollbar from my gtk3 theme did nothing

Well to me, it seems that upgrading to GTK3 at this point is not a worth while target. GTK4 should be the target of any rewrite if it were to happen. This would definitely require some maintainer blessing though.

@tristan957 IMHO we should identify which parts talk to GTK and have them in some sort of feature/bugfix freeze so that any and all work on them will concentrate on porting those parts to GTK4. Just my opinion.

I think one of the larger things holding back a port is the main widget for the text which I think is a GTK2 TextView. I remember @TingPing had some reservations about using a GtkListBox.

The current textbox is a 100% custom mess. It has in the past had a direct port to GTK3 but is such a mess that it was full of bugs and performance issues.

At this point in time I personally have no interest in ever doing this task but my thoughts on the best path forward are probably to make an entirely new GTK4 widget. I wouldn't stand in anybodies way if they want to do that (as long as they ensure it functions on Windows).

Unless somebody plans on stepping up and doing this work I don't think this issue should be constantly bumped.

Well Matthias has those blog posts about GTK4 custom widgets. I'll try to look into checking out what the current widget is, and see how a maybe a GTK4 solution could look. Right now my mind is totally in GtkListBox implementation mode, so maybe looking at the GTK2 widget will get my mind churning with a different idea.

You should consider (at least on Linux) using STLWRT instead of GTK.
GTK doesn't have a future outside of GNOME.

EDIT: interesting read: https://ubuntu-mate.community/t/horrible-gtk3-gnome-ui-design-is-leaking-into-ubuntu-mate-applications-in-20-04/22028/57

How can anyone use STLWRT when it has no website, no documentation, and not even a build system? Seems like vaporware to me.

GTK doesn't have a future outside of GNOME.

This isn't even true. GTK has a brighter future now than ever before. GTK supports mobile platforms very well through libhandy, and has seen a lot of work on its win32 and macOS backends.

It is obvious you have not ported an app from GTK3 to GTK4. Unless you are creating custom widgets, the APIs are very similar. There are new concepts to learn like controllers and gestures, but every major version of every piece of software ever written uses major versions to break APIs usually to make them much better and in this case the GTK developers made absolutely the right calls. Plus you have the removal of GtkContainer, but the docs are so stupid simple that a caveman could do it. People who exclaim "No one uses GTK outside of GNOME; No one will port their app to GTK 4; No will do X" are generally close-minded like yourself and don't know what they are talking about. If you have nothing constructive to say, just don't say anything. Open source software and more specifically the Linux community are some of the most toxic areas on the internet. This thread is really no different.

Nobody is working on this, there is no value in rambling here.

How can I buy Tristan a beer?

From what I'm seeing, while it's feasible to upgrade hexchat from gtk2 to 3 and then to 4 (following the migration guide from the gtk development docs) I wonder if it would be more feasible to start one from scratch, fe-gtk4 anyone? Would also give a chance to modernize the interface a little while still keep the hexchat charm. Though honestly, I'd love to hear from @TingPing on his thoughts now that gtk4 is out. I know I'd love to help out where I can with some code regardless the route taken.

I do not find this thread to be productive at all but I'll just leave my point.

All of these technical questions frankly don't matter. This task is just big enough that no drive by committer is going to do it. This is the amount of work that requires an experienced developer dedicating a lot of time to this project.

In that past that was me and my preferred approach was starting clean (https://github.com/tingping/irc-client). However years have passed, my time was diverted, and my priorities in life are elsewhere.

I have no plans at all to make or even review large changes to HexChat.

I do not find this thread to be productive at all but I'll just leave my point.

All of these technical questions frankly don't matter. This task is just big enough that no drive by committer is going to do it. This is the amount of work that requires an experienced developer dedicating a lot of time to this project.

In that past that was me and my preferred approach was starting clean (https://github.com/tingping/irc-client). However years have passed, my time was diverted, and my priorities in life are elsewhere.

I have no plans at all to make or even review large changes to HexChat.

Then based on this comment, can we have this issue closed?

Yes @ZachBacon . Press F to pay respect.

In the meantime, GTK4 was released and the support for GTK2 has ended.
https://blog.gtk.org/2020/12/16/gtk-4-0/

Another advantage of GTK3 for many users will be Wayland support.

Maybe a fork to FLTK would be more appropriate? GTK and Qt seem to be getting bloated these days.