| ▲ | joz1-k 3 days ago |
| Nice to see that someone is still maintaining the original GTK1 toolkit. It's like the classic Win32 UI API for the Linux/Unix. Linux UI libraries are a constantly moving target and one can be easily more occupied by adapting to those toolkit API changes instead of focusing on the features of the application itself. I guess that CinePaint developers decided at some point that they don't want to endure API changes in the UI toolkit anymore. On the other hand, I think GTK1 doesn't even support Unicode. |
|
| ▲ | WesolyKubeczek 3 days ago | parent | next [-] |
| It doesn't support Unicode, doesn't support font antialiasing, and instead of fontconfig, you need to grapple with X11 core font support, using ttmkfdir and friends, and make the X11 server aware of where the fonts are. It's some experience I definitely don't miss from those days. |
| |
| ▲ | joz1-k 3 days ago | parent | next [-] | | Oh, yes, I remember those early times as well. :)
The question is whether it's possible to maintain the legacy API and upgrade the internal architecture to use more modern approaches. I think it's almost always possible, but perhaps the cost to develop and maintain such a legacy layer is too high for an open-source desktop environment and toolkit. The Windows OS managed to support old APIs quite well, but the available resources are incomparable. | |
| ▲ | floam 3 days ago | parent | prev | next [-] | | Are you sure no antialiasing? No subpixel for sure. I think I have some rusty memory of LD_PRELOAD my own .so with AA enabled (special patch? I don’t recall) with a game’s installer I shipped to get the statically linked GTK+1.2 Loki Games setup utility looking modern. That plus a QUITE SPIFFY looking splash bitmap slapped onto it would hopefully let the installation complete before anyone realized it was a creaky old thing. | | |
| ▲ | floam 3 days ago | parent | next [-] | | Oh yes. I present you gtkaa: https://web.archive.org/web/20231129124306/http://alx14.free... | | |
| ▲ | WesolyKubeczek 3 days ago | parent [-] | | …and recompile mozilla and nautilus and maybe all other stuff using gtk1… As someone who used to build Mozilla suite back when their gtk2 support was experimental, I’d say this is too much faff. |
| |
| ▲ | Findecanor 3 days ago | parent | prev [-] | | GTK 1.x used GDK which was a thin veneer on top of Xlib, and I think it defaulted to use Xlib calls for text rendering. If the X server supported antialiased text (and subpixel rendering) then GTK should have done too. | | |
| ▲ | vidarh 3 days ago | parent [-] | | Do any X servers do? Antialiased text on X is generally done by rendering the glyphs client side. | | |
| ▲ | anthk 3 days ago | parent [-] | | They did with the XFT font server? https://en.m.wikipedia.org/wiki/X_Font_Server | | |
| ▲ | vidarh 2 days ago | parent [-] | | Did it? I can't find documentation that suggest it returned antialiased font data. The server could of course request a larger font size and scale it down, but did any do that? I'm not questioning that it'd be possible to render antialiased fonts server side as there's nothing in X that really prevent it, I just don't recall that being a thing, rather than upgrading apps to use Xrender to render fonts client side and send the servers and atlas of pre-rendered glyphs the way we currently do. I could very well be wrong - I didn't do much X programming in the brief period it'd have been relevant. | | |
| ▲ | anthk 2 days ago | parent [-] | | Back in the day there was a font server for antialiased fonts, xfstt: https://tldp.org/LDP/LG/issue28/ayers1.html That was what I was looking for. | | |
| ▲ | vidarh 2 days ago | parent [-] | | Thanks for the pointer, but from the page you linked to: > Even though xfstt doesn't do any anti-aliasing of the fonts (since there's no support for this in X) The page it links to for xfsft as well, says this: > Although FreeType does support font smoothing, the modified libfont.a does not. Adding font smoothing to X would require a major change to the system: in X, glyphs are (monochrome) bitmaps, and there is no support for using pixmaps as glyphs. Changing this would require the design and implementation of an extension to both the X protocol and the font server protocol, and changing applications to use the extensions. It goes on to link to the Xrender extension as a solution. | | |
| ▲ | anthk 2 days ago | parent [-] | | Well, my fault again. I remember a daemon doing XFT rendering for plain X, from Debian Woody days. | | |
| ▲ | vidarh a day ago | parent [-] | | You were half right which is something for stuff this old. I'd entirely forgotten about the font servers, and looking at them, at least xfsft does use FreeType/Xft. It's just that it's still rendering to monochrome bitmaps. It'd have been a logical extension to figure out the changes to support AA for them as well, so it's a reasonable assumption, especially given the short cutover before Xrender took over and we started getting AA most places. Indeed, Xrender provides all the server-side infra that'd have made it easy-ish to do, by allowing glyph sets with depth... In retrospect it's also surprising that it wasn't done, because it wouldn't instantly given AA to a lot of applications "stuck" on server side font rendering... |
|
|
|
|
|
|
|
| |
| ▲ | anthk 3 days ago | parent | prev | next [-] | | Motif was improved with XFT/Fontconfig support. GTK1 can be patched too' | |
| ▲ | tiahura 3 days ago | parent | prev [-] | | I wonder how many llm tokens are burned dealing with Unicode issues? |
|
|
| ▲ | pferde 3 days ago | parent | prev | next [-] |
| Yeah, I think GTK2 would be a better candidate to keep maintaining. GTK3 is where it started to go to hell in a handbasket. |
| |
| ▲ | zokier 3 days ago | parent [-] | | Gtk2 also had exceptionally long lifetime, initial release in 2002 and last release in 2020. In contrast Gtk1 was initially released in 1998 and last release was 2001. |
|
|
| ▲ | bbanyc 3 days ago | parent | prev [-] |
| The "classic API" would probably be Xaw or Motif. Those haven't changed since practically before there was Linux. |
| |
| ▲ | thw_9a83c 3 days ago | parent | next [-] | | Motif was the real "classic" API. But let's do a little justice to GTK1. Motif was still a proprietary library when GTK1 was released. GTK1 was also already easier to develop with, and the default look&feel was somehow better. For some reason, all the widgets in the Motif UI were huge. Given the small resolutions of that time, it was very space inefficient. | | |
| ▲ | Findecanor 3 days ago | parent | next [-] | | The free clone "LessTif" already existed when "GTK+" 1.x came along. I agree that GTK was much easier to program, and had a better feel but the look was mimicking Motif except that every widget instead used a shaded button-style border — and that looked very ugly IMHO. However, GTK 1.x supported theme engines. Back in the day, my theme for GTK 1.x was one of the most popular, giving programs a look reminiscent of NeXTStep and Windows 95.
The engine also (optionally) hacked the GTK widgets, adding triangular tabs and subtly improved menu behaviour. When GTK 2.0 came along, it had a much improved default look that felt like its own thing, and also the new menu behaviour so my theme wasn't needed any more. | |
| ▲ | moregrist 3 days ago | parent | prev | next [-] | | If I remember correctly, Xaw was part of X and predated Motif although it’s hard to really call Xaw a full UI; it was pretty bare bones and limited. It’s worth keeping in mind that there were other Unix UIs that didn’t make it. For example, Sun NeWS was quite interesting (based on PostScript). > For some reason, all the widgets in the Motif UI were huge. Huge and IMO quite ugly. Also slow. Not that Xaw was pretty ( or even that functional). GTK1 was definitely a step in the right direction. | | |
| ▲ | jandrese 3 days ago | parent [-] | | Xaw was also really awful to program in. When I tried using it once I ended up reverting to just plain Xlib and was much happier, even having to build my own widgets out of low level primitives. |
| |
| ▲ | anthk 3 days ago | parent | prev [-] | | Both Motif and Xaw were configurable with XResources, they could be as big and small as you wanted. |
| |
| ▲ | joz1-k 3 days ago | parent | prev | next [-] | | Then I would vote for Motif. But since it predates Linux, it is a classic Unix look, not Linux.
For the younger crowd: <https://en.wikipedia.org/wiki/Motif_(software)> | |
| ▲ | kjs3 3 days ago | parent | prev [-] | | OpenLook/XView is contemporary as well. And CDE is a thing, still. |
|