We consider it important for all of us to expose even slightly how this small project is designed.
You will find all the code published in the Lemoncrest repositories on GitHub. This project is completely OpenSource.
This program is based on needing the support of the community. We didn't want to offer a closed launcher in which the user would engage exclusively at one level of going through there and rating it. It is an open project, developed in python on the pygame framework so that each of the users, regardless of their technical level and previous experience in programming, can understand, edit and contribute knowledge to the project.
Basic explanation of operation
With this launcher it is intended that the Kelboy 2 platform can launch a menu from which the user-wished functionalities can be configured and executed. The aim was to move away from the typical console menus and to provide the user with a small user interface that allows the program to evolve easily.
This launcher is consequently a set of tools that are launched without the need for a desktop environment. The decision to do so is to save resources and load times in order to improve the user experience. With this, system dependencies are reduced and portability between platforms is gained. Therefore, this launcher can work (to the extent that its internal functionalities allow it) on desktop platforms, consoles, pc or other environments supported by the python interpreter.
This launcher comes preconfigured in the images of the Kelboy 2. To understand how it works you have to explain what and where it runs. Therefore, it is necessary to explain that this launcher runs by default at the user session level with user permissions. It is a launcher designed to run mainly on distros of the Raspberry Pi OS family without conflicting with any of its tools, so it has been decided to be launched from the .bashrc file in the user's folder. This file will run two lines:
cd kelboy-launcher ./launcher.sh
With these two lines it is enough, the first enters the user's folder where the launcher is and the second makes a local execution of the startup script.
Startup script (launcher.sh)
This script is in charge of keeping assets:
1. Script joystick.py
This script is in charge of capturing the movements of the controller and transforming them into commands that make certain routines or shortcuts work that the user wishes to execute. This is necessary because in the original hardware configuration the number of buttons available is limited, so it requires making certain combinations to get more inputs. An example of those currently available are:
- Digital volume control
- Brightness control
- Mouse emulation movement
- Virtual input controller emulation
- Displaying of fuel gauge information (battery and charge)
This script works in the background so as not to depend on other programs, so it will always be necessary to launch it with & as it is included in the launcher.sh
It is the initial script from which the user interface programmed in pygame is started. This script is in charge of initializing the framework, controlling the graphics and sound hardware, and collecting the events from the input drivers to transform them into program actions.
This script in its initial version is programmed to launch a menu with a list of options that allow navigation between the different options and widgets at the top that show information about the current hardware configuration at the operating system level.
It is a temporary script that runs when the launcher creates a command.
This means that when you want to execute a number of orders greater than one external to the launcher, a script is previously built and remains active as long as the launcher does not regain control or the main program is closed.