Add font import for Now, Gotham and Open Sauce One overrides; package fonts for Void
Font import: - Migration M6 adds user_fonts; files are stored content-addressed under the local data dir. New Rust commands inspect, import, list, read and remove fonts, refusing WOFF2, collections, variable fonts and restricted fsType, and unpacking WOFF1 to plain sfnt. - Imported fonts register in the render worker as user:<Face> families with an italic alias, and are pinned in the frozen render prefs so issued invoices can still re-render. Fonts referenced by issued invoices are hidden, never deleted. - Size and tracking compensations tuned for the substitutes apply only while the face is not overridden; default output and fingerprint goldens are unchanged. - Settings gets a Fonts section with a licence acknowledgement. Void packaging: - Install fonts to /usr/share/fonts/voiced with per-family OFL licences, set font_dirs, and add INSTALL/REMOVE scripts that run fc-cache. xbps-create carries both scripts (verified in a void-glibc container). - Fix xbps-create dependency specs in build-xbps.sh.
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { api } from "../lib/api";
|
||||
import { onUserFontsChanged, type UserFontRow } from "../lib/fontImport";
|
||||
|
||||
/** The visible user-imported fonts; reloads when the Settings font table changes them. Empty while loading or on error. */
|
||||
export function useUserFonts(): UserFontRow[] {
|
||||
const [fonts, setFonts] = useState<UserFontRow[]>([]);
|
||||
useEffect(() => {
|
||||
let active = true;
|
||||
const load = () =>
|
||||
api
|
||||
.listUserFonts()
|
||||
.then((rows) => active && setFonts(rows))
|
||||
.catch(() => active && setFonts([]));
|
||||
void load();
|
||||
const off = onUserFontsChanged(() => void load());
|
||||
return () => {
|
||||
active = false;
|
||||
off();
|
||||
};
|
||||
}, []);
|
||||
return fonts;
|
||||
}
|
||||
Reference in New Issue
Block a user