Fun Facts Splashscreens
-
I also think this is really cool.
the images would be amazing, but even if it is only used on the command line through forture | cowsay it would still be cool
-
I just wanted to let you know that I've started working on this project.
I'll keep you updated ;)
P.S. Looking good!
P.P.S. @meleu When usingconvert
, it takes a lot of time. I'm working on a Virtual Machine. Maybe it's that. I don't know. Here's a snippet of what I'm doing:convert splash4-3.png \ -size 1000x100 \ -interline-spacing 5 \ -background transparent \ -fill white \ -caption:"${fun_facts[$random_number]}" \ -gravity south \ -geometry +0+25 \ -composite \ result.png
And here's what
time
outputs:real 0m7.172s user 0m6.300s sys 0m0.656s
-
BTW, if anyone wants to tinker, here's the GitHub's repo https://github.com/hiulit/es-fun-facts-splashscreens
-
@hiulit hey man! Well done!! ;-)
-
@meleu Thanks! :D It's super basic now, but it seems to be working. Now it's time to take a look at your
generate-launching-images
script and improve mine ;) -
@hiulit I'm glad to know it can inspire you. I usually spend sometime making my code readable just to help others to understand it (including @meleu in the future). Knowing that you're reading it and getting some inspiration makes me feel like the work was worth it. :D
Let me know if you have any doubt!
-
@hiulit a small tip: if you want to store fun facts in a text file, one fun fact per line, you can get a random line from the file using the
shuf
command. This way:shuf -n 1 fun_facts.txt
EDIT: This aproach would be useful if the users want to customize their fun facts. They wouldn't need to edit the script's code.
;-)
-
@meleu Thanks for the tip! I'll try it! :)
-
@meleu Done! It works beautifully :D
-
If it takes too long, maybe run the image-generation-script on system shutdown, to be used at next boot-time?
-
@zigurana good idea! ;-)
@hiulit I have more comments, maybe it's better to move the nerdy conversation to the nerdy topic... :)
-
@zigurana Yeah, good idea! Although I really don't have any idea of where I should put my script to do that... (⊙_☉) hehe! Noob at scripting here :P
-
More progress! :D
Now the splashscreen is created using the font of the active theme in EmulationStation, and if it has none it takes the Carbon theme font as default.A little video demo of the script working https://streamable.com/s/bbzzd/fecqc
And here's the the splashscreen of the Pixel theme with a Fun Fact!™ using Pixel's own font.
-
@hiulit you're doing a good job bro!!
I've submitted a PR to your repo. But, as I'm away from my RetroPie currently, please test it before merging. ;-)
-
WOW, thanks man! I will take a look at it and I'll get back to you :)
-
@meleu Hey, I've merged your pull request but I had to make a little change because it didn't seem to work properly.
The change I made was adding a
!
before-f "$splashscreen"
when checking for the splashscreen.if [[ ! -f "$splash" ]]; then splash="$DEFAULT_SPLASH" fi
Besides that, everything was alright! Thanks! :)
-
@meleu When I encountered the problem with Pixel theme and
xmlstarlet
I tried a different approach for finding the font.function get_theme_font() { get_current_theme if [[ -n "$(find "$ES_DIR/themes/$current_theme/art" -type f -name '*.ttf')" ]]; then font="$(find "$ES_DIR/themes/$current_theme/art" -type f -name '*.ttf')" else font=$DEFAULT_FONT fi }
I did the job, but I wasn't happy about repeating the
find
function , but I don't know any better :PDo you think that could be a workaround for finding theme fonts?
I know that some themes can have multiple fonts but I think it's ok to use the first one found.
-
@hiulit it's better to move the nerdy conversation to the nerdy topic... :)
I'll try to answer your questions there. Wait a moment. ;)
-
@meleu Oh, you're right! ;) See you there!
-
@BuZz please, evaluate if you would accept the following feature for splashscreen script module (and
asplashscreen.sh
script):Adding an option to put a random "fun fact" on the splashscreen.
The result would be something like this:
Some notes about how I'm thinking to implement that:
-
add a toggle option on splashscreen script module to enable/disable fun facts.
-
when enabled, a new splashscreen would be generated at every boot
-
a new dependency to generate the images:
imagemagick
(same as launchingimages scriptmodule). -
the image would be generated at boot in a background process and would be used in the next boot. I mean, when I boot my pi, the splashscreen I would see already exists and the script would be generating a new one for the next boot in a background process.
-
(obviously) it would be only used when the splashscreen is an image (do nothing when using a video)
-
the "fun facts database" would be a text file in
$datadir/splashscreens/
.-
an "official" funfacts collection could be stored in the official repo in
scriptmodules/supplementary/splashscreen/
-
provide a way to the user use a custom funfacts collection.
-
-
the font to be used for the fun fact text would be the same as the one used by the current ES theme in detailed view.
- Note: RetroPie must be frontend agnostic. Then, if the script can't find the font as described above, it would use a generic font.
-
all the logic for the image generation would be in
asplashscreen.sh
script
-
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.