7 ms·
> That lead me to think that GTK and the GObject system is opinionated in a way that are not terribly compatible with my own opinions. This might be amusing fo
by mitchellh 1y ago
> That lead me to think that GTK and the GObject system is opinionated in a way that are not terribly compatible with my own opinions.
This might be amusing for me to say but... I also feel this way. I disagree a lot with the Gnome ecosystem's point of view. Funny!
Using GTK for Linux was a pragmatic choice. A goal of Ghostty is to be "platform-native" (defined here because there's no such thing on Linux: https://ghostty.org/docs/about#native https://ghostty.org/docs/about#native). GTK is by various definitions the most popular, widespread GUI toolkit on Linux that makes your app fit into _most_ ecosystems. So, GTK it is.
I hope `libghostty` will give rise to other apprts (maintained by 3rd parties, it's hard enough for me to maintain macOS and GTK) so that you aren't forced into it. See https://ghostty.org/docs/about#libghostty https://ghostty.org/docs/about#libghostty For example Wraith is a Wayland-native Ghostty frontend (no GTK): https://github.com/gabydd/wraith https://github.com/gabydd/wraith Awesome.
- LambdaComplex 1y agoI like Linux because it gives me the freedom to make my system behave how I want. The GNOME devs seem to think that GNOME should only behave how they want. For example, last time I checked, GNOME required a third-party plugin just to move the clock from the center of the status bar to the side. I'm not at all surprised to see that this mindset extends to GTK.
- dismalaf 1y agoWriting Gnome Shell extensions is easy, they're just JS scripts... If you really need to move your clock with a bunch of clicks, there's also KDE which is less opinionated...
- jcastro 1y ago> just to move the clock from the center of the status bar to the side. And I like linux because there are plenty of people who also do not care about this and want to just use their computer.
- const_cast 1y agoYou can "just use" KDE too. The default are actually less insane than gnome, it's easier to use. The idea that more functionality makes software less usable makes no sense to me. No, it's more usable. Its like when people argue that iOS not allowing anything other than safari is a good thing. Okay... how? Because if you like safari, nothing changes for you. You just keep using it. You wouldn't even be able to tell. Similarly, if you like KDE you can just... use it. You don't actually have to change anything. There's no gun to your head. If you're the type of person who just takes software and uses it, then great - you don't need Gnome for that. KDE is actually better at that, IMO.
- hactually 1y agoCan you do that on Windows/mac? Gnome devs not withstanding, you have access to the source to change it if you want or put up a PR?
- Lerc 1y agoBeing able to make a small change is good when every thing is well defined small parts. You can change the part you want and then use everything else as per normal. If everything is so tightly integrated that you end up having to maintain a fork of a large project, it doesn't work out so well. I don't know which is true for this particular case, but I'd hazard a guess that it is a much bigger task than it needs to be. I have seen Gnome devs talk of removing features because people were using them the wrong way. Not that people weren't using the features at all, just not for the purpose for which they were written. Experiences like that make me think that pull requests wouldn't get you very far either.
- NoGravitas 1y agoYou can look at the code of an extension that does the move, if you want an idea of what the level of effort is: https://github.com/kuvaus/moveclock https://github.com/kuvaus/moveclock
- eviks 1y agoYou can't put up a PR if the gate keepers reject your whole design approach
- cuu508 1y agoAs a gatekeeper in an unrelated small project, I understand gatekeepers being selective. You have a vision, design standards, quality standards. Drive-by PRs that add "just this one thing I need" features is how your well-designed, cohesive project becomes a kitchen sink of shit.
- eviks 1y ago> You have a vision, design standards, quality standards. Unless, of course, all of those are shit, so a more design-competent person can drive by with an improvement, which will be rejected because it's too shiny
- tuna74 1y agoGnome shell is designed in a way so that users can configure basically everything using plugins. That way everything does not have to go through the Gnome Shell developers and much more specific and esoteric functionality can be added.
- codethief 1y ago> The GNOME devs seem to think that GNOME should only behave how they want. For many years I followed this whole outrage but wasn't really sure whom to believe because I didn't have any stakes in the matter. Then the GNOME/GTK devs removed support for key themes[0,1] and I still have no idea why. The arguments they brought forward make absolutely no sense to me. Now I get where people were coming from. [0]: https://old.reddit.com/r/emacs/comments/c22ff1/gtk_4_support_for_key_themes_does_not_affect/ https://old.reddit.com/r/emacs/comments/c22ff1/gtk_4_support... [1]: https://news.ycombinator.com/item?id=35702303 https://news.ycombinator.com/item?id=35702303
- spauldo 1y agoSun donated a bunch of UI guidelines to the GNOME project back in the really early days. Those guidelines basically boiled down to "You users are idiots, and power users don't matter, so get rid of as many options and force a single way of interacting with the software." The GNOME development philosophy just expanded on this.
- AndyKelley 1y agoOh, I would love it if Wayland provided a standard UI toolkit (server-side)! Is that a thing that happened when I wasn't looking?
- king_geedorah 1y agoNo, there are no protocols intended to implement such a thing at this time. I'm not aware of anybody attempting to spec out such a protocol either, but I do think it's a really interesting idea. Edit: s/protocol/interface
- account42 1y agoThere is about zero chance that Gnome would implement such a protocol which makes the whole endeavor pointless. They can't even agree on server side window decorations.
- Cloudef 1y agoServer side ui toolkit doesnt make much sense to me. Better idea is to target some multimedia layer like web browser, electron, etc ... Or just hope someone someday comes up with UI library that doesnt suck.
- antihero 1y agoHow would this work given that the major DE's have completely different UX and design?
- AndyKelley 1y agoThat's precisely the point! It would be really nice for applications to be able to operate agnostic from the DE's decisions about UX and design. Applications want something much more high level: button here, scroll bar there, text input here. It's the DE's job to make such things accessible and look pretty. If you think about it, that's precisely why the web is a popular user interface target: the application has a much higher level interface, and all those concerns are, correctly, handled at a different abstraction layer.
- Arrowmaster 1y agoYou didn't cover it but is Ghostty still entirely dependent on libadwaita for most of its UI features? I completely lost interest when it was still in beta and I found out many features were disabled on Linux if you didn't want it to look and behave as a Gnome app.
- mitchellh 1y agoYes, its a hard dependency. But we go out of our way to add CSS classes to our UI widgets and even have a configuration in Ghostty to supply custom CSS directly (without you having to mess with gsettings or anything). We've seen some pretty incredible customizations in our showcase channel in Discord. We haven't committed to our CSS classes yet as a stable API but we plan to do that in the next release cycle. Still, they haven't changed much in a year. :)
- nothankyou777 1y ago> CSS classes GTK has gotten so fat that it's more like a 2nd-rate Electron. Not that Electron would have done Ghostty any good... I have a bad feeling that the only decent & consistent UI option under Linux is to target Win32 API, then run it under Wine.
- tristan957 1y agoWhat does this have to do with Ghostty?
- nothankyou777 1y agoAre we looking at the same title? We rewrote the Ghostty *G* *T* *K* application The article about struggling... with GTK.
- tristan957 1y agoYou didn't explain anything wrong with GTK. You just brought up Electron out of nowhere.
- aidenn0 1y agoI hate GTK enough that I'm considering porting Ghostty to literally any other GUI system. I think that Qt is probably the only alternative that anyone might consider "platform native" so I'll probably go that direction, even though Qt development is rather special in its own way (you know how GTK decided C needed an object system? Qt decided that C++ needed a more better object system).
- AceJohnny2 1y ago> Qt decided that C++ needed a more better object system I haven't used Qt, nor C++, in many moons, but my understanding was that `moc` [1] filled a gap of run-time dynamicism that C++ didn't natively support when it was invented. Has C++ since evolved to make that obsolete? Seems like moc is still a thing. [1] https://doc.qt.io/qt-6/moc.html https://doc.qt.io/qt-6/moc.html
- bgribble 1y agoI feel some genuine grief about what GTK has become. It started out as a toolkit for application development and leaned heavily into the needs of the C developer who was writing an application with a GUI. It was really a breath of fresh air to us crusties who started out with Xaw and Motif. That's the GTK I want to remember. What it is now is (IMO) mostly a product of the economics of free software development. There's not a lot of bread out there to build a great, free, developer experience for Linux apps. Paid GTK development is just in service of improving the desktop platform that the big vendors ship. This leads to more abstraction breaks between the toolkit, the desktop, and the theme, because nobody cares as long as all the core desktop apps work. "Third party" app developers, who used to be the only audience for GTK, are a distant second place. The third party DX is only good if you follow a cookie-cutter app template. I switched my long-term personal projects from GTK2 to Dear ImGui, which IMO is the only UI toolkit going that actually prioritizes developer experience. Porting from GTK2 to GTK3 would have been almost as much work since I depended on Clutter (which was at one point a key element of the platform, but got dropped/deprecated -- maybe its corporate sponsor folded? not sure).
- account42 1y ago> GTK is by various definitions the most popular, widespread GUI toolkit on Linux that makes your app fit into _most_ ecosystems. I disagree. Qt is also quite popular and much better at adapting to the environment it runs in.
- johnisgood 1y agoHow about wxWidgets or Tcl/Tk or Fyne?
- jamespo 1y agoThis is where your fork can come in
- maplant 1y agoThis is really just my opinion but I always can’t tell when an app uses QT and not positively. QT just looks uglier and feels more windows XP-esque than GTK apps
- kristianp 1y agoI just use the default terminal, konsole, in kubuntu. Is Ghostty that much better?
- brabel 1y agoNo, Konsole is awesome.
- rererereferred 1y agoGtk is more than Gnome. It is also used by Xfce and other DEs. So while Qt is also popular, I think it's fair to call it the most popular.