Phase 1/2 complete: system tray (XEMBED) + Plymouth boot splash
System tray in skydeskbar (Phase 1 #4): - Claims _NET_SYSTEM_TRAY_S<screen> selection on startup and broadcasts MANAGER so nm-applet and other tray clients connect - Handles _NET_SYSTEM_TRAY_OPCODE dock requests: XReparentWindow icon into the deskbar, sends XEMBED_EMBEDDED_NOTIFY - Tray section is zero-height when empty; expands to DB_TRAY_H=26px when first icon embeds, shrinking back when last icon exits - DestroyNotify / ReparentNotify clean up the icon list and reposition remaining icons; SelectionClear hands off gracefully - Icon positions are updated (db_tray_reposition) whenever the app list changes and shifts the tray section vertically Plymouth boot splash (Phase 2 #10): - 'skyos' script-module theme: dark navy (#111520) background, "SkyOS" logo in accent blue (#90BBEE), thin progress bar - 1×1 pixel bar_bg.png / bar_fg.png scaled at runtime by the Plymouth script — no large PNGs committed to the repo - logo.png generated at build time by ImageMagick (same tool used for the wallpaper); build continues if ImageMagick is absent - mkinitcpio HOOKS: added 'plymouth' after 'udev' - Kernel cmdline: added 'splash' for UEFI systemd-boot entry - customize_airootfs.sh: plymouth-set-default-theme skyos Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
2b8ea90a57
commit
803ffe991f
3 files changed
+227
-12
No files matched your search
@@ -25,7 +25,9 @@
|
||||
* ├──────────────────────────┤
|
||||
* │ [1] [2] [3] [4] │ <- workspace strip
|
||||
* ├──────────────────────────┤
|
||||
* │ CPU 12% MEM 45% │ <- status bar
|
||||
* │ [⊙][📶][🔋] │ <- system tray (XEMBED; hidden when empty)
|
||||
* ├──────────────────────────┤
|
||||
* │ VOL 50% CPU 12% MEM 45%│ <- status bar
|
||||
* └──────────────────────────┘
|
||||
*/
|
||||
|
||||
@@ -37,6 +39,9 @@
|
||||
#define DB_ICON_SZ 18 /* app icon square size */
|
||||
#define DB_WS_H 28 /* workspace strip height */
|
||||
#define DB_STATUS_H 22 /* status bar height */
|
||||
#define DB_TRAY_H 26 /* tray section height when icons are present */
|
||||
#define DB_TRAY_ICON_SZ 20 /* embedded icon window size */
|
||||
#define DB_TRAY_MAX 16 /* maximum simultaneous tray icons */
|
||||
#define DB_MAX_APPS 32
|
||||
|
||||
/* ── fly-out menu ────────────────────────────────────────────────────── */
|
||||
@@ -133,6 +138,14 @@ typedef struct Deskbar {
|
||||
int sub_active; /* which sub-menu is open: 0=Apps, 1=Settings, -1=none */
|
||||
int sub_hov; /* hovered item in sub-menu */
|
||||
int sw_cache; /* cached screen width for menu positioning */
|
||||
|
||||
/* system tray (freedesktop.org XEmbed tray protocol) */
|
||||
Window tray_icons[DB_TRAY_MAX];
|
||||
int n_tray_icons;
|
||||
Atom atom_tray_s0; /* _NET_SYSTEM_TRAY_S<screen> */
|
||||
Atom atom_tray_opcode; /* _NET_SYSTEM_TRAY_OPCODE */
|
||||
Atom atom_xembed; /* _XEMBED */
|
||||
Atom atom_manager; /* MANAGER */
|
||||
} Deskbar;
|
||||
|
||||
void db_init(Deskbar *db);
|
||||
|
||||
Reference in new issue
Block a user