trunkmaster / nextspace

NeXTSTEP-like desktop environment for Linux
https://trunkmaster.github.io
GNU General Public License v3.0
1.89k stars 69 forks source link

Switch from ART to Cairo backend #328

Closed onflapp closed 4 years ago

onflapp commented 4 years ago

While I was testing some user application for NEXTSPACE, I've noticed many graphical apps (PikoPixel, Pixen, Cenon) are totally broken under ART backend. Switching to Cairo fixed many graphical issues.

As ART is pretty much deprecated by GNUstep, shouldn't NEXTSPACE use Cairo?

Letterus commented 4 years ago

I support to do as much as possible along the development path of upstream GNUstep libs.

trunkmaster commented 4 years ago

@onflapp I like ART for:

  1. Speed for text drawing, image manipulations, fast optimized redrawing.
  2. Font management. With .nfont I can configure rednering type (hints, antializaing) on per-font basis with no effect to other (non-GNUstep based) applications.

Although .nfont support theoretically could be ported into Cairo backend, speed improvements need more time and efforts. It is not a top priority for me right now.

As for applications you've mentioned:

  1. PikoPixel - very strange application in terms of UI: self drawn menu, buttons etc. Completely violates UI guidelines. It requires many fixes to be NEXTSPACE citizen. Sorry.
  2. Pixen - is not open source anymore (https://github.com/Pixen/Pixen) and I can't find GNUstep package.
  3. Cenon - looks good to me. From thier page "The GNUstep backend of choice is the Cairo- or Art-Backend because they allow text scaling and text rotation.". I see no problem here.
onflapp commented 4 years ago

@trunkmaster I agreed with you on PikoPixel, it does look out of place. Generally speaking, any of these apps would have to be "ported" to NEXTSPACE. And as they are either abandoned or have seen very little development in the past years, I would simple fork and throw aways everything which does not fit in. I am now tracking down anything that could be useful.

@Letterus IMHO GNUstep has slightly different goals than NEXTSPACE. GNUsteps aims to be cross platform framework for creating Linux/Mac/Windows apps. NEXTSPACE is complete, self-sufficient desktop environment, with its own UX and design philosophy (or at least that's what I want it one day to be ;-). Whereas GNUstep must always choose some kind of compromise in order to stay cross platform and inclusive, NEXTSPACE shouldn't have to. However, let's be pragmatic and use whatever is out there already.

I'll do some more tests and share it here so that we can decide.

Letterus commented 4 years ago

@onflapp Regarding PikoPixel I think it is one of the best and most serious apps based on AppKit and compatible to GNUstep that are out there. And Josh as a developer is very experienced and actively maintains it. Maybe just ask him whether he is willing to make some adaptions to the UI so it will fit in better?

Regarding GNUstep: As long as Art works, ok. But I really see no use in splitting two very small projects in even smaller ones. So, yeah, stay pragmatic.

(Just as a notice: I like the concept of Nextspace and its technical integration. But even Steve Jobs turned the user interface of NextStep to Aqua once. So I am no big fan of the current UI. But that does not matter at all.)

BertrandDekoninck commented 4 years ago

Le 17 août 2020 à 19:49, OnFlApp notifications@github.com a écrit :

@trunkmaster https://github.com/trunkmaster I agreed with you on PikoPixel, it does look out of place. Generally speaking, any of these apps would have to be "ported" to NEXTSPACE. And as they are either abandoned or have seen very little development in the past years, I would simple fork and throw aways everything which does not fit in. I am now tracking down anything that could be useful.

Pikopixel is no real problem here. Invwindow menus can be overridden with a simple defaults line (I usually use the global macmenu with it) and the default PP theme can be overridden as well (or maybe disabled, should ask Josh). The biggest issue are the shortcuts, which override gnustep settings to use the CTRL key, and I don’t know how to change this. It’s digged somewhere in the code but it should be disabled as well.

I agree with Johannes on the value of this app. It’s really impressive and Josh Freeman takes care on every little detail as much as Sergii on NextSpace.

I should add that my main concern with the art backend is that it’s not theme compliant. Almost every theme is broken with it. And I’d really want NextSpace to be theme compliant in the future.

But Sergii has the point here, saying that the cairo backend is slow. In fact, it can be painfully slow in gnustep's Terminal.app, slowing a simple "cat foo.txt » down to minutes long (try with a long log file, for instance). And no-one is really maintaining backends in gnustep these days. So there is little hope to see this fixed. Bertrand

onflapp commented 4 years ago

PikoPixel is definitely one of the apps I'd like to see in NEXTSPACE. I fully agree it is very high quality app. I am digging trough the code right now and it is quite obvious Josh spent a lot of time "smoothing" things out, like working around GNUstep bugs and handling all different X window managers app may find itself running under. At the same time, it tries to be good OS X app as well.

Don't get me wrong, I appreciate the effort that went into it. I just don't think this is the right approach for NEXTSPACE. I'd rather have an app that runs only in NEXTSPACE, with less features but that fully fits in. This also simplifies the code base, you have just one target to worry about, makes it more maintainable. (BTW: I see the same problem with GNUMail, it just tries so hard to be multi-platform)

onflapp commented 4 years ago

I did some more testing and although ART backend seems to be buggy in some applications (mainly PikoPixel), it is faster and fits NEXTSPACE better overall (e.g. being PS-based, nicer display, better fonts support).

As switching to Cairo would just lead to other type of problems, I closing this issue.