- Python 97.7%
- Shell 2.3%
| files | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| template | ||
odyssey-welcome
First-boot welcome app for Odyssey Linux. Shown automatically on the user's
first login via /etc/xdg/autostart/, accessible later from the application
menu under "Odyssey Welcome".
window: 900 × 600
toolkit: PyQt6
release: 2027 edition
package: odyssey-welcome 1.0_1
Layout
Six horizontal tabs at the top:
- welcome — community wallpaper + welcome message + thanks to beta testers
- what is — what Odyssey is, the philosophy
- features — BORE kernel, xbps-gui, guinit, control center
- apps — preinstalled apps (mpv + noize, Zen, terminal, plus our tools)
- repository — the Odyssey xbps repo, where it lives, how to contribute
- manual — short tutorials for xbps-gui, control center, guinit
Files in this srcpkgs directory
srcpkgs/odyssey-welcome/
├── template # xbps-src build recipe
└── files/
├── odyssey-welcome.py # main app (PyQt6)
├── odyssey-welcome-autostart # shell wrapper, checks flag
├── odyssey-welcome.desktop # menu entry
├── odyssey-welcome-autostart.desktop # /etc/xdg/autostart entry
├── odyssey-welcome.svg # hicolor scalable icon
└── wallpaper.png # community wallpaper (Lena London)
Where files land at install time
/usr/bin/odyssey-welcome (main script)
/usr/bin/odyssey-welcome-autostart (wrapper)
/usr/share/applications/odyssey-welcome.desktop (menu entry)
/etc/xdg/autostart/odyssey-welcome-autostart.desktop (first-login)
/usr/share/icons/hicolor/scalable/apps/odyssey-welcome.svg (icon)
/usr/share/odyssey-welcome/wallpaper.png (wallpaper asset)
Building the package
Drop this whole directory into your void-packages tree at
srcpkgs/odyssey-welcome/, then from the repo root:
./xbps-src pkg odyssey-welcome
The resulting .xbps will appear under hostdir/binpkgs/. Sign and upload it
to repo.odysseylinux.org the same way you do for odyssey-xbps-gui,
odyssey-guinit, and odyssey-controlcenter.
First-run logic
On every login, the system runs odyssey-welcome-autostart from
/etc/xdg/autostart/. The wrapper:
- Looks for
~/.config/odyssey/welcome-shown— if it exists, exits silently - Checks
$DISPLAY/$WAYLAND_DISPLAY— if neither is set (ssh, tty), exits - Waits 3 seconds for the desktop to be painted
- Execs
/usr/bin/odyssey-welcome
The flag is written only when the user clicks "don't show again" in the footer. A normal close (window manager X button) leaves the flag absent, so the app will reappear on the next login — useful while users explore.
Testing without installing
cd files/
python3 odyssey-welcome.py
The app looks for the wallpaper in this order:
/usr/share/odyssey-welcome/wallpaper.png/usr/share/odyssey-welcome/wallpaper.jpgwallpaper.pngnext to the scriptwallpaper.jpgnext to the script
If none is found, a "wallpaper not found" placeholder is rendered. For local
development just keep wallpaper.png next to odyssey-welcome.py — it will
be picked up automatically.
To reset the first-run flag between tests:
rm -f ~/.config/odyssey/welcome-shown
Dependencies
python3python3-pyqt6
No polkit policy needed — this version does not install packages directly
(unlike the v1 prototype). All install actions are delegated to xbps-gui,
which has its own polkit rules.