Skip to content

Releases: boxi-os/QuartzControl

QuartzControl 1.1.0

Choose a tag to compare

@boxi-os boxi-os released this 18 Oct 15:48

A feature release: plugin options as forms, the layout on a stage, files for the layout box, and a
custom.scss that belongs to you again. Feedback is welcome — an issue is the easiest way.

Coming from 1.0.x

If you edit a project on more than one machine (Git sync), update every machine to 1.1 first and
only then move the styles over. As long as one machine still has 1.0, every save rewraps the
configuration for the other version.
The details:

  • "Move now" on the Styles page moves load order, fonts and variables from custom.scss into
    quartz/styles/_quartzcontrol.scss, with a snapshot taken first; a project created by 1.1 starts
    that way. Without "Move now", 1.1 keeps writing the 1.0 form. 1.0.x reads a moved project with
    0 variables and 0 stylesheets, and whatever is switched on there ends up as a second copy in
    custom.scss. A variable that 1.0.x changes there applies in dark mode only where 1.1 set no
    dark value, even though 1.0.x shows it as "both modes".
  • Line wrapping in quartz.config.yaml. 1.1 wraps long lines at 120 characters, as the Quartz
    CLI does; 1.0.x wrapped at 80. If both versions save in turn, every commit carries that rewrap,
    and two machines run into pull conflicts in lines nobody changed.
  • Back to 1.0 after moving: restore the snapshot taken before "Move now" in 1.1 first, and only
    then open the project with 1.0. 1.0.x does not know that kind of snapshot and thins it out like
    an automatic one with its next automatic snapshot.
  • Template packages from 1.1: import them into an existing project only after updating to 1.1.
    1.0.x puts the package's twelve stylesheets next to the project's old ones, and both designs end
    up on top of each other (the build stays green). A value "light only" in such a package is read
    by 1.0.x as a value for both modes.

What changed since 1.0.2

Plugins

  • Options as a form — sections, switches and drop-downs instead of a row of fields; an option
    that only applies under a condition appears only then. The plugin describes the form in its
    quartz.configSchema (format in
    docs/plugin-config-schema.md);
    without a schema the app reads the .d.ts files as before. The three own plugins ship one from
    quartz-layout-box 0.4.0, quartz-multilanguage 0.2.0 and quartz-navigations 0.4.0 — older
    versions get the plain form; raise them on the Updates page.
  • Files for the layout box — create, add, edit and rename HTML and Markdown snippets, add images
    to quartz/static/images; boxes that name a renamed file follow it.

Layout

  • A stage instead of a grid — the page as a schematic, components are dragged onto it, their
    options sit in the sidebar next to it.
  • Page types are chosen on the stage, with their own frame, greyed-out exclusions and Remove
    customization
    . The "Page types" tab is gone; an old link to it lands in the layout.
  • Breakpoint widths moved to the "Frames" tab (until 1.0 "Custom frames"); the "Global" tab is
    now called "Components".
  • The tray switches off. Dragging the only instance of a component into the tray sets the
    plugin to enabled: false (until 1.0 it stayed on); dragging it back switches it on again. That
    switches off the whole plugin, including everything it does besides the component.

Styles

  • custom.scss is yours again — see "Coming from 1.0.x" above for "Move now".
  • Variables now come before your own rules. After moving, the Styles page's variables stand
    before the rules in custom.scss; until 1.0 they came after. Your own rule now wins wherever it
    is at least as specific: :root { --x: … } against the light value,
    :root[saved-theme="dark"] against the dark one. A value "light only" sits under
    :root:not([saved-theme="dark"]) and wins in light mode against your own :root; to set it
    yourself, use :root[saved-theme="light"]. The Variables tab names the variables custom.scss
    sets itself.
  • The comment at the top of custom.scss in projects from the basic template up to 1.0 calls
    the variable block "further down this file"; after moving it lives in _quartzcontrol.scss. The
    comment does nothing, it is just wrong.

Templates

  • A leaner basic template — twelve stylesheets instead of 31.

The handbook (https://boxi-os.github.io/QuartzControl/) is up to date with this version.

Which file

System File
macOS, Apple Silicon QuartzControl-1.1.0-arm64.dmg — or .zip
macOS, Intel QuartzControl-1.1.0-x64.dmg — or .zip
Linux, x86_64 QuartzControl-1.1.0-x86_64.AppImage or quartzcontrol_1.1.0_amd64.deb
Linux, arm64 QuartzControl-1.1.0-arm64.AppImage or quartzcontrol_1.1.0_arm64.deb
Flatpak QuartzControl-1.1.0-x86_64.flatpak or …-aarch64.flatpak

Linux needs glibc 2.34 or newer for the bundled git — Ubuntu 22.04, Debian 12, RHEL 9,
Fedora 35 and later. On an older system the app starts and says it cannot use its own git; a git
from the package manager gets you going. The Flatpak does not raise the question.

Before the first start

macOS. The app is ad-hoc signed and not notarised; there is no Developer ID certificate, so
macOS refuses the first launch. Allow it under System Settings → Privacy & Security → Security →
"Open Anyway"
, within about an hour of the refused launch. Or clear the quarantine flag:

xattr -dr com.apple.quarantine /Applications/QuartzControl.app

After the update macOS asks again whether this version may use the Keychain — usually twice.
Answer Always Allow both times.

Linux. Make the AppImage executable and run it, or install the deb with
sudo apt install ./quartzcontrol_1.1.0_amd64.deb. For the Flatpak:

flatpak install --user QuartzControl-1.1.0-x86_64.flatpak

--filesystem=home is set, so projects under your home directory work as they are. A content
folder on another drive needs a one-off flatpak override --filesystem=<path>.

What is inside every package

  • Node and npm — Electron's own runtime (Node 24.18.1, npm 11.17.0), exposed as three shims on
    the PATH. Nothing to install.
  • git 2.53.0 — used only when the machine has none that answers; otherwise the system's own wins.
  • The basic template — for creating a project when there is no network.

Known limits

  • Not notarised on macOS, as above. No self-update: the start screen reports a newer
    version and links to it. No Windows, deliberately; the reasons are in the README.
  • Not started on its own kind of machine: the macOS Intel build (there is no Intel Mac here).
  • Not supported: Linux with glibc older than 2.34 (see above) or a system git older than 2.38.
  • A YAML error in the frontmatter of a single note stops the dev server. That is Quartz; the
    app shows the server as crashed.

Checksums (SHA-256)

0937b1d128c39f9150d9dda53cf7864608f9684ef6c9a61eed71671df1c1d722  QuartzControl-1.1.0-arm64.dmg
21bdbdb80d989940e41ffa26b7d09eedcb1480273b5855ae39ab720e92493962  QuartzControl-1.1.0-arm64.zip
69850e95c90f1e9e62cefd77c0ba856f1b0ab50ad61cde784121f3e40c911679  QuartzControl-1.1.0-x64.dmg
e9be78122478628a0247e229f815c89e2e8530a726912b79ba462839388fec62  QuartzControl-1.1.0-x64.zip
17ae41f88c9c0b05d8d8b766a971b480424fb91e2e09f2cfd696a5cacda63bef  QuartzControl-1.1.0-arm64.AppImage
1aae93ceed03c95600e76b29aca6e7cbd3760a5561cafe01eb67e9a459d85af7  QuartzControl-1.1.0-x86_64.AppImage
e6e553ccc6dfe5c5f6b7207073167289b4d33e75a0f8814df601e12dde98b8e2  quartzcontrol_1.1.0_arm64.deb
02d47de1f76130ebb07d305af2f4cc48a266a1eaa04685fa59be96934201dff3  quartzcontrol_1.1.0_amd64.deb
a1a369a2bd4503fa0e7143a3a4cdad29e33ede6f12c3a89aa3eb86fcaa85f89d  QuartzControl-1.1.0-aarch64.flatpak
d5b306e3644e259086940e77042853352a9b4da823470b28bf031ef05d3d4de4  QuartzControl-1.1.0-x86_64.flatpak

QuartzControl 1.0.2

Choose a tag to compare

@boxi-os boxi-os released this 07 Oct 07:36

A bugfix release: four things that got in the way in 1.0.1, and what a review of the fixes turned up
around them. Feedback is welcome — an issue is the easiest way.

Coming from 1.0.1

Nothing to do. One thing worth a look: if you ever cleared a plugin option in 1.0.1 — the layout
box's html, say — the configuration may still hold an empty value for it, which the plugin reads
as set (a layout box then shows nothing instead of reading its file). Such a field now says
set to empty; Reset next to it removes the option.

What changed since 1.0.1

Plugins

  • Clearing an option field removes the option from the configuration instead of writing an
    empty value; the plugin uses its default again. For the plugins that read "empty" differently from
    "not set" — a heading that should not appear at all — an empty text field offers Set empty.

Styles

  • Custom CSS: clicking a variable inserts it at the cursor you placed in the editor, not at the
    end of the file. Without a placed cursor it still goes to the end, never in front of the imports.

Preview & build

  • A second dev server no longer needs its ports changed by hand. If a port is in use, the server
    takes the next free one and the console says which. Two exceptions, both refused with a sentence
    instead: a server for the same project that was not started from the app (it would build into the
    same output folder), and a remote dev host (a tunnel forwards exactly these ports).

Git sync

  • Pull and push are disabled when there is nothing to sync with — no origin, or no repository
    — and the reason stands next to them, instead of a git error after the click.
  • "Could not read" is no longer shown as "not a git repository". A broken index, a folder git
    refuses or a missing git now show what git says, on the Git sync page and in the overview.

The handbook (https://boxi-os.github.io/QuartzControl/) is up to date with this version.

Which file

System File
macOS, Apple Silicon QuartzControl-1.0.2-arm64.dmg — or .zip
macOS, Intel QuartzControl-1.0.2-x64.dmg — or .zip
Linux, x86_64 QuartzControl-1.0.2-x86_64.AppImage or quartzcontrol_1.0.2_amd64.deb
Linux, arm64 QuartzControl-1.0.2-arm64.AppImage or quartzcontrol_1.0.2_arm64.deb
Flatpak QuartzControl-1.0.2-x86_64.flatpak or …-aarch64.flatpak

Linux needs glibc 2.34 or newer for the bundled git — Ubuntu 22.04, Debian 12, RHEL 9,
Fedora 35 and later. On an older system the app starts and says it cannot use its own git; a git
from the package manager gets you going. The Flatpak does not raise the question.

Before the first start

macOS. The app is ad-hoc signed and not notarised; there is no Developer ID certificate, so
macOS refuses the first launch. Allow it under System Settings → Privacy & Security → Security →
"Open Anyway"
, within about an hour of the refused launch. Or clear the quarantine flag:

xattr -dr com.apple.quarantine /Applications/QuartzControl.app

After the update macOS asks again whether this version may use the Keychain — usually twice.
Answer Always Allow both times.

Linux. Make the AppImage executable and run it, or install the deb with
sudo apt install ./quartzcontrol_1.0.2_amd64.deb. For the Flatpak:

flatpak install --user QuartzControl-1.0.2-x86_64.flatpak

--filesystem=home is set, so projects under your home directory work as they are. A content
folder on another drive needs a one-off flatpak override --filesystem=<path>.

What is inside every package

  • Node and npm — Electron's own runtime (Node 24.18.1, npm 11.17.0), exposed as three shims on
    the PATH. Nothing to install.
  • git 2.53.0 — used only when the machine has none that answers; otherwise the system's own wins.
  • The basic template — for creating a project when there is no network.

Known limits

  • Not notarised on macOS, as above. No self-update: the start screen reports a newer
    version and links to it. No Windows, deliberately; the reasons are in the README.
  • Not started on its own kind of machine: the macOS Intel build (there is no Intel Mac here),
    and Linux with a system git older than 2.38. Both are built; neither was run on such a machine.
  • A YAML error in the frontmatter of a single note stops the dev server. That is Quartz; the
    app shows the server as crashed.

Checksums (SHA-256)

7bdf78417456836f5f2d753063026fdb05a225c8f07dfa5018e7c386ede5c1a3  QuartzControl-1.0.2-arm64.dmg
088479e30acd74aee36ec9158341f1ac95f7acbdaef590b887865f8d45e2d091  QuartzControl-1.0.2-arm64.zip
041e35034197f11cb7ab40be7f8e00f27f2b0473d47d6944411cc88ea321ba90  QuartzControl-1.0.2-x64.dmg
ffc74654f02c9396401a6e1639be7c7deb7e22cff628b68e5bffd67cdd9c2738  QuartzControl-1.0.2-x64.zip
507938cb6d80d3c63c5feb66d6eae58a0a53be2b873201e027f4de6da58af05b  QuartzControl-1.0.2-arm64.AppImage
48df02ba558e3e6c36fc9cb1a7d757da0e1a486163f28b2a70ff7d6c8652f2af  QuartzControl-1.0.2-x86_64.AppImage
edb55e8f941dd74d0f843776489c1ff5681d8c66e310eefc4bf362bf310fb318  quartzcontrol_1.0.2_arm64.deb
c38f663e50e57047bb00debf90fc854b81393cb4c30eae4b3c1939ba77701519  quartzcontrol_1.0.2_amd64.deb
6b09b87e1618a5b1b88837cac1757cd7a13bcf3685bbb193536452e97f21b41d  QuartzControl-1.0.2-aarch64.flatpak
8fbfc34abadbb2f6836e8c7abc348dce3843b091dd8c25eecd350ed89cb97346  QuartzControl-1.0.2-x86_64.flatpak

QuartzControl 1.0.1

Choose a tag to compare

@boxi-os boxi-os released this 28 Sep 09:40

A bugfix release: six things that went wrong in 1.0.0, found in daily use, and two that turned up
while fixing them. Feedback is welcome — an issue is the easiest way.

Coming from 1.0.0

Nothing to do. If you build a site with Google fonts served locally from one of the templates,
the first build after the update tidies the fonts once; the log says what it did (see below).

What changed since 1.0.0

Fonts

  • A family the project brings itself is no longer fetched from Google twice. The templates
    ship Noto Sans and Noto Sans Mono for Latin; with serve locally on, the app fetched the same
    families from Google again and the site carried both. Now it fetches only what the project's own
    font rules do not cover — the other scripts (Cyrillic, Greek, Vietnamese …) still come from
    Google, the Latin part is not duplicated. The build log and the Styles page say what was left
    out and how many font files were removed.

Styles

  • Variables: editing only the light value of a variable that differs between light and dark
    mode keeps its dark value. Until now the dark mode showed the new light value too. The dark
    field shows what really applies in dark mode.
  • Saving no longer loses another save. A font fetch and, say, a variable saved a moment later
    could each undo the other's change in custom.scss. Everything that writes a stylesheet now
    waits for the one before it.
  • A custom.scss that went through a Git merge with a section in it twice is read completely;
    the next save writes one copy.

Layout

  • The layout board sizes its rows to the cards, not to the frame's row heights — a row that is
    0 px high on a phone (a drawer) squeezed its cards on the board.
  • A disabled plugin is marked "Disabled" on the board.

Preview & build

  • The list of servers running on this machine follows when the app starts or stops a server,
    instead of waiting for "Refresh".

Project image

  • After importing a template the app shows its project image in the sidebar, the project image
    card and on the start screen — until now only the dark one appeared, the light one fell back to
    the initial letter.

The handbook (https://boxi-os.github.io/QuartzControl/) is up to date with this version.

Which file

System File
macOS, Apple Silicon QuartzControl-1.0.1-arm64.dmg — or .zip
macOS, Intel QuartzControl-1.0.1-x64.dmg — or .zip
Linux, x86_64 QuartzControl-1.0.1-x86_64.AppImage or quartzcontrol_1.0.1_amd64.deb
Linux, arm64 QuartzControl-1.0.1-arm64.AppImage or quartzcontrol_1.0.1_arm64.deb
Flatpak QuartzControl-1.0.1-x86_64.flatpak or …-aarch64.flatpak

Linux needs glibc 2.34 or newer for the bundled git — Ubuntu 22.04, Debian 12, RHEL 9,
Fedora 35 and later. On an older system the app starts and says it cannot use its own git; a git
from the package manager gets you going. The Flatpak does not raise the question.

Before the first start

macOS. The app is ad-hoc signed and not notarised; there is no Developer ID certificate, so
macOS refuses the first launch. Allow it under System Settings → Privacy & Security → Security →
"Open Anyway"
, within about an hour of the refused launch. Or clear the quarantine flag:

xattr -dr com.apple.quarantine /Applications/QuartzControl.app

After the update macOS asks again whether this version may use the Keychain — usually twice.
Answer Always Allow both times.

Linux. Make the AppImage executable and run it, or install the deb with
sudo apt install ./quartzcontrol_1.0.1_amd64.deb. For the Flatpak:

flatpak install --user QuartzControl-1.0.1-x86_64.flatpak

--filesystem=home is set, so projects under your home directory work as they are. A content
folder on another drive needs a one-off flatpak override --filesystem=<path>.

What is inside every package

  • Node and npm — Electron's own runtime (Node 24.18.1, npm 11.17.0), exposed as three shims on
    the PATH. Nothing to install.
  • git 2.53.0 — used only when the machine has none that answers; otherwise the system's own wins.
  • The basic template — for creating a project when there is no network.

Known limits

  • Not notarised on macOS, as above. No self-update: the start screen reports a newer
    version and links to it. No Windows, deliberately; the reasons are in the README.
  • Not started on its own kind of machine: the macOS Intel build (there is no Intel Mac here),
    and Linux with a system git older than 2.38. Both are built; neither was run on such a machine.
  • A YAML error in the frontmatter of a single note stops the dev server. That is Quartz; the
    app shows the server as crashed.

Checksums (SHA-256)

b3e3a02d6f388e623a54b5cc6f2ecf41d40c122a58983587c62ee027f817cca8  QuartzControl-1.0.1-arm64.dmg
302183b24b5818f512739e3f6a0591613e0ce92cb7b2911dd28f7e1f2b894283  QuartzControl-1.0.1-arm64.zip
18a7b8761139cff1c46a6f7f6c8875b612010b3c7250e3a05d57c758972e306f  QuartzControl-1.0.1-x64.dmg
82ecec89706bdefa2a47ca80da1524eac4ecc3465bf005555f78d77cc767cd67  QuartzControl-1.0.1-x64.zip
c1672d6c386bec072cf74d550dcd628b755789c23b6860468476c2d649b3a319  QuartzControl-1.0.1-arm64.AppImage
dfb4aef2b0218eba25f42e30607417e92f84e90bb408b662344eba1a6eb64809  QuartzControl-1.0.1-x86_64.AppImage
63446b8553e9a31915349aab8e16720905019fd5c0daddd1b5efda90e404adae  quartzcontrol_1.0.1_arm64.deb
0da9b1debb4359d281442ab2f7d3b5d1cf07d355168e580b676f8b94e04932c3  quartzcontrol_1.0.1_amd64.deb
bc3411c59ceae79ce8cf85107e9f45a9d8451b4e00c456e1959c39996b306008  QuartzControl-1.0.1-aarch64.flatpak
7e78e7817d44a7f6302d42570ee3e72c4b6f239f00fb4f287f6998c74ba189a2  QuartzControl-1.0.1-x86_64.flatpak

QuartzControl 1.0.0

Choose a tag to compare

@boxi-os boxi-os released this 24 Sep 22:11

The first stable version. Since the release candidate the Styles page and the templates got the
most attention — variables, the project image in the header, the custom CSS helpers — and every
list now removes an entry the same way. Feedback is welcome — an issue is the easiest way.

Coming from beta 2

If you edit a project on more than one machine (Git sync), update every machine first and only
then open the project with the new version.
The first save on the Styles page renames the markers
in custom.scss (Quartz-GUI:managed: → QuartzControl:managed:), and beta 2 no longer
recognises them afterwards. Coming from the release candidate, nothing changes here.

What changed since 1.0.0-rc.1

Styles

  • Variables: one value field for a variable that holds no colour, instead of a light and a dark
    one. Every theme and build variable can be browsed without searching first. Colour swatches are
    painted over the site's ground, not the app's, and say which ground that is. An emptied field
    stays empty and writes no empty declaration. Typing on the page is noticeably lighter.
  • Custom CSS: the component picker lists each component once and inserts the selector the site
    really renders — ul.tags, not the plugin's name. A class the app has not verified is marked as
    such.
  • Unused fonts: before a font file is deleted, quartz/components/styles and quartz/static
    are searched too.

Templates and the project image

  • The mark at the top left of every template is the project image — icon.png, and
    icon-dark.png in dark mode. Replacing the image under Configuration → Project image replaces
    mark and favicon in one go. The card recognises such a mark, says when the dark image was not
    chosen in the app, and can replace a dark image without a light one being chosen first.
  • The new-project wizard counts the sample pages instead of claiming twenty, and no longer
    claims two languages for every package.
  • The import preview names an icon.png that nobody chose in the app before it is replaced.
  • The documentation templates navigate with quartz-navigations like the others.

Everywhere

  • Taking an entry out of a list is a bin icon everywhere, named after the entry in its tooltip
    — snapshots, stylesheet files, presets, connections, targets, frames, fonts. Deleting a preset
    now asks first, like everything else.
  • Git sync: the card takes the full width. Publish: the note about the base URL appears only
    once the configuration is read, not as a flash on every visit.

macOS Keychain

  • After every update macOS asks whether this version may use the Keychain — usually twice,
    because the app is ad-hoc signed. Answer Always Allow both times.
  • If access is denied, the app says so where a password or token is needed, instead of "no
    token stored", and a restart asks again. The start screen no longer touches the Keychain on
    macOS at all.

The handbook (https://boxi-os.github.io/QuartzControl/) is up to date with this version and has
a new start page; the handbooks of the three plugins got one each, too.

Which file

System File
macOS, Apple Silicon QuartzControl-1.0.0-arm64.dmg — or .zip
macOS, Intel QuartzControl-1.0.0-x64.dmg — or .zip
Linux, x86_64 QuartzControl-1.0.0-x86_64.AppImage or quartzcontrol_1.0.0_amd64.deb
Linux, arm64 QuartzControl-1.0.0-arm64.AppImage or quartzcontrol_1.0.0_arm64.deb
Flatpak QuartzControl-1.0.0-x86_64.flatpak or …-aarch64.flatpak

Linux needs glibc 2.34 or newer for the bundled git — Ubuntu 22.04, Debian 12, RHEL 9,
Fedora 35 and later. On an older system the app starts and says it cannot use its own git; a git
from the package manager gets you going. The Flatpak does not raise the question.

Before the first start

macOS. The app is ad-hoc signed and not notarised; there is no Developer ID certificate, so
macOS refuses the first launch. Allow it under System Settings → Privacy & Security → Security →
"Open Anyway"
, within about an hour of the refused launch. Or clear the quarantine flag:

xattr -dr com.apple.quarantine /Applications/QuartzControl.app

Linux. Make the AppImage executable and run it, or install the deb with
sudo apt install ./quartzcontrol_1.0.0_amd64.deb. For the Flatpak:

flatpak install --user QuartzControl-1.0.0-x86_64.flatpak

--filesystem=home is set, so projects under your home directory work as they are. A content
folder on another drive needs a one-off flatpak override --filesystem=<path>.

What is inside every package

  • Node and npm — Electron's own runtime (Node 24.18.1, npm 11.17.0), exposed as three shims on
    the PATH. Nothing to install.
  • git 2.53.0 — used only when the machine has none that answers; otherwise the system's own wins.
  • The basic template — for creating a project when there is no network.

Known limits

  • Not notarised on macOS, as above. No self-update: the start screen reports a newer
    version and links to it. No Windows, deliberately; the reasons are in the README.
  • Not started on its own kind of machine: the macOS Intel build (there is no Intel Mac here),
    and Linux with a system git older than 2.38. Both are built; neither was run on such a machine.
  • A YAML error in the frontmatter of a single note stops the dev server. That is Quartz; the
    app shows the server as crashed.

Checksums (SHA-256)

7ce1e1e5cce0004a89a04f661e5931fd013a7cd5c8d4892bc100e37e5004d193  QuartzControl-1.0.0-arm64.dmg
72cf61cfb92200314f81baecc42c145dde57a9fb1c0c848bf70a7c0ab4cbb7f5  QuartzControl-1.0.0-arm64.zip
2f4cc59f6d82a7db12cce4b0370b837129c68ed8fb1557179472a23ae8882b8d  QuartzControl-1.0.0-x64.dmg
2fb4e65cca096aa2a506304912724246ce611094197ac22cb8e4c970848f47ba  QuartzControl-1.0.0-x64.zip
f30227ad96d0780c9b9ba8de4c04e08076bc7a79a78e0137293bb87df24e8c08  QuartzControl-1.0.0-arm64.AppImage
63a06a74d244d55544712fb13b5286c4c05bc06e61caeaa95efaa98dc4462f74  QuartzControl-1.0.0-x86_64.AppImage
b6f0d77054508d877aa8c799dbe9383447bbd854b357c01b2438f195f01bf2d1  quartzcontrol_1.0.0_arm64.deb
8aa7a3cbe855b22c81a8c1ffa53e4e8529b5caf8b889360b237a5c2ab3eb3a5c  quartzcontrol_1.0.0_amd64.deb
8b63fb4f2fd1ade57134d21b01bd7a659b0cc4140f85bd22a462c199b25de6bc  QuartzControl-1.0.0-aarch64.flatpak
e8bf620d1dc8f522218cc6051b7de025c6ea1cb64cf02b4e1e7894361c2dacdc  QuartzControl-1.0.0-x86_64.flatpak

QuartzControl 1.0.0-rc.1

Pre-release

Choose a tag to compare

@boxi-os boxi-os released this 21 Sep 12:25

The first release candidate. What is here is meant to become 1.0 once nobody finds anything more.
Since beta 2 mostly things changed that do not show at first glance — how the app handles fonts,
templates and updates, and what it says while doing so. Feedback is welcome — an issue is the
easiest way.

Before anything else: several machines

If you edit a project on more than one machine (Git sync), update every machine first and only
then open the project with the new version.
The first save on the Styles page renames the markers
in custom.scss (Quartz-GUI:managed: → QuartzControl:managed:). Beta 2 no longer recognises
them afterwards: it shows no variables, no included files and no font block, and a click there can
break the build.

What changed since 1.0.0-beta.2

New projects

  • The basic template replaces the example template as the built-in package: the same measured
    design, one or two components per plugin, and twenty short pages in two languages instead of
    someone else's 300-page handbook. All 31 stylesheets still travel, so switching on a component
    that is off gets it designed.

Fonts

  • Every Google font in one list that scrolls and filters; the preview shows the file the build
    really loads.
  • "Serve fonts locally" fetches the fonts into the project — the site asks Google nothing
    afterwards. Japanese, Korean and Chinese families included.
  • Included fonts nothing uses any more are named, with an offer to remove them. A file is only
    deleted when no stylesheet of the project names it.
  • Sites under a sub-path (a project's GitHub Pages) find their fonts again: the next build in
    the app rewrites the addresses from /static/fonts/… to relative ones.
  • Screen readers hear every entry of the font list by name, and the number of matches while
    typing.

Setup and design

  • The content folder sits at the top of the configuration's Website tab; the tab is now five
    cards like the other pages.
  • A quartz.config.yaml with a syntax error is reported as one instead of being half read.
  • Saving on the Styles page writes every tab, whichever is in front.
  • The layout board and the frame builder can be dragged by keyboard, with announcements for
    screen readers — including when a drop moves nothing or is refused.

Templates

Applying a template package with "Template wins" now leaves the project picture you chose in the
app alone, keeps the Google fonts the project serves itself, and removes the font files of the
replaced rules that no rule names any more. The preview says so beforehand, the result afterwards.

Build and preview

  • Build and dev server no longer share the output folder. "Build now" is refused while the
    preview holds the same folder; "Start" waits for a running build and says what it waits for.

Maintenance

  • The Quartz update regenerates package.json and package-lock.json instead of merging them,
    so a project's own packages no longer block it. An update that fails halfway is a state of its own
    and the next run finishes it.
  • "Abort merge" says what it does — also what it would discard, and why it refuses when it
    refuses.

The app itself

  • The handbook lives online only (https://boxi-os.github.io/QuartzControl/) and no longer ships
    inside the app — the macOS download is about 32 MB smaller than beta 2's. Every screen still links
    to its page.
  • On a Linux too old for the bundled git the app says so and suggests a git from the package
    manager instead of a reinstall.

Which file

System File
macOS, Apple Silicon QuartzControl-1.0.0-rc.1-arm64.dmg — or .zip
macOS, Intel QuartzControl-1.0.0-rc.1-x64.dmg — or .zip
Linux, x86_64 QuartzControl-1.0.0-rc.1-x86_64.AppImage or quartzcontrol_1.0.0-rc.1_amd64.deb
Linux, arm64 QuartzControl-1.0.0-rc.1-arm64.AppImage or quartzcontrol_1.0.0-rc.1_arm64.deb
Flatpak QuartzControl-1.0.0-rc.1-x86_64.flatpak or …-aarch64.flatpak

Linux needs glibc 2.34 or newer for the bundled git — Ubuntu 22.04, Debian 12, RHEL 9,
Fedora 35 and later. On an older system the app starts and says it cannot use its own git; a git
from the package manager gets you going. The Flatpak does not raise the question.

Before the first start

macOS. The app is ad-hoc signed and not notarised; there is no Developer ID certificate, so
macOS refuses the first launch. Allow it under System Settings → Privacy & Security → Security →
"Open Anyway"
, within about an hour of the refused launch. Or clear the quarantine flag:

xattr -dr com.apple.quarantine /Applications/QuartzControl.app

Linux. Make the AppImage executable and run it, or install the deb with
sudo apt install ./quartzcontrol_1.0.0-rc.1_amd64.deb. For the Flatpak:

flatpak install --user QuartzControl-1.0.0-rc.1-x86_64.flatpak

--filesystem=home is set, so projects under your home directory work as they are. A content
folder on another drive needs a one-off flatpak override --filesystem=<path>.

What is inside every package

  • Node and npm — Electron's own runtime (Node 24.18.1, npm 11.17.0), exposed as three shims on
    the PATH. Nothing to install.
  • git 2.53.0 — used only when the machine has none that answers; otherwise the system's own wins.
  • The basic template — for creating a project when there is no network.

Known limits

  • Not notarised on macOS, as above. No self-update: the start screen reports a newer
    version and links to it. No Windows, deliberately; the reasons are in the README.
  • Not started on its own kind of machine: the macOS Intel build (there is no Intel Mac here),
    and Linux with a system git older than 2.38. Both are built; neither was run on such a machine.
  • A YAML error in the frontmatter of a single note stops the dev server. That is Quartz; the
    app shows the server as crashed.

Checksums (SHA-256)

cd35176eb322a32f74ed25c3505d9341a923424fbdacaa91d1c68cf5e43d827d  QuartzControl-1.0.0-rc.1-arm64.dmg
95a71b8e05ce44c3d34039faf8289914ae82b1c755582146e355afe6cb2ee0bb  QuartzControl-1.0.0-rc.1-arm64.zip
6d6bb609de59fb1dc9165b66791c345dd1ce73a0fa5ecb56d7adb11cd53e4fa1  QuartzControl-1.0.0-rc.1-x64.dmg
0f089d759414d79665bc5720c4359c96dfda271c3e59cc07624a8b202edfdcc1  QuartzControl-1.0.0-rc.1-x64.zip
4c8c9054026768d59025c1b4ed1b2abb4152ee8a8b87fd468253e94b301f7347  QuartzControl-1.0.0-rc.1-arm64.AppImage
dbd4296520e3fc424962df22210ab0c8ae6b0d97820b26fb1b8b21580c488edd  QuartzControl-1.0.0-rc.1-x86_64.AppImage
7eb152e181d93a38df824b7c0fc98357265ceb2f51523c6369f083d74d6b6ae2  quartzcontrol_1.0.0-rc.1_arm64.deb
e95b66d94e02f8cf0cdd7b5be3276b81aced35b1f5ed02908495c647197c5af7  quartzcontrol_1.0.0-rc.1_amd64.deb
5b7ce09d04247862779e7f71db23320b2aee941cd676224db5d33dc3af1f5049  QuartzControl-1.0.0-rc.1-aarch64.flatpak
4c8a1f7273f8320f7a4297e4721a45752dd416cbbd85ed1bda9f85c702aaa334  QuartzControl-1.0.0-rc.1-x86_64.flatpak

QuartzControl 1.0.0-beta.2

Pre-release

Choose a tag to compare

@boxi-os boxi-os released this 14 Sep 11:19

The second beta. It answers the first round of feedback — most of all a macOS package that would
not start, and a preview that showed a 404 for every project with notes of its own. Feedback is
still welcome — an issue is the easiest way.

What changed since 1.0.0-beta.1

Fixed

  • macOS: “QuartzControl is damaged” is gone. Beta 1 carried a broken signature, which macOS
    reports as a damaged download. The app is now ad-hoc signed across the whole bundle; the first
    launch is refused like any app without a Developer ID and can be allowed (see below).
  • No bouncing icon in the Dock during every build and every preview on macOS.
  • The AppImages start without extra libraries. Their startup program is now statically
    linked. The arm64 AppImage of beta 1 needed libz.so, which Debian only ships with its
    development packages, and did not start without it.
  • The preview no longer shows a 404 without saying why. Quartz builds no start page when
    content/index.md is missing, which is the normal case for copied notes or a linked vault. The
    app now says so on the overview, on Preview & build and on the content folder, and offers to
    create the start page — with a title, and naming the folder first when that folder is a linked
    vault, that is, your own notes.
  • The Quartz core update card showed your project's own last commit as “installed”. It now
    shows the newest Quartz commit the project contains, and how many are missing.
  • A plugin entry without enabled: is shown as off — that is what the build does. Saving used
    to switch such an entry on silently.
  • The frame editor asks before deleting an area that still holds something, tells you on every
    breakpoint when one of your own areas is hidden there, and no longer takes the keyboard focus
    away when switching breakpoints.

New

  • A running build is visible everywhere — elapsed time and Quartz' current phase on Preview &
    build and on the overview, still there after leaving the page. A second click joins the running
    build instead of starting another one into the same folder.
  • The window reopens where it was, size and monitor included. If that monitor is gone, it opens
    on the main one.
  • The project image can appear in the site header, through a Layout Box, with an optional
    second image for dark mode.
  • The start screen lays its project tiles out by the width of the column, not the window, and
    says each thing once.
  • “Backups” is now “Snapshots”, the word everything on that page already used.
  • The handbook has a page on network connections — every address the app talks to, when, and
    why (Reference → Network connections).
  • The example template links its footer to the published handbooks, and its sidebar links work
    when the site lives under a sub-path.

Which file

System File
macOS, Apple Silicon QuartzControl-1.0.0-beta.2-arm64.dmg — or .zip
macOS, Intel QuartzControl-1.0.0-beta.2-x64.dmg — or .zip
Linux, x86_64 QuartzControl-1.0.0-beta.2-x86_64.AppImage or quartzcontrol_1.0.0-beta.2_amd64.deb
Linux, arm64 QuartzControl-1.0.0-beta.2-arm64.AppImage or quartzcontrol_1.0.0-beta.2_arm64.deb
Flatpak QuartzControl-1.0.0-beta.2-x86_64.flatpak or …-aarch64.flatpak

Every file names its architecture, including the Intel and amd64 ones.

Before the first start

macOS. The app is ad-hoc signed and not notarised; there is no Developer ID certificate, so
macOS refuses the first launch. Allow it under System Settings → Privacy & Security → Security →
“Open Anyway”
, within about an hour of the refused launch. The context menu (right-click → Open)
no longer does this since macOS 15. Or clear the quarantine flag:

xattr -dr com.apple.quarantine /Applications/QuartzControl.app

Still on 1.0.0-beta.1 and macOS says it “is damaged”? Only the command above helps for that
version — or install this one.

Linux. Make the AppImage executable and run it, or install the deb with
sudo apt install ./quartzcontrol_1.0.0-beta.2_amd64.deb. For the Flatpak:

flatpak install --user QuartzControl-1.0.0-beta.2-x86_64.flatpak

--filesystem=home is set, so projects under your home directory work as they are. A content
folder on another drive needs a one-off flatpak override --filesystem=<path>.

What is inside every package

  • Node and npm — Electron's own runtime (Node 24.18.1, npm 11.17.0), exposed as three shims on
    the PATH. Nothing to install.
  • git 2.53.0 — used only when the machine has none that answers; otherwise the system's own wins.
  • The user handbook — 461 files in two languages, readable offline, linked from every screen.
  • An example template — for creating a project when there is no network.

Known limits

  • Not notarised on macOS, as above.
  • No self-update. The start screen reports when a newer version exists and links to it; the
    download and the replacement are yours to do.
  • No Windows. Deliberate, and the reasons are in the README.
  • A YAML error in the frontmatter of a single note stops the dev server. That is Quartz; the app
    shows the server as crashed.
  • On a machine without a working GL context — a VM, typically — the window appears a moment
    later than usual through a fallback path, and the console says so.

Checksums (SHA-256)

934d530c164f6fd5fe5ec9f24f96a2e27e5e1e17a8fd4d8c61c882c1812fec1a  QuartzControl-1.0.0-beta.2-arm64.dmg
9ab9e67f6de1e891cebfa57cb3c31bb8571a432f2589c32de34cb238486ae3e5  QuartzControl-1.0.0-beta.2-arm64.zip
8b30041ca69db77cfe1047a0ce4852cd98acd177dc718f3a5ce44842948b5d73  QuartzControl-1.0.0-beta.2-x64.dmg
4398643971c467ecd6116cf0d2bdb50e7319a94ef2925e530bd32c1eaec41352  QuartzControl-1.0.0-beta.2-x64.zip
6e6073eff421cd4066fdb1e8ab4a3c66023018016c2d39741eda085a485a8958  QuartzControl-1.0.0-beta.2-arm64.AppImage
bbf483bdbfcd7cee561e5e6748a9ced559f500d74ed478279efd79f82d49f75e  QuartzControl-1.0.0-beta.2-x86_64.AppImage
489bb406195c3824582ecd02a20fd130d8dcedcad959aeeec98c5791331cf18b  quartzcontrol_1.0.0-beta.2_arm64.deb
0151800357fd6c4a330c65401df4ed2036dc0b3a118690fad3b59fc26f98ae07  quartzcontrol_1.0.0-beta.2_amd64.deb
7664d3da7c0c64d2fb96a2a9e51ed69734d9eb85346f6a9985ca8c9b45194462  QuartzControl-1.0.0-beta.2-aarch64.flatpak
6984b757019d5c1f2de4a69504fa7100d8e1a5fe96e4cb47010f0ad02c132451  QuartzControl-1.0.0-beta.2-x86_64.flatpak

QuartzControl 1.0.0-beta.1

Pre-release

Choose a tag to compare

@boxi-os boxi-os released this 10 Sep 18:05

The first public build. Beta: it runs, it is used daily by its author, and it has not been through
anyone else's hands yet. Feedback is welcome — an issue is the easiest way.

Which file

System File
macOS, Apple Silicon QuartzControl-1.0.0-beta.1-arm64.dmg — or .zip
macOS, Intel QuartzControl-1.0.0-beta.1-x64.dmg — or .zip
Linux, x86_64 QuartzControl-1.0.0-beta.1-x86_64.AppImage or quartzcontrol_1.0.0-beta.1_amd64.deb
Linux, arm64 QuartzControl-1.0.0-beta.1-arm64.AppImage or quartzcontrol_1.0.0-beta.1_arm64.deb
Flatpak QuartzControl-1.0.0-beta.1-x86_64.flatpak or …-aarch64.flatpak

Every file names its architecture, including the Intel and amd64 ones — no file here is ambiguous
about what it runs on.

Before the first start

macOS. The app is unsigned; there is no Developer ID certificate. Gatekeeper refuses the first
launch. Either open it once from the context menu (right-click → Open), or clear the quarantine
flag:

xattr -dr com.apple.quarantine /Applications/QuartzControl.app

Linux. Make the AppImage executable and run it, or install the deb with
sudo apt install ./quartzcontrol_1.0.0-beta.1_amd64.deb. For the Flatpak:

flatpak install --user QuartzControl-1.0.0-beta.1-x86_64.flatpak

--filesystem=home is set, so projects under your home directory work as they are. A content
folder on another drive needs a one-off flatpak override --filesystem=<path>.

What is inside every package

  • Node and npm — Electron's own runtime, exposed as three shims on the PATH. Nothing to install.
  • git 2.53.0 — used only when the machine has none that answers; otherwise the system's own wins.
  • The user handbook — 453 files in two languages, readable offline, linked from every screen. In
    the Linux packages this is new: the builds from 2026-09-08 shipped without it.
  • An example template — for creating a project when there is no network.

Known limits

  • Unsigned on macOS, as above. Notarisation needs a certificate this project does not have yet.
  • No self-update. The start screen reports when a newer version exists and links to it; the
    download and the replacement are yours to do. What updates inside the app is the Quartz core and
    the plugins of a project — that is the website, not the program.
  • No Windows. Deliberate, and the reasons are in the README.
  • On a machine without a working GL context — a VM, typically — the window appears through a
    fallback path a moment later than usual, and the console says so. The app works; the message is
    the app telling you which path it took.

How this was built

Three machines, because the Flatpak is the one target that cannot be cross-built: it needs the
runtime, SDK and BaseApp of its own architecture. macOS packages on a Mac, AppImage and deb for both
architectures in one pass on an x86_64 machine, and one Flatpak on a machine of each architecture.

Checksums (SHA-256)

a8d50854779cfe4624783e91ae989459d3927b1c15713f769170b7d02fcfea39  QuartzControl-1.0.0-beta.1-arm64.dmg
5135bba0ecb748efd58b267550a64592a6c50617a51bbaeb16cf85bec881fb2a  QuartzControl-1.0.0-beta.1-arm64.zip
f7e89fb712f4658cf9296648d3a561df87cea615232f73cf0176f20aec97ba83  QuartzControl-1.0.0-beta.1-x64.dmg
ce9a61dfef39d05f31cd97884701de294dd39b38d0059a9248ce914b86846f77  QuartzControl-1.0.0-beta.1-x64.zip
5b185dffc559a187f34c3e6d3b9f79dbd5a50c3c845f8877479bc9b11bfc253e  QuartzControl-1.0.0-beta.1-arm64.AppImage
5b3e8a4f42ba03feef4c53f9d0b28f7cba7d53dcc5a8bae17ae6e23bab5e84f8  QuartzControl-1.0.0-beta.1-x86_64.AppImage
1ae628e0569b65aad6f9c84bbe4dad8b46103787cc0bf8afe001a990b33498f4  quartzcontrol_1.0.0-beta.1_arm64.deb
65ffc54003e5ceda7d07655ed090e0fb5b87b10c34ae130d399b5bf1d1b0eabb  quartzcontrol_1.0.0-beta.1_amd64.deb
8687792c16b867ca8266d2ab2d0798a0ad0d47696054e4fdd41695dd8c0e2ee2  QuartzControl-1.0.0-beta.1-aarch64.flatpak
1fb843316cc646688f690b65b72cdef7b179d39808664b1e38463119b65342a5  QuartzControl-1.0.0-beta.1-x86_64.flatpak