deps: add .zig-cache to .gitignore
upgrade to Zig 0.13
upgrade to Zig 0.12.0
Magnolia is a new UI toolkit written entirely from scratch in Zig for Linux desktops. It has a focus on ease-of-use, performance, and supporting older devices.
The only runtime system dependencies are X11 and OpenGL 3.0 ES.
The only additional build dependencies are Git, Zig, Zigmod.
Note: this project is a WIP and still in a very experimental state. Stay tuned for more updates.
As far as problem space you can consider this project as an alternative to a mix of GTK/KDE/QT and GNOME/Plasma depending on which part of the code you're using.
Source-Available, All rights reserved. (c) 2023 Meghan Denny
Will likely be MPL-2.0 in the future.
zigmod.yml
and zigmod.lock
Magnolia is built using the Zig build system. To see all available build options run zig build --help
.
If building on NixOS, there is a shell.nix
which will enable all the system dependencies needed.
Pull in the Zig dependencies by running zigmod ci
.
-Dtarget=[string] The CPU architecture, OS, and ABI to build for
-Dcpu=[string] Target CPU features to add or subtract
-Drelease-safe=[bool] Optimizations on and safety on
-Drelease-fast=[bool] Optimizations on and safety off
-Drelease-small=[bool] Size optimizations on and safety off
-Dall=[bool] Build all apps, default only selected steps
-Drun=[bool] Run the app too
-Dstrip=[bool] Strip debug symbols
-Dtest=[bool] Run for a single frame and compare output against known good result
-Dno_demos=[bool] Do not build the demo programs.
demo-empty
demo-part6
demo-panelhoriz
demo-panelvert
demo-panelhoriz-gap
demo-panelvert-gap
demo-panelhoriz-fillh
demo-panelvert-fillw
demo-panelhoriz-fillw
demo-panelvert-fillh
demo-ttf-proggy
demo-bdf-cozette
demo-focusblur
demo-mouse
demo-7guis-counter
demo-border
demo-menubar
Terminal Applications
fc-conflist
fc-list
Full Applications
Calculator
ImageViewer
Full Application Roadmap
(in a rough order of importance) (non-exhaustive)
notes/potential apps.txt
)sudo
/doas
in the past is a total failure in tooling.If your Git client is v2.26 or greater and you'd only like to build a selection of apps, you can take advantage of a sparse checkout to save on network and disk usage. For example:
git clone --no-checkout https://git.sr.ht/~nektro/magnolia-desktop
cd magnolia-desktop
git sparse-checkout init --cone
git checkout master
git sparse-checkout add src/
git sparse-checkout add apps/Calculator/
zig build Calculator