Welcome screen for GLF OS (a Linux distribution based on NixOS) that introduces the main features of the system and launches its in-house tools.
Built with Python, GTK4 and Libadwaita. Available in English and French.
- Guided tour: one page per feature of GLF OS, listed in a sidebar
- Home, Gaming, Studio edition, Updates and Help (useful links)
- Tool launcher: on each tool page, click the image to open the corresponding application
- Nix Disk: mount secondary drives (run with
pkexec) - EasyFlatpak: Flatpak software center
- Nix Firewall Manager: manage firewall rules (run with
pkexec) - Nix Samba: manage Samba shares (run with
pkexec) - GLF Customizer: change edition, software groups, desktop and channel
- Nix Disk: mount secondary drives (run with
- Light and dark theme: toggle from the header bar, images adapt to the theme
- Autostart: the "Show this window at startup" checkbox controls whether the welcome screen opens at login
| Gaming | Studio |
|---|---|
![]() |
![]() |
| Updates | Need help? |
|---|---|
![]() |
![]() |
| Disk Management | Software Center |
|---|---|
![]() |
![]() |
| Firewall manager | Samba share |
|---|---|
![]() |
![]() |
| Customization | Dark theme |
|---|---|
![]() |
![]() |
Pages are declared in src/config.py (PAGES). Each page has:
- a title and a menu label, translated through
src/assets/en.poandsrc/assets/fr.po - a body written in Markdown in
src/assets/localizations/markdowns/<locale>/page_<id>_body.md - an image and a menu icon from
src/assets/images/(with optional_darkvariants) - an optional command, run by
src/infrastructure/api/launcher.pywhen the page image is clicked:flatpak://<app-id>:flatpak run <app-id>bash://<command>: runs the command in a login shellbashWithPrivilege://<command>: runs the command withpkexechttp://orhttps://: opens the URL in the default browser
The language is detected from LANG (French for fr_*, English otherwise).
Unchecking "Show this window at startup" writes a hidden desktop entry to ~/.config/autostart/glfos-welcome-screen.desktop. Checking it again removes the file.
nix develop
python src/main.pyTo force a language:
python src/main.py --lang=fr_FR- UI strings:
src/assets/en.poandsrc/assets/fr.po - Page bodies:
src/assets/localizations/markdowns/en_US/andsrc/assets/localizations/markdowns/fr_FR/
If a Markdown file is missing for the current locale, the en_US version is used.
The version is set in src/version.py. After tagging the release on GitHub, update the version and sha256 in assets/glf/pkgs/default.nix:
python update_nix_version.pyTo only generate the sha256:
./getGlfSha256.sh X.Y.ZSee LICENSE.










