Exasperated by Qt's buggy/janky built-in platform agnostic style engine, for my commercial software project ( cancel.fm/ripcord/ ), I wrote a new Qt style engine, Phantom, and also released it as open source: github.com/randrew/phantomstyl

The open source KeePassXC project has released version 2.6.0, which uses the Phantom code for their new cross-platform theme: keepassxc.org/blog/2020-07-07-

Follow

@cancel Nice. Very impressive. Not sure the default color scheme is the prettiest, though. Still, phantom seems nice and very impressive. One speedcrush screenshot is with phantom and the default color scheme, the other is with airy.

@LinuxReviews Ah, looks like it's using some beige palette by default :) you might want to use qt5ct to give it a better color palette.

Maybe I should make an included+default one just for Phantom. I originally made the QStyle with it being bundled directly in an app in mind, so I didn't bundle a palette with Phantom, thinking that the app would specify its own.

But if people are going to use it as a style plugin on their system... hmmm...

@cancel I'm not sure anyone but me is going to compile it and copy the libphantomstyleplugin.so file to the qt plugins directory and use it as a general-purpose Qt style. Some probably would if they knew about it. I considered writing a short news item titled "Phantomstyle For Qt Is Available" or something with screenshots and instructions. A better default color scheme would be nice if you think that's a good idea.

@LinuxReviews Yeah, I think you're right. Existing color palettes that people have on their system might look a bit funky in Phantom, because Phantom uses colorspace-aware linear+perceptual color blending ("HDR/wide gamut ready"), instead of raw blending that most QStyle engines use.

So, yeah, maybe I should bundle a default color palette when it's built as a QStyle plugin :) Maybe the light one from my screenshots in the repo?

@LinuxReviews (note that the color blending stuff in Phantom is just for UI colors like borders, shadows, highlights, etc. Using Phantom won't make the rest of your app colorspace-aware.)

@cancel bundle a light and a dark theme if it's possible to bundle more than one (I assume it is?).

I like light colored themes. Many do not, OBS, GIMP, Krita and several other programs come with a almost all black dark sad depressing color scheme these days. Not sure if it's depressed developers or depressed users demanding it or if sitting in a corner being sad is trendy these days or what but black themes are popular. So give people a choice if you can.

@LinuxReviews

It's possible. The Qt API says that you have to give some kind of default palette. Right now, Phantom just gives whatever the underlying platform plugin gives. Which seems to be beiges on your system :) But, I could bundle both the light and dark ones from the readme screenshots, give the light by default, and have some environment variable that makes it give the dark one instead, if set.

@LinuxReviews My theory about dark color schemes being used in normal GUI desktop productivity software is that computer displays are so bright these days that staring at a wall of white is painful, and people don't like to turn down their desktop display brightness :)

@LinuxReviews

github.com/randrew/phantomstyl

That's the API it has to fulfill. "Just give me some palette, if there isn't one already set by the system."

@LinuxReviews Actually, I made a mistake in a previous comment. The beiges are probably coming from the base QStyle itself: code.woboq.org/qt5/qtbase/src/

Sign in to participate in the conversation
Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!