App Fleet is a workspace management tool written entirely for the Linux Desktops, designed and finely tested on GNOME. It offers creation of workspace configurations that can later be launched using a startup workspace launcher.
Modern Linux Desktop Environments provide their users with the ability to have multiple workspaces on the same desktop; this is highly beneficial for users who often switch between the group of apps or group of browser windows with multiple tabs.
But launching these many apps manually on startup is a hideous task, sure we can write a script that can do this, but doing that requires a bit of brainstorm, and also, even on a powerful machine, some apps take some time to specifically show the first window (you cannot have another workspace until there is at least one window in all the current workspaces), and as the requirement increases we have to edit these scripts and maintain them, also, taking a look at the logs if any error occurs, waiting for the app to actually come up before switching the workspace to launch another, ….. phew .. honestly, this is a lot of work to do just to make a single workspace configuration.
But What if there exists a graphical tool to do this? A Tool that can let you create your workspace configurations, also, allows you to give your workspaces cool names and icons. A Tool that can detect installed apps on your system so that you don’t have to do a manual entry. A Tool that can even execute specific browser tabs or shell scripts? also, what if, it offers a quick workspace launcher once you log in?
Here comes App Fleet, A brilliant workspace manager & quick launcher specially designed for GNOME.
You only need wmctrl installed on your distro, also make sure flutter works, then, you can compile App Fleet for your distro.
App Fleet is written using The Flutter Framework.
Install (Advanced Installation Options)
Install using your shell
Copy and run the following in your terminal:
curl https://raw.githubusercontent.com/omegaui/app-fleet/main/network-install.sh | bash
Install from Precompiled Bundle
git clone https://github.com/omegaui/app-fleet cd app-fleet/package ./install.sh
Install from Source
git clone https://github.com/omegaui/app-fleet cd app-fleet/package ./install-from-source.sh
You can seamlessly update app-fleet without touching your workspace configuration. Once, an update arrives, your installation will notify you about the update. then, you can simply, update using these three ways:
Update directly from the shell
curl https://raw.githubusercontent.com/omegaui/app-fleet/main/network-update.sh | bash
Update from Precompiled Bundle
git clone https://github.com/omegaui/app-fleet cd app-fleet/package ./update.sh
Update from source
git clone https://github.com/omegaui/app-fleet cd app-fleet/package ./update-from-source.sh
Hey, App Fleet is built in the ecosystem of IntelliJ.
If you want to contribute to App Fleet, make sure you use IntelliJ-Based project configurations and edits.
The project is built using clean architecture, and there are four launch configurations.
The Prod configurations are meant for production ready states, and the Dev configurations are meant for debugging purpose.
You can only see app logs in Dev Mode.
App Fleet is designed to automatically generate Bug Reports.
You can find them at $PROJECT_ROOT/.config/bug-reports`.
Flutter 3.13.6 or above is Required for compiling the program.
Advanced Configuration Options
App Entry Customization
Some Apps take a specific period of time to load,
App Fleet offers wait-time for that kind of heavy App.
By Default, each app is given a time period of 500ms to load, which can be customized as per your needs (usually system performance).
Manual Configuration Editing
Configurations are saved in a readable format i.e., json.
You can directly edit the workspace configs located at $HOME/app-fleet/.config/workspaces
Hiding Workspace Configs in Launcher
You can even hide some workspaces from coming the launcher mode by removing them from app-settings.json
this file contains app preferences and is located at $HOME/app-fleet/.config
Quick Task Launcher
There also exists a tiny version of this project, its called the floating-action-bar, which can be used to quickly launch anything on any Modern Desktop Environment.