mirror of
https://github.com/sonophage/Bureau.git
synced 2026-07-22 04:40:32 +00:00
Release 2.7.0
**New-tab dossier** — the empty pane opens on packaged Bureau artwork now, shown by default (switch it Off or to your own image under Style Settings → **New-tab image**), and the old "NO ACTIVE FILE" stamp is retired. The art ships embedded as a base64 webp inside `theme.css` — a theme can only carry `theme.css` + `manifest.json`, so the image rides along in the stylesheet — at double the previous size. **Redacted action bar** — the new-tab actions (new note, go to file, …) are a horizontal row of themed icons instead of text, floating on no card. Hover one and the *others* get a hand-skewed censor stripe swept across them — blacked out, like someone decided you didn't need them — while the hovered icon lifts and glows accent. (The icon treatment + data-URI new-tab image are adapted from the [Border theme by Akifyss](https://github.com/Akifyss/Border); the artwork is original.) **Lighter listing** — the gallery screenshot dropped from 2.7 MB to a trim 768px PNG, and the README now leads on a 1280px webp hero. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8467ad8c1e
commit
ccbeb3c694
9 changed files with 467 additions and 50 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,3 +1,4 @@
|
|||
theme.css.bak-*
|
||||
*.bak
|
||||
.DS_Store
|
||||
__pycache__/
|
||||
|
|
|
|||
35
README.md
35
README.md
|
|
@ -23,7 +23,7 @@ Its mood was stolen, in equal parts, from three places:
|
|||
- **The Magnus Archives** — dust, quiet wrongness, a tape still running (the **green** accent, *Magnus*).
|
||||
- **Deus Ex** — black-and-gold cyber-renaissance, conspiracy with good lighting (the **gold** accent, *Deus*).
|
||||
|
||||

|
||||

|
||||
|
||||
It used to be dark only — and that was the whole creed. It isn't anymore, and the
|
||||
change turned out to *be* the point. Most themes pick a side: all-dark or
|
||||
|
|
@ -59,6 +59,23 @@ The straight way, no ceremony:
|
|||
> still runs, but it runs the way the house came — someone else's defaults, the
|
||||
> thermostat set to a temperature that isn't yours.
|
||||
|
||||
## Custom background
|
||||
|
||||
Turn on **Custom background image** (Style Settings → Bureau → Floating & glass), then feed it an image. One thing to know up front: **pure CSS can't point at a vault file by path** — Obsidian serves vault files over a per-install `app://<token>/…` URL that only JavaScript can mint, the old `app://local/…` shortcut no longer resolves, and relative paths don't resolve inside an injected snippet. So a *web* image can be linked, but a *local* image has to be either embedded or fed in by a plugin. Three ways:
|
||||
|
||||
- **A web image** — paste a full `url(...)` into **Background image — web URL**, e.g. `url('https://example.com/bg.jpg')`. This layers on top, so a web URL always wins.
|
||||
- **A local image, point-and-click** *(easiest)* — install the optional [**Redacted Background**](https://github.com/Sonophage/Redacted-Background) companion plugin (via [BRAT](https://github.com/TfTHacker/obsidian42-brat)). Then right-click any vault image → **Set as Redacted Background** and it feeds `--bu-wallpaper-snippet` a live resource path for you — no encoding step, and it sets the new-tab image too. Bureau works fine without it; this is just the easy button.
|
||||
- **A local image, no plugin** — embed it as a base64 data URI in the bundled **snippet**:
|
||||
1. Copy [`snippets/bureau-wallpaper.css`](snippets/bureau-wallpaper.css) into your vault's `.obsidian/snippets/` folder.
|
||||
2. Turn your image into a data URI — any "image to base64" web tool, or `magick img.png -quality 82 -strip /tmp/bw.jpg && base64 -w0 /tmp/bw.jpg` — and paste it on the `--bu-wallpaper-snippet` line, replacing the placeholder.
|
||||
3. Settings → Appearance → **CSS snippets** → enable **bureau-wallpaper**.
|
||||
|
||||
The snippet just sets `--bu-wallpaper-snippet`, which Bureau reads as the background's lower layer. (You can also paste the same `url('data:image/…')` straight into the web-URL field and skip the snippet entirely.)
|
||||
|
||||
**Bundling note (why the snippet/plugin aren't automatic):** Obsidian's community-theme system distributes a theme as **only** `theme.css` + `manifest.json` — it can't ship or install a CSS snippet or a plugin for you. So the snippet travels in the GitHub repo under `snippets/` (drop it into `.obsidian/snippets/` once; the release also attaches `bureau-wallpaper.css`), and the companion plugin lives in its own repo, installed via BRAT.
|
||||
|
||||
There's also a **New-tab image** setting that paints an image on the empty New-Tab pane: **Bureau image** — the packaged artwork, **shown by default** (embedded as a base64 webp in `theme.css`, since a theme can only ship `theme.css` + `manifest.json`) — or **Off**, or **Custom URL** (paste a `url(...)` in the field below — a web URL or a base64 data URI). The 3-way select + data-URI delivery is adapted from the [Border theme by Akifyss](https://github.com/Akifyss/Border); the artwork is original. To swap the packaged art, replace `new-tab.webp` and re-embed it as `--bu-new-tab-default-image` (`printf 'url("data:image/webp;base64,%s")' "$(base64 -w0 new-tab.webp)"`). For a *local* new-tab image without any of that, the [Redacted Background](https://github.com/Sonophage/Redacted-Background) plugin sets it point-and-click.
|
||||
|
||||
## Controls
|
||||
|
||||
All of it is in **Settings → Style Settings → Bureau**. The panel remembers what
|
||||
|
|
@ -141,7 +158,7 @@ Optional soft looks layered over the brutalist base — all off by default, so t
|
|||
- **Pill terminal (floating editor)** — the full Ultra-Lobster move: the view-header breaks into flat pills on the desk, the title bar goes transparent, and the **editor floats as its own rounded card** below the chrome (status bar splits into pills too). Best with Cards layout on.
|
||||
- **Pill terminal — hover to reveal** — the header pills *collapse* until you hover or focus the row, reclaiming that vertical space for the note. The desk clears until you reach for it.
|
||||
- **Editor-only cards (flush sidebars)** — only the editor floats as a card; the sidebars sit flush.
|
||||
- **Custom background image** (+ URL + dim) — a wallpaper behind the workspace, visible through the frosted glass. **Just paste the address** (`https://…` or a vault path) — no `url(…)` wrapping; the dim keeps text legible.
|
||||
- **Custom background image** (+ URL + dim) — a wallpaper behind the workspace, visible through the frosted glass. Paste a full `url(...)` value — a web image, or a local image as a base64 data URI (see [Custom background](#custom-background)) — and the dim keeps text legible.
|
||||
|
||||
### Tabs
|
||||
- **Tab shape** — *Folder* (connected, like a real file drawer) or *Pill* (fully rounded, for people who've made peace with it). The **active tab fills solid accent and rises taller** than the rest; **inactive tabs invert** — black-on-white / white-on-black — and they're **editor-aware**, flipping with *Inverted editor* so they always track the editor's palette, not the window's. Labels sit **dead-centre** and stay put when the close button appears.
|
||||
|
|
@ -178,6 +195,18 @@ Bureau owns this room now.
|
|||
|
||||
## Changelog
|
||||
|
||||
### 2.7.0
|
||||
- **New-tab dossier** — the empty pane opens on packaged Bureau artwork now, shown by default (switch it Off or to your own image under Style Settings → **New-tab image**), and the old "NO ACTIVE FILE" stamp is retired. The art ships embedded as a base64 webp inside `theme.css` — a theme can only carry `theme.css` + `manifest.json`, so the image rides along in the stylesheet — at double the previous size.
|
||||
- **Redacted action bar** — the new-tab actions (new note, go to file, …) are a horizontal row of themed icons instead of text, floating on no card. Hover one and the *others* get a hand-skewed censor stripe swept across them — blacked out, like someone decided you didn't need them — while the hovered icon lifts and glows accent. (The icon treatment + data-URI new-tab image are adapted from the [Border theme by Akifyss](https://github.com/Akifyss/Border); the artwork is original.)
|
||||
- **Lighter listing** — the gallery screenshot dropped from 2.7 MB to a trim 768px PNG, and the README now leads on a 1280px webp hero.
|
||||
|
||||
### 2.6.1
|
||||
- **Local wallpaper fix + companion plugin** — the wallpaper snippet (and the docs) used to rely on `app://local/…` / a co-located relative path, which no longer resolves on current Obsidian builds (the image silently 404'd). The bundled `snippets/bureau-wallpaper.css` now embeds the image as a base64 data URI, and the Style Settings descriptions say so. The **web-URL / custom-URL fields now take a full `url(...)` value again** (the 2.5.3 bare-URL-via-`image-set` experiment was reverted — `image-set` couldn't take a CSS variable cleanly). For a point-and-click local image (no encoding), there's a new optional companion plugin — [**Redacted Background**](https://github.com/Sonophage/Redacted-Background) (install via BRAT) — that feeds Bureau's wallpaper *and* new-tab image a live resource path.
|
||||
- **Search bar fix** — under Pill terminal, the in-editor Ctrl+F search bar no longer clips upward under the breadcrumb header. The editor card's `clip-path` was promoting `.view-content` to a stacking context that trapped the search bar's `z-index` below the `z-index:1` header; the card now carries its own positioned level so the whole subtree (search bar included) sits at/above the header band.
|
||||
- **Legible accent chips** — on-accent ink is now auto-derived for contrast (`contrast-color()`) instead of forced white. On the light presets (Amber, P1 green, Deus gold) white text dropped to ~1.3–1.8:1 and every accent-filled chip read as a solid bar — under the **Phosphor terminal** presets, editor URL chips (`.cm-url`) looked redacted until hovered. Fixed at the token, so link chips, callout titles and Bases headers all flip to black ink where the accent is light; the dark presets keep white.
|
||||
- **Strikethrough reveal** — hovering ~~struck~~ text now reveals it in the accent (`--bu-accent-ink`, WCAG-safe on paper) instead of plain body ink.
|
||||
- **Unresolved links blur** — a `[[name]]` whose file doesn't exist yet renders hazy — transparent glyphs over an accent-ink text-shadow, no chip — and pulls sharp on hover. A blurred sibling of the strikethrough redaction: an unfiled record, out of focus until you lean in.
|
||||
|
||||
### 2.6.0
|
||||
- **Accessibility pass** — secondary "faint" text now clears WCAG AA in both palettes (was ~2.8:1); accent-coloured text (links, *italic* emphasis) darkens on paper via a new `--bu-accent-ink` so it clears AA there too, while borders, fills and glow keep the vivid accent; and a `:focus-visible` keyboard ring marks focus for keyboard / assistive-tech users without showing on mouse clicks.
|
||||
- **Phosphor terminal** — two new accent presets, **Amber** and **Green (P1)**, plus a **Phosphor terminal** toggle that tints the dark-mode body text to the accent for a monochrome vintage-CRT look.
|
||||
|
|
@ -210,7 +239,7 @@ Bureau owns this room now.
|
|||
- **Tabs** rebuilt: active = solid accent + taller; inactive = inverted (black-on-white / white-on-black) and **editor-aware** (flips with *Inverted editor*). No more hover recolour.
|
||||
- **Status bar** is editor-aware and inverts with the editor; each section is its own pill.
|
||||
- **Colour controls added**: per-mode **text colour** and **black / white levels**.
|
||||
- **Wallpaper** takes a **bare URL** now (no `url(…)` wrapping) via `image-set`.
|
||||
- **Wallpaper** takes a **bare URL** now (no `url(…)` wrapping) via `image-set`. *(Reverted in 2.6.1 — the field is back to a full `url(...)` value, and `image-set` was dropped.)*
|
||||
- **Reading surface**: callout **bold** renders as a redaction stamp, callouts lift on a deeper shadow, **highlights** use the accent, **external links + bare URLs** become accent chips (the `www` tag retired), and **tables** punch the accent harder.
|
||||
- **Settings & command palette** regained their backdrop **blur + accent glow**.
|
||||
- **Removed**: the "Hover bloom" accent-glow-on-hover (replaced by the tactile Rolodex lift). Many cryptic settings gained descriptions.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "Bureau",
|
||||
"version": "2.6.0",
|
||||
"version": "2.7.0",
|
||||
"minAppVersion": "1.5.0",
|
||||
"author": "Sonophage",
|
||||
"authorUrl": "https://github.com/Sonophage"
|
||||
|
|
|
|||
BIN
new-tab.webp
Normal file
BIN
new-tab.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
|
|
@ -26,7 +26,7 @@ WHAT IT DOES (aborts on any failure; nothing is pushed until the confirm)
|
|||
"Release history" (both inside the @settings block)
|
||||
validate -> theme.css braces balanced + the @settings YAML still parses
|
||||
ship -> commit "Release X.Y.Z", tag X.Y.Z, push main + tag,
|
||||
gh release create X.Y.Z theme.css manifest.json (notes = the README entry)
|
||||
gh release create X.Y.Z theme.css manifest.json snippets/bureau-wallpaper.css (notes = the README entry)
|
||||
|
||||
README's "## Changelog" stays the single source of truth; everything else is generated from it.
|
||||
"""
|
||||
|
|
@ -41,6 +41,7 @@ REPO = os.path.dirname(os.path.realpath(__file__))
|
|||
THEME = os.path.join(REPO, "theme.css")
|
||||
MANIFEST = os.path.join(REPO, "manifest.json")
|
||||
README = os.path.join(REPO, "README.md")
|
||||
SNIPPET = os.path.join(REPO, "snippets", "bureau-wallpaper.css")
|
||||
|
||||
# Constant footer appended to the "What's new" note (kept out of README so it isn't duplicated there).
|
||||
WHATSNEW_FOOTER = (
|
||||
|
|
@ -248,7 +249,8 @@ def main():
|
|||
if r.returncode:
|
||||
die(f"{' '.join(push)} failed:\n{r.stderr}")
|
||||
step("pushed main + tag")
|
||||
r = run(["gh", "release", "create", version, THEME, MANIFEST,
|
||||
assets = [THEME, MANIFEST] + ([SNIPPET] if os.path.exists(SNIPPET) else [])
|
||||
r = run(["gh", "release", "create", version, *assets,
|
||||
"--title", f"{version}", "--notes", bullets])
|
||||
if r.returncode:
|
||||
die(f"gh release create failed (commit/tag are pushed; finish the release by hand):\n{r.stderr}")
|
||||
|
|
|
|||
BIN
screenshot.png
BIN
screenshot.png
Binary file not shown.
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 570 KiB |
BIN
screenshots/bureau-hero.webp
Normal file
BIN
screenshots/bureau-hero.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
40
snippets/bureau-wallpaper.css
Normal file
40
snippets/bureau-wallpaper.css
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
/* ───────────────────────────────────────────────────────────────────────────
|
||||
Bureau — local wallpaper snippet (embedded image)
|
||||
|
||||
Use an image FROM YOUR OWN MACHINE as the Bureau background, in any vault.
|
||||
|
||||
WHY EMBED? Pure CSS cannot point at a vault file by path: Obsidian serves
|
||||
vault files over a per-install "app://<token>/" URL that only JavaScript can
|
||||
mint, the old "app://local/<absolute-path>" shortcut no longer resolves on
|
||||
current builds (ERR_FILE_NOT_FOUND), and relative paths don't resolve inside
|
||||
the inline <style> Obsidian injects for snippets. So the portable, works-
|
||||
everywhere way to use a LOCAL image is to embed its bytes as a base64 data
|
||||
URI — no path, no protocol, no per-machine breakage.
|
||||
|
||||
(Prefer a HOSTED image? You don't need this snippet at all — just paste
|
||||
url('https://…/bg.jpg') into Style Settings → Bureau → "Background image —
|
||||
web URL". That field also accepts a data: URI, if you'd rather not edit a
|
||||
file. The snippet is just a tidier home for a big baked-in data URI.)
|
||||
|
||||
SETUP
|
||||
1. Copy THIS file into your vault's .obsidian/snippets/ folder.
|
||||
2. Turn your image into a data URI and paste it on the --bu-wallpaper-snippet
|
||||
line below, replacing the transparent placeholder. Either:
|
||||
• any "image to base64 data URI" web tool, OR
|
||||
• command line (ImageMagick + base64):
|
||||
magick your-image.png -quality 82 -strip /tmp/bw.jpg
|
||||
base64 -w0 /tmp/bw.jpg
|
||||
then wrap the output as url("data:image/jpeg;base64,<paste>")
|
||||
Keep the source small — resize to ~1920px wide and use JPEG q≈82; a
|
||||
1536×1024 q82 JPEG is ~324 KB of base64, which is comfortable.
|
||||
3. Settings → Appearance → CSS snippets → enable "bureau-wallpaper"
|
||||
(re-toggle it off/on after any edit to reload).
|
||||
4. Settings → Style Settings → Bureau → turn on "Custom background image".
|
||||
Leave the "Background image — web URL" field as none (a value there
|
||||
layers ON TOP of this snippet and wins; this is the fallback).
|
||||
─────────────────────────────────────────────────────────────────────────── */
|
||||
|
||||
body {
|
||||
/* ↓ Replace this 1×1 transparent placeholder with your data URI. */
|
||||
--bu-wallpaper-snippet: url("data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==");
|
||||
}
|
||||
433
theme.css
433
theme.css
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue