-
-
Notifications
You must be signed in to change notification settings - Fork 1
Packaging
Conky Studio is distributed primarily as a single AppImage. The goal is: download, mark executable, run, with sensible behaviour on both X11 and Wayland, and without requiring the user to fight Qt plugin paths or leave a broken desktop entry behind.
This page describes what the AppImage contains, what AppRun does on every launch, and how that interacts with display servers and compositors; for runtime deps (Conky, sensors, etc.), see Requirements. For which sessions support desktop HUD overlays, see Compatibility.
| Artifact | Role |
|---|---|
| Conky-Studio-x86_64.AppImage | Self-contained app: Python, PyQt6, Studio code, bundled Qt plugins |
| GitHub Releases | Versioned downloads; Studio’s update checker hits /releases/latest
|
| Optional Griffin Updater | External helper some users use to replace the AppImage in place |
The AppImage does not bundle Conky. Themes always call the system conky binary. That keeps themes portable and avoids shipping a second, possibly mismatched Conky build.
PyInstaller 6+ nests support files under _internal/ by default. Conky Studio’s build passes:
--contents-directory .
so libraries, Qt plugins, and data sit in a flat layout next to the executable. AppRun and internal path logic stay predictable; you do not need to guess whether plugins live under _internal/ or beside the binary.
AppRun is the entry point inside the AppImage. On each start it:
| Condition | QT_QPA_PLATFORM |
|---|---|
$WAYLAND_DISPLAY is set |
wayland;xcb — Qt tries Wayland, then falls back to XCB silently if needed |
| Plain X11 session | xcb |
User already set QT_QPA_PLATFORM
|
Respected — AppRun does not override |
So:
- On Sway / Hyprland / Plasma Wayland / GNOME Wayland, the Studio UI prefers the Wayland QPA plugin.
- If Wayland QPA fails (missing plugin, broken compositor integration), Qt can still come up on XWayland via
xcb. - On classic X11, behaviour stays simple and stable.
This is about the authoring app window, not about whether Conky overlays work on that compositor. Overlay rules are separate (see Compatibility).
AppRun sets:
QT_PLUGIN_PATHQT_QPA_PLATFORM_PLUGIN_PATH
to the AppImage’s own plugin directories. That avoids loading distro system Qt plugins that conflict with the bundled PyQt6 (a common cause of blank windows or crashes on rolling distros).
Build time may warn if libqwayland.so was not bundled; without it, the Wayland branch of QT_QPA_PLATFORM is effectively a no-op and Qt will rely on the XCB fallback.
On every launch, AppRun:
- Checks whether
~/.local/share/applications/conky-studio.desktopalready points at the current AppImage. - If not, installs a corrected
.desktopfile and the 256×256 icon into the usual XDG locations. - Refreshes desktop/icon caches when the tools are available (
update-desktop-database, icon cache helpers).
The process is idempotent and non-fatal: any failure still lets the application open normally.
Writing Exec="$APPIMAGE" is fragile: the path changes when you download a new file to ~/Downloads or move the binary.
Instead, on first run (and when a newer AppImage is launched):
- Copy the AppImage to
~/Applications/conky-studio.AppImage. - Point the desktop entry’s
Exec=at that permanent location.
Details:
- Re-copies when a newer AppImage is run (shipping an update can be “download → run once”).
- Detects when it is already running from the installed copy (
readlink -fcomparison) and skips the copy to avoid loops. - To repair a broken
.desktopthat points at a dead path: delete it once
rm ~/.local/share/applications/conky-studio.desktop
or launch the AppImage directly; install logic recreates a correct entry.
Packaging and HUD overlay support are related but not the same thing.
| Layer | What packaging guarantees | What it does not guarantee |
|---|---|---|
| Studio window (Qt) | Wayland QPA tried when WAYLAND_DISPLAY is set; XCB fallback; isolated plugins |
Pixel-perfect integration with every compositor’s client-side decorations |
| Live Preview / built themes (Conky) | Same files you would run by hand; window type from session detection | Overlays on compositors without layer-shell (e.g. GNOME Mutter Wayland) |
| Desktop entry | Stable path under ~/Applications/, icon, menu entry |
That every DE shows the icon immediately without a cache refresh |
- Qt uses
xcb. - Conky HUDs use the classic own-window path; broadest overlay compatibility.
- Packaging side is uncontroversial; most “it just works” reports are X11.
- Studio UI:
wayland;xcbso the editor can run natively when the plugin is present. - Themes: need a Wayland-enabled Conky and a layer-shell compositor for desktop overlays.
- Packaging does not ship Conky; users still install Conky from the distro (see Requirements).
- Studio may still open (Qt Wayland or XWayland fallback).
- Conky desktop overlays remain unsupported (Mutter / no wlr-layer-shell). Studio’s Hardware & Session report severity block for overlays; that is intentional, not a packaging miss.
- SSH or TTY with no display: no graphical session — Studio needs
DISPLAYorWAYLAND_DISPLAY. - Nested or experimental compositors: UI may work via fallback; always check Tools → Hardware & Session before assuming Live Preview will show a HUD.
| Mechanism | Behaviour |
|---|---|
| Silent startup check | Background thread; GitHub Releases API (/releases/latest); only prompts if a newer version exists |
| Help → Check for Updates… | Same check; always reports up-to-date, update found, or network error |
| Dialog | Current vs latest version; Open GitHub Release; note about Griffin Updater if installed |
Checks the API rather than a fixed versioned download URL, so “latest” tracks whatever release is published. Network failure never blocks opening the main window.
- Prefer keeping
--contents-directory .with PyInstaller 6+ so AppRun paths stay flat. - Bundle Wayland and XCB Qt platform plugins; warn if Wayland is missing.
- Do not assume system
QT_PLUGIN_PATH; AppRun must pin bundled paths. - Desktop file should use the stable
~/Applications/conky-studio.AppImagepath after first-run install, not a Downloads path. - AppImage is x86_64 in the current release line; architecture support is whatever the CI/release pipeline ships.
- Download the AppImage from GitHub Releases.
-
chmod +x Conky-Studio-*.AppImageand run it (or open from the file manager). - First launch may copy itself to
~/Applications/and register a menu entry. - Install system Conky (and optional sensors/playerctl/curl) per Requirements.
- Tools → Hardware & Session — confirm display server, Conky Wayland flag, overlay likelihood.
- For updates: Help → Check for Updates, or download a new AppImage and run it once so the stable copy refreshes.
- One AppImage holds the Studio; system Conky runs themes.
-
AppRun sets Qt to
wayland;xcborxcb, pins plugin paths, and self-installs a stable desktop entry under~/Applications/. - That makes the editor workable across many X11 and Wayland desktops.
- HUD overlays still follow Conky + compositor rules (X11 best; layer-shell Wayland good; GNOME Mutter Wayland no) — packaging enables the app; it does not rewrite compositor protocols.
See Compatibility and Requirements.