simons-public / protonfixes

A module for applying fixes at runtime to unsupported games with Steam Proton without changing game installation files
https://simons-public.github.io/protonfixes/
Other
233 stars 114 forks source link

[RFC] Deprecating cefpython #116

Open mrjackv opened 4 years ago

mrjackv commented 4 years ago

I'm writing this issue in order to spark a discussion regarding the use of cef in this project. While cef allows the use of html+css+js to create an appropriately themed splash screen for big picture mode, it has some drawbacks:

The options for a replacement are multiple (pySide, pyGobject, kivy and others). IMHO I would pick kivy among the contenders as it has the following advantages:

I'm eager to know what others think on the matter.

soredake commented 4 years ago

https://aur.archlinux.org/packages/python-cef/

mrjackv commented 4 years ago

I made that package...

simons-public commented 4 years ago

I've used Kivy in the past for other projects and think it would be a great replacement. My only reason for using cef initially was because of the quick prototyping that could be done in html and wanting the splash to match bigpicture for my use case.

There's also the option of using pysdl2 directly. Kivy is good for it's widgets, but like cef is kind of heavy for a simple splash. This would require more coding than using a UI framework though.

Another option would be tkinter, which may or may not be built with python depending on the distribution. I haven't worked with it much, but I have a friend working on a project written in it and it seems pretty decent.

I was also reading up on using a custom theme for zenity. zenity is pretty reliably available since it is kind of bundled with the steam-runtime and is a dependency for steam in most package managers. It also supports progress bars and labels which I think are really the only controls needed. Right now I'm only able to find info for gtk2, but I'll keep looking.

At the end of the day I'm willing to merge anything splash-related as long as it stays optional if it has external dependencies, and I agree with deprecating cefpython.

pchome commented 4 years ago

Maybe something really simple, like semi-transparent image, see e.g. http://www.imagemagick.org/Usage/text/ and pango_markup section. Or window with background and text.