Skip to content

Repository files navigation

HIVE

HIVE (HBOS Interface & Visual Environment) is a lightweight, modular desktop environment for HBOS. It provides the window manager, compositor, desktop shell, user-space GUI toolkit, and SDK for building independent graphical applications. The HPT package manager is a required Git submodule and ships in every regular HIVE build.

Clone

git clone --recurse-submodules https://github.com/HeBitOS/HIVE.git
cd HIVE

For an existing checkout, initialize dependencies with git submodule update --init --recursive.

Repository layout

app/
├── include/        Public HAX/HIVE application SDK
├── calc.c          Independent calculator
├── clock.c         Independent uptime clock
├── files.c         Independent file manager
├── hexview.c       Independent hexadecimal viewer
├── imgview.c       Independent BMP viewer
├── settings.c      Independent settings frontend
├── shortcuts.c     Independent shortcut reference
├── taskmgr.c       Independent process-signal frontend
├── widgets.c       HIVE toolkit showcase
└── wdemo.c         Independent windowed application example
src/
├── api/            Snapshot of the HBOS ↔ HIVE service contract
├── graphics/       GUI font, icon, and wallpaper renderers
├── gui/            Window manager, compositor, runtime, and migration code
├── gpu.c/.h        Display backend used by the current runtime
└── tools/gui.c     Legacy in-kernel desktop shell pending ring3 migration
tests/              Host-side SDK and interaction tests
tools/              Resource generation utilities
docs/               API reference and repository-boundary documentation
HPT/                Required package manager Git submodule

Applications under app/ only include the public SDK and keep their UI state inside hive_ui_t. They must not include desktop-private headers such as gui_state.h, wm.h, or winsrv.h.

Current status

HIVE 0.1-beta5-gui.3 provides Toolkit API 1.3: Label, Button, Textbox, Checkbox, List, Progress, Slider, Scrollbar, Menu, Image, Canvas, and Panel widgets; row/grid layout and widget trees; keyboard focus; hover/pressed states; pointer capture; text selection; and UTF-8-safe editing.

HIVE includes HPT, its apt-style package manager for disk-installed HAX applications, as a pinned Git submodule. HPT supports local and IPv4 HTTP repositories plus CA-verified DNS/IPv4/IPv6 HTTPS repositories with AAAA-first/A-record fallback, cached metadata, search, dependencies, SHA-256 verification, install/remove/upgrade, and execution through execve. HIVE deliberately has no supported package-manager-free variant. Only a future fully kernel-only HBOS profile may omit the entire HIVE/HPT user-space stack. See the HPT documentation.

The registration-based desktop applications are now independent HAX processes. The desktop discovers them through HAX metadata, launches them asynchronously, and passes file paths to the image and hexadecimal viewers. Their former src/gui/apps/ modules are no longer present or linked.

The repository is still in the physical-split transition for the desktop runtime itself. Several older tools implemented directly inside src/tools/gui.c (notes, file statistics, snake, browser, code workbench, and terminal) remain to be extracted while the desktop, resources, and compositor move from kernel-linked code to a ring3 service.

Test

make test

The host-side test validates the public widget ABI, input state machine, widget trees, layout helpers, slider dragging, mouse release behavior, text selection, UTF-8 editing, and the rule that independent applications cannot include desktop/kernel-private headers. It also runs HPT's parser, version, SHA-256, and repository-manifest tests.

The transitional window server still depends on HBOS kernel contracts. Test it against a local HBOS checkout with:

make integration-test HBOS_DIR=/path/to/HBOS

Build every independent application, including HPT, without building an ISO:

make apps HBOS_DIR=/path/to/HBOS

Generate a local HPT repository from those application artifacts:

make repo HBOS_DIR=/path/to/HBOS

Serve the generated build/repo directory on Linux with HPT-server.

Run

Keep an HBOS checkout next to this repository, then build and start the HIVE sources and applications directly in QEMU:

make run

make start is an alias for make run; use make run-uefi for UEFI or make image to build without starting QEMU. If HBOS is elsewhere, pass HBOS_DIR=/path/to/HBOS. Integration artifacts are kept under build/hbos/ in this repository.

Synchronizing the transitional mirror

Refresh only the HBOS-owned ABI and libc contract snapshots with:

make sync HBOS_DIR=/path/to/HBOS

The command never overwrites app/, the public HIVE SDK, the desktop runtime, tests, resources, or documentation.

For a complete HBOS image, use the HBOS repository. HIVE's apps, image, run, and run-uefi targets stage HPT automatically and refuse to continue when the submodule is missing.

License

HIVE is licensed under the GNU Affero General Public License v3.0. See LICENSE.

About

Lightweight modular desktop environment and SDK for HBOS, with required HPT package management.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages