No description
Find a file
semantic-release-bot 8af464e985 chore(release): 1.3.2 [skip ci]
## [1.3.2](https://github.com/MMoMM-org/obsidian-newtab/compare/1.3.1...1.3.2) (2026-07-01)

### Bug Fixes

* **release:** conventionalcommits preset so semantic-release keeps ! commits ([4619dfb](4619dfb61f))
2026-07-01 13:02:10 +00:00
.claude docs: record scaffolding decisions, fork-debt, and findings 2026-06-10 12:35:45 +02:00
.githooks chore: sync .githooks to tcs-git-helpers v2.2.9 2026-06-10 11:09:49 +00:00
.github fix(release): conventionalcommits preset so semantic-release keeps ! commits 2026-07-01 13:00:01 +00:00
assets docs(configuration): per-tab screenshots + Text styles section 2026-06-23 13:01:33 +00:00
dev docs(dev): add BeautiTab import plan & session handoff for #17 2026-06-11 19:51:50 +00:00
docs docs(configuration): per-tab screenshots + Text styles section 2026-06-23 13:01:33 +00:00
React feat(settings): tabbed settings UI with per-tab style assignment 2026-06-23 12:47:56 +00:00
scripts feat: scaffold New Tab plugin (beautitab fork) on MiYo build pipeline 2026-06-10 12:27:44 +02:00
src fix(settings): font picker lists all installed fonts on focus 2026-06-23 15:52:41 +00:00
test feat(styles): add customizable text styles for new-tab elements 2026-06-23 12:07:46 +00:00
types feat: scaffold New Tab plugin (beautitab fork) on MiYo build pipeline 2026-06-10 12:27:44 +02:00
Views feat(navigation): add back/forward buttons to the new tab 2026-06-17 18:47:11 +00:00
.editorconfig feat: scaffold New Tab plugin (beautitab fork) on MiYo build pipeline 2026-06-10 12:27:44 +02:00
.gitignore chore: ignore local test-vault scratch artifacts 2026-06-12 14:01:05 +02:00
.npmrc feat: scaffold New Tab plugin (beautitab fork) on MiYo build pipeline 2026-06-10 12:27:44 +02:00
.releaserc.json fix(release): conventionalcommits preset so semantic-release keeps ! commits 2026-07-01 13:00:01 +00:00
.stylelintrc.json feat: scaffold New Tab plugin (beautitab fork) on MiYo build pipeline 2026-06-10 12:27:44 +02:00
CHANGELOG.md chore(release): 1.3.2 [skip ci] 2026-07-01 13:02:10 +00:00
esbuild.config.mjs refactor: drop the self-rolled update check (#18) 2026-06-12 15:27:42 +02:00
eslint.config.mts chore: enforce lint rules as errors now that the codebase is clean 2026-06-11 12:14:22 +00:00
LICENSE Initial commit 2026-06-10 11:29:15 +02:00
main.ts feat(styles): add customizable text styles for new-tab elements 2026-06-23 12:07:46 +00:00
manifest.json chore(release): 1.3.2 [skip ci] 2026-07-01 13:02:10 +00:00
package-lock.json chore(release): 1.3.2 [skip ci] 2026-07-01 13:02:10 +00:00
package.json chore(release): 1.3.2 [skip ci] 2026-07-01 13:02:10 +00:00
PRIVACY.md docs(privacy): document vault enumeration and the background cache 2026-06-13 11:56:28 +02:00
README.md docs(readme): add text styles + greeting markdown to features 2026-06-23 13:03:33 +00:00
SECURITY.md feat: scaffold New Tab plugin (beautitab fork) on MiYo build pipeline 2026-06-10 12:27:44 +02:00
styles.scss docs(configuration): per-tab screenshots + Text styles section 2026-06-23 13:01:33 +00:00
tsconfig.json feat: scaffold New Tab plugin (beautitab fork) on MiYo build pipeline 2026-06-10 12:27:44 +02:00
tsconfig.test.json feat: scaffold New Tab plugin (beautitab fork) on MiYo build pipeline 2026-06-10 12:27:44 +02:00
version-bump.mjs feat: scaffold New Tab plugin (beautitab fork) on MiYo build pipeline 2026-06-10 12:27:44 +02:00
versions.json chore(release): 1.3.2 [skip ci] 2026-07-01 13:02:10 +00:00
vitest.config.ts chore(deps): clear test/build dependency advisories 2026-06-14 13:38:15 +00:00
vitest.live.config.ts feat: scaffold New Tab plugin (beautitab fork) on MiYo build pipeline 2026-06-10 12:27:44 +02:00

New Tab

A plugin for Obsidian that replaces the empty new-tab view with a customizable dashboard — beautiful backgrounds, a clock, a greeting, a quote, quick search, bookmarks, and recently edited files.

The New Tab dashboard: a full-screen background, a clock, a greeting, a search box, recent files and bookmarks, and a quote

This is a personal version of, and derived from, obsidian-beautitab by Andrew McGivery (MIT). See Attribution.

Features

  • Backgrounds — seasonal/holiday themes via Unsplash, your own local images, a custom URL, or transparent modes.
  • Clock — 12- or 24-hour.
  • Greeting — customizable and time-of-day aware, with markdown (**bold**, *italic*) support, in 10 languages out of the box: English, Deutsch, Español, Français, Português, Italiano, Nederlands, Русский, 中文 (简体), and 日本語.
  • Quote — built-in online quotes (ZenQuotes) or your own custom quotes.
  • Search — a top-left search button and an inline search box, each wired to a search provider of your choice.
  • Bookmarks — from all groups or a specific group.
  • Recent files — the five most recently edited notes.
  • Text styles — give each element its own font, size, weight, italic, and color through reusable styles, with a system-font picker on desktop.
  • Every element is individually toggleable and styleable from the settings tab, which is organized into a tab per element.

Install

New Tab is available in Obsidian's community plugin directory:

  1. Open Settings → Community plugins (turn off Restricted mode if it's on).
  2. Click Browse, search for New Tab, and choose the entry by Marcus Breiden.
  3. Click Install, then Enable.

Then open a new tab (Ctrl/Cmd + T) — the empty tab becomes the New Tab view. For pre-release (BRAT) installs, verifying, and updating, see docs/installation.md.

Migrating from BeautiTab

NewTab is derived from BeautiTab, so it can bring your existing BeautiTab configuration across in one click. When BeautiTab is set up in your vault, NewTab offers a one-time, opt-in, non-destructive import on first run — and leaves an Import from BeautiTab button in the settings tab if you dismiss it. See docs/migration.md for what carries over and what doesn't.

Documentation

Development

npm install
npm run dev      # esbuild watch (writes main.js + styles.css to the repo root)
npm run build    # typecheck + production build into build/
npm test         # vitest
npm run lint     # eslint (obsidianmd) + stylelint (scss)

To QA in a real Obsidian instance, this repo ships a test vault at test/NewTab/ with hot-reload. Open it as a vault and run:

DEPLOY_VAULT=1 npm run build

This mirrors the build into the vault's plugin folder with a dev-stamped version so Obsidian reloads the bundle on every build. The canonical manifest.json is never modified.

For user-facing guides — installation, configuration, usage, and known issues — see the docs/ directory.

Adding a greeting language

The {{greeting}} time-of-day phrase is translated per language in React/Utils/greetings.ts. To add yours, add one entry to GREETINGS (keyed by Obsidian's locale code, e.g. de) with the morning/afternoon/evening phrases, plus a matching name in LANGUAGE_LABELS — then open a PR. Nothing else needs to change; it appears in the Greeting language dropdown automatically.

Privacy

New Tab is local-first and makes only a few optional, toggleable network requests (backgrounds, quotes). See PRIVACY.md.

Attribution

This plugin is derived from obsidian-beautitab by Andrew McGivery, used under the MIT License. Background images are served by Unsplash; built-in online quotes come from the ZenQuotes API.

Special thanks to Mara-Li, whose maintained fork Mara-Li/obsidian-beautitab fixed many of the issues in the original plugin — it's the version I ran until building New Tab, and several of her fixes informed this one.

License

MIT © Marcus Breiden