Announcing Pegasus Frontend
-
@fluffypillow said in Announcing Pegasus Frontend:
You can create a symlink (an "alias" for the folder) with the name media, pointing to your images directory.
Ah. Good tip. Linux/Unix is not my first language. ;)
Will have to think in those terms moving forward.
-
@fluffypillow amazing work, been following since the beginning and I managed to compile it for the Amlogic S905 using LibreElec, had some problems with QT but finally got 5.9.1 to compile. I am trying to switch from ES to Pegasus, I know its still in early development but I am amazed and how fast it loads vs ES (ES takes about 5 or more minutes with all my roms, vs less than 1 minute for Pegasus) and how well it runs on the s905, besides other bugs that ES seems to have on my build, but that's not for this thread.
Anyways I have 3 small questions I could not really find the answer to (or maybe I didn't search that well), hope I won't bother you to much with them.
I see you can run scripts after events, like quit or so, are these scripts regular .sh scripts?yes they are :) but there is no option to run them at start?- I currently have a lot of ROMS with all the meta data and images for ES, Pegasus loads them up correctly, but it shows the box art as the thumbnail and the video as preview, Is there a way without changing/deleting other images to select what is shown instead of the box art? or does it depend on the theme?
I see there is a way to select "Favorites" but I could not find how to mark a game as favorite, is this still not implemented?
Edit: I see the mark as favorite is not yet implemented, but can be added manually.
-
@shantigilbert Thanks, good to hear it works for you too! Feel free to report if you get any issues on the S905. As for the questions,
- Pegasus will try to run any executable files it finds, be it shell script, a program or eg. python code (just mark them executable with
chmod +x filename
). There's no on-start script, as you usually want such startup script to fully finish before a program starts (eg. preparing the file system, setting up network sockets, etc.). You can always just write a launch/wrapper script for this task. - Yes, that depends on the theme (but theme makers can add support for changing what's displayed).
- Yeah, marking as favorite is not yet implemented, but if it's marked as one in ES2's gamelist, it will be recognized.
- Pegasus will try to run any executable files it finds, be it shell script, a program or eg. python code (just mark them executable with
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert Thanks, good to hear it works for you too! Feel free to report if you get any issues on the S905.
Thank you! I actually did ran into a problem, Since you are extremely good at QT maybe you can shed some light on this subject? not really with Pegasus itself but I can't seem to run it as a service, I know it sounds stupid, why would I need to run it as a service? but since I run it from an add-on in Kodi I need to run it as a service so I can kill kodi after launch, if I just run it directly Pegasus gets killed with kodi :(
I've read a few things about QT and running them as a service and all I have found is that it needs the QTservice plugin, but unfortunately I have no idea how to implement that.
-
@shantigilbert Hm I'm not really familiar with Kodi addons, how does it launch programs exactly? What exactly is a "service" in this context (not a systemd module or a daemon, I suppose)? Naively thinking, I'd solve this by writing an addon that calls a shell script which kills Kodi and launches Pegasus. Would that be feasible?
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert Hm I'm not really familiar with Kodi addons, how does it launch programs exactly? What exactly is a "service" in this context (not a systemd module or a daemon, I suppose)? Naively thinking, I'd solve this by writing an addon that calls a shell script which kills Kodi and launches Pegasus. Would that be feasible?
Running it as a service with systemd (systemctl start pegasus, in this case)
Kodi seems to kill any program or shell script that was called from within when it closes, so lest say I call Pegasus and after that I kill Kodi, Pegasus starts loading but as soon as Kodi is killed, so is Pegasus. I honestly don't know if that is how Linux works, but maybe I am missing something very dumb.
running them is very straight forward
xbmc.executebuiltin('System.Exec("/usr/bin/pegasus-fe.sh")')
Anyways if you try to run Pegasus as a systemd service it complains it can't find the libraries required, even if they are in the LD_LIBRARY_PATH which is what I've found on google from people trying to run QT apps as services.
in comparison running ES,Retroarch, advmame, PPSSPP as services works fine.
-
@shantigilbert I see, when Kodi launches Pegasus, Kodi likely becomes its "parent", so when you kill it, all the programs it launched will also die.
As for the libraries, could you post the full error log? If it's missing Qt libs, you could also solve that by creating a static build.
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert I see, when Kodi launches Pegasus, Kodi likely becomes its "parent", so when you kill it, all the programs it launched will also die.
As for the libraries, could you post the full error log? If it's missing Qt libs, you could also solve that by creating a static build.
Yeah, that is the problem with Kodi, I am figuring out if I can run a process that is not attached to it and that will solve my problem, but so far no luck.
I can't seem to be able to create a static build on the S905 unfortunately :(
I will get the full error when I get home, but its just a generic "can't find shared library QT5Gamepad"I appreciate the help even tho its not directly Pegasus at fault here.
edit: this is the error /usr/bin/pegasus-fe: error while loading shared libraries: libQt5Gamepad.so.5: cannot open shared object file: No such file or directory but if I run it normally pegasus-fe works fine
-
So using the documentation, I’ve managed to put together a working grid view. I want to try and creates different screens (states). Would states be the best way to implement (system list view > game so grid view > game details)
Also I’ve noticed the controls page is not working :(
http://pegasus-frontend.org/user-guide/controls -
@halfmanhalfcake Nice! Yes, states could be useful for such cases. If you theme has separate, individual "screens", like in ES2, and you want to change between them, you could implement each screen in a screen-sized Item, then change their position or anchor in the states. Or you could realign or change the shape and positions of the items if that's better for the theme, though that can end up a bit complicated.
Also the controls page link is http://pegasus-frontend.org/docs/user-guide/controls/; did you find a broken link somewhere?
@shantigilbert yeah that looks like a lib path issue. How are you launching Pegasus? I think In your case it should be like
LD_LIBRARY_PATH=/directory/of/libQt5Gamepad /path/to/pegasus-fe
. You can also set lib paths globally inld.conf
. -
@fluffypillow Yep on the simple theme tutorial > changing collections > tip :)
In terms of the screen, It might be too complicated for me at the moment, as getting a gridview working was hard enough.
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert yeah that looks like a lib path issue. How are you launching Pegasus? I think In your case it should be like
LD_LIBRARY_PATH=/directory/of/libQt5Gamepad /path/to/pegasus-fe
. You can also set lib paths globally inld.conf
.Thanks, unfortunately is not as simple as that, the path is correct, it is also defined globally, and it runs perfectly fine when not executed as a service, it seems its a problem with apps made on QT as all I can find is that they need the QTService plug-in, even if I define the library path it will still not run as a service. But anyways this is probably getting off topic as I am sure this is a problem only for the Amlogic S905.
I appreciate your help!
-
@halfmanhalfcake ah thanks, fixed :) As for theming, yeah it has some learning curve, so I still plan to write some more, smaller guides for certain components and use cases.
@shantigilbert The problem you have is that the OS doesn't find a library required by the executable, and thus can't even start the program. As such, adding QtService can't fix this issue, however you can modify the lib search paths for the whole system, for one particular user, for one shell session/script or for one program. If you wish, we could continue going into the details in a GitHub issue.
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert The problem you have is that the OS doesn't find a library required by the executable, and thus can't even start the program. As such, adding QtService can't fix this issue, however you can modify the lib search paths for the whole system, for one particular user, for one shell session/script or for one program. If you wish, we could continue going into the details in a GitHub issue.
Yeah I understand the issue, the problem seems to come that this does not happen if I run it directly, Pegasus-fe works wonderfully until I try to run it with systemd-run or with a .service file, that's is the weird issue.
I could open an issue on github, but not sure if this is a problem with Pegasus itself or is something on Libreelec, but for the sake of keeping this thread on topic and if you don't mind I will open one.
Thank you!
-
@fluffypillow Quick question, is there anyway I can use a 'soundeffect' to play a wav file on a keypress?
-
Hey @fluffypillow , what's the ETA on this request ?
-
- Favorite add/remove by buttonclick: will come after the metadata files are implemented (shouldn't be that far off now!).
- Page up/down function: this doesn't depend on anything else, so it'll probably just appear in one of the next releases. I wonder though, which gamepad buttons should be used here?
As for the current status, I spent the week tweaking the Qt builds to add 3D support, enable some features for the eventual USB tweaking, and fix support for an upcoming Raspberry firmware update. I've also spend some time copying all the assets and roms to a chinese pendrive for testing (literally took days!).
-
@halfmanhalfcake I think you could set up a SoundEffect to play on Keys.pressed/released.
-
@fluffypillow I tried that but doesn't seem to recognise SoundEffect :(
-
@halfmanhalfcake ah, apparently it's called Audio. You also have to
import QtMultimedia 5.8
to use it.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.