esase
: Easy Setup And System Enhancement (Popup based Linux Bash script/tool)esase
?esase
is a popup-based Linux Bash script (tool) designed for installing, uninstalling and managing system apps/packages/package managers…
It doesn’t matter which Linux distribution you use. Well almost, they have to be supported by
esase
.
It automatically detects the distribution/system in use and executes the necessary commands based on that information.
The use of popups is optional and is only enabled with the -g
flag.
Without the -g
flag, the script operates in console mode.
It’s simple: You don’t need expert knowledge to set up your Linux desktop. While app stores exist, manual setup and waiting are still required…
esase
works across various distributions, and the app file configurations and config.json
can be easily transferred to another Linux distribution to achieve the same setup.
Reasoning: esase
is written in Bash, which is commonly available on most Linux distributions without any issues. This makes it highly minimalistic in terms of interactions, and it requires very little computational power to perform its functions.
For example, it is currently designed to use the same configuration files to set up identical environments on different Linux distributions without needing to run multiple commands.
It only requires a few packages:
Dependencies | |
---|---|
Necessary preinstalled | flatpak , pkexec |
for gui mode | jq , yad , xrandr |
for config mode | jq |
Secure default: Nothing is executed completely with sudo
. You are always asked beforehand so that nothing serious can happen.
esase
is perfect for individuals who…
esase
ProjectThe aim of esase
is to highlight the challenges of switching between Linux desktop environments. While there are solutions that simplify this process, and while it is easier to stick to a single distribution, there are key points to consider:
Everyone has their own preferences, and those should be respected. However, perhaps this project can help make it easier to attract more people to Linux?
This tool is at a very early stage of development. Bugs may be present. If you find a bug, please create an issue or a pull request.
It is a Bash script that can have a strong impact on the system. It is therefore particularly important that you check what happens in the .sh
files before you use it.
Only do it if you know roughly what is going to happen.
esase
currently only supports the following Linux desktop distributions:
Distribution | Minimum Version | Supported Desktop Environment | Status Information |
---|---|---|---|
Ubuntu | 24 | GNOME | Very little tested |
Debian | 12 | GNOME | Not yet tested |
Fedora | 40 | GNOME | Extensively tested |
Supported languages | Short |
---|---|
English | en |
German | de |
Clone the repository or download the corresponding release and execute the script install-esase.sh
.
You must first make this script executable!
Right-click on the script and then on Properties:
Or alternatively in the console:
chmod +x ./install-esase.sh
Then execute the script!
Right-click on the script and then:
Or alternatively in the console:
./install-esase.sh
An app icon will then also appear in your app menu. If you click on this, gui mode will be used automatically. You can also simply call up
esase
in the console from anywhere.
Example:
esase -h
No problem, just make the script esase.sh
executable and start it.
Disadvantage: You have to start it via the console and you need to know the exact path of esase.sh
.
If you have already installed the tool and have your configuration files from the last uninstall or have any in general, you must enter or replace them in the project’s folder structure in the config
folder before you execute the install script.
These files will then be used during installation.
Alternatively, you can move the files to the corresponding location that the tool gives you at startup.
Make sure that the json
files do not contain any errors that could lead to a problem when executing esase
. Use the GUI for the app files to edit these files so that serious errors are excluded.
Usage: esase [-h] [-g] [-d] [-c CONFIG_FILE] [-l LANGUAGE] [-i "PACKAGE_1 PACKAGE_2 ..."] [-u] [-r "PACKAGE_1 PACKAGE_2 ..."]
-h Show help
-d Enables debug logging
-g Use GUI
-c CONFIG_FILE Specify a custom configuration file to run actions automatically
(Default: /var/lib/esase/config/config.json; Ignored if "-i", "-u" or "-r" is selected)
-l LANGUAGE Specify language
(en or de; Default: System language)
-i PACKAGES_TO_INSTALL Specify packages to install
(only used if "-g" was not selected)
-u Updates all - packages, flatpaks, npm, etc.
(only used if "-g" was not selected)
-r PACKAGES_TO_REMOVE Specify packages to remove
(only used if "-g" was not selected)
config.json
) for config mode (-g
was not selected){
"update_all": false,
"remove": [
"firefox",
"totem",
"rhythmbox",
"eog",
"cheese",
"gnome-tour",
"gnome-photos",
"gnome-user-docs",
"gnome-contacts",
"gnome-weather",
"gnome-maps"
],
"replace_terminal": true,
"install_apps": true,
"install_flatpak_apps": true,
"install_advanced_virtualization": false,
"install_docker": true,
"install_npm": false
}
Execute the script uninstall-esase.sh
.
Note that this script must be made executable beforehand. The procedure is very similar to the installation.
And because it is so similar to the installation, you can simply make the install-esase.sh script executable and then simply:
./install-esase.sh undo
When uninstalling, the configuration files are automatically copied to the current home directory so that you can reuse them. The path where you can find it will be indicated.
If you have any bugs, suggestions or feedback, feel free to create an issue describing what you’d like to see.
In general, TODO
s are included in the code, which would otherwise be possible.
To achieve a stable version and an established tool, implementing some of these ideas is crucial, especially the package manager integration. Since this project has been developed single-handedly so far, it would be greatly appreciated if volunteers could join and contribute! 😊
If you have general questions, suggestions, etc. and don’t want it to be an issue, you can reach me at Matrix (https://app.element.io):
Invitation link: esase (Matrix Space)
If you would like to take part and don’t know how or what to do, you are welcome to write to me.
There are German and English rooms there. 😊
If you think this tool is useful and saves you a lot of work and nerves and lets you sleep better, then a small donation would be very nice.