First-boot welcome app for Odyssey Linux
  • Python 97.7%
  • Shell 2.3%
Find a file
2026-06-12 18:31:25 +01:00
files initial commit: odyssey-welcome 2026-05-30 22:15:55 +01:00
.gitignore initial commit: odyssey-welcome 1.0_1 2026-05-30 22:16:09 +01:00
LICENSE Add GPLv3 license 2026-06-12 18:31:25 +01:00
README.md initial commit: odyssey-welcome 2026-05-30 22:15:55 +01:00
template bump odyssey-welcome to 1.0_2 2026-06-01 20:32:32 +01:00

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:

  1. welcome — community wallpaper + welcome message + thanks to beta testers
  2. what is — what Odyssey is, the philosophy
  3. features — BORE kernel, xbps-gui, guinit, control center
  4. apps — preinstalled apps (mpv + noize, Zen, terminal, plus our tools)
  5. repository — the Odyssey xbps repo, where it lives, how to contribute
  6. 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:

  1. Looks for ~/.config/odyssey/welcome-shown — if it exists, exits silently
  2. Checks $DISPLAY / $WAYLAND_DISPLAY — if neither is set (ssh, tty), exits
  3. Waits 3 seconds for the desktop to be painted
  4. 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:

  1. /usr/share/odyssey-welcome/wallpaper.png
  2. /usr/share/odyssey-welcome/wallpaper.jpg
  3. wallpaper.png next to the script
  4. wallpaper.jpg next 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

  • python3
  • python3-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.