Skip to content

Releases: edwardsayer/obsidian-window-spaces

start-popouts-no-flicking

Choose a tag to compare

1.0.7

Choose a tag to compare

@github-actions github-actions released this 02 Aug 11:16

🚀 Window Spaces 1.0.7 Release Notes

This release addresses all official Obsidian Community Store code review items, introducing stricter type safety, improved CSS performance, and updated minimum Obsidian version requirements.

🌟 Fixes & Improvements

  • Obsidian API Compatibility:

    • Updated minAppVersion to 1.7.2 in manifest.json to officially support Workspace.revealLeaf.
    • Replaced deprecated Workspace.activeLeaf calls with Workspace.getMostRecentLeaf().
  • CSS & Performance:

    • Removed :has() pseudo-class selectors in styles.css to prevent DOM selector invalidation overhead. Replaced with explicit class markers (mod-window-spaces-leaf, has-header-actions).
    • Replaced static style assignments with Obsidian-compatible element style helpers (setElementCssStyles).
  • Code Quality & Type Safety:

    • Replaced non-standard createEl("div") / createEl("span") calls with Obsidian's native createDiv() and createSpan() helpers.
    • Resolved TypeScript any types and @typescript-eslint unsafe assertions across core layout manager and modal modules.
    • Fixed duplicate union types for timer variables (number).

繁體中文版本說明

本版本修復了所有 Obsidian 社群外掛官方審核建議項目,大幅提升型別安全性與 CSS 渲染效能:

  1. API 相容性:更新 minAppVersion1.7.2 以完全符合 revealLeaf 規範;替換已棄用之 activeLeaf 屬性。
  2. CSS 效能最佳化:移除 :has() 選擇器以避免瀏覽器無謂的樣式重算;改以 DOM 動態 class 控制。
  3. 代碼規範:全面改用 Obsidian 原生 createDiv() / createSpan() DOM 建立函式,完成 TypeScript 型別嚴格化與 0-Warning 構建。

1.0.6

Choose a tag to compare

@github-actions github-actions released this 02 Aug 05:36

What's Changed

  • Panels inside popout windows: Opening the tab panel or left/right sidebar now targets the focused window, so you can dock the Window Spaces picker inside a popout window without touching the main workspace
  • Keyboard focus safety: The picker never hijacks arrow keys or Enter while you are typing in the command palette, a rename dialog, a dropdown menu, or another window; list navigation only engages when the panel itself is focused
  • Accent-styled actions: The restore and dropdown (∨) buttons in the layout list now share a unified filled accent style
  • Hardened internals: Typed workspace access, safer error messages, and stricter guards keep popout capture/restore reliable across Obsidian versions
  • Docs: README (EN / 繁體中文 / 简体中文) updated for the new window-targeted panel behavior

Files

  • main.js
  • manifest.json
  • styles.css

Full Changelog: 1.0.5...1.0.6

1.0.5

Choose a tag to compare

@github-actions github-actions released this 31 Jul 14:34

What's Changed

  • Popup window mode: Window Spaces can now open as a popup window with the same toolbar (view options, sort, panel menu) mounted in its title bar
  • Smart-focus restore: Restoring a space that is already open in a popout window now focuses that window instead of duplicating it; cloning still opens a fresh copy
  • Location menu revamp: The panel menu and commands now cover four locations - tab panel, popup window, left sidebar, and right sidebar - and opening a location that already has a panel reveals it instead of stacking duplicates
  • Simpler settings: Saved-space management moves fully into the picker; the layout list is removed from the plugin settings tab
  • Keyboard hints: The persistent panel's footer hints appear on hover or when the panel is active, keeping other panels clean
  • Docs: README (EN / 繁體中文 / 简体中文) updated for the new commands and behaviors

Files

  • main.js
  • manifest.json
  • styles.css

1.0.4

Choose a tag to compare

@github-actions github-actions released this 31 Jul 08:30

What's Changed

  • Remove debug lifecycle logging (plugin load/unload, window open/close)
  • Use window-scoped timer functions for debounced auto-save
  • Replace document.createElement with Obsidian's createEl helper
  • Migrate from the deprecated activeLeaf field and substr method
  • Drop an unused catch binding; surface quick-save failures as a notice
  • Pin obsidian type definitions and fix lockfile entries so clean
    installs are reproducible

Files

  • main.js
  • manifest.json
  • styles.css

1.0.3

Choose a tag to compare

@github-actions github-actions released this 31 Jul 07:59

What's Changed

  • Remove the word "Obsidian" from the plugin description to comply with plugin directory guidelines
  • Raise minAppVersion to 1.5.0 to match the Obsidian APIs used by the plugin
  • Replace direct style assignments with CSS classes
  • Use Setting.setHeading() for settings section headers
  • Add a GitHub Actions release workflow with build provenance attestations

Files

  • main.js
  • manifest.json
  • styles.css

1.0.2

Choose a tag to compare

@edwardsayer edwardsayer released this 31 Jul 07:20

Rename plugin id to window-spaces to comply with manifest schema rules (id must not contain obsidian). Remove empty fundingUrl field.

Window Spaces 1.0.1

Choose a tag to compare

@edwardsayer edwardsayer released this 31 Jul 05:01

Window Spaces 1.0.1

Save and restore window layouts for Obsidian popout windows. Seamlessly manage multi-window popout workspaces.

What's New in 1.0.1

  • Obsidian 1.13 compatibility: Restore reliability fixes for the latest Obsidian release.
  • Conventional keyboard focus: Arrow-key navigation in the Window Spaces panel now follows the active panel (click, tab, or command) instead of stealing keys on mouse hover, matching standard Obsidian panel behavior.
  • Documentation: README split into English, 繁體中文, and 简体中文 files with screenshots and aligned content; internal development documents removed from the public repository.

Features

  • Save & restore popout layouts with split/tab structure, files, view modes, window size and screen position
  • Context-aware restore: click/Enter opens a new popout window, long-press/Shift+click applies to the active window
  • Per-layout auto-save with 5-second debounce and save-on-close protection
  • Smart naming from pinned/active files, with 6-dimension sorting and full-text search
  • Persistent Window Spaces panel in the left/right sidebar or editor tab, aligned with the native File Explorer
  • Organization: section tags, drag-to-reorder, inline section rename, archive, and tag pills
  • Smart focus: restoring an already-open space switches to its popout window instead of duplicating it
  • Real-time sync across all open panels, live open-window badges, and progress notices
  • i18n: English, Traditional Chinese, Simplified Chinese with instant language switching
  • Safety guardrails: 0-file overwrite interception, screen-boundary correction, defensive layout parsing

Install

Open Obsidian → Settings → Community plugins → Browse → search "Window Spaces".

Assets

Attached: manifest.json, main.js, styles.css

Window Spaces 1.0.0

Choose a tag to compare

@edwardsayer edwardsayer released this 31 Jul 02:10

Window Spaces 1.0.0

Save and restore window layouts for Obsidian popout windows. Seamlessly manage multi-window popout workspaces.

Features

  • Save & restore popout layouts with split/tab structure, files, view modes, window size and screen position
  • Context-aware restore: click/Enter opens a new popout window, long-press/Shift+click applies to the active window
  • Per-layout auto-save with 5-second debounce and save-on-close protection
  • Smart naming from pinned/active files, with 6-dimension sorting and full-text search
  • Persistent Window Spaces panel in the left/right sidebar or editor tab, aligned with the native File Explorer
  • Organization: section tags, drag-to-reorder, inline section rename, archive, and tag pills
  • Smart focus: restoring an already-open space switches to its popout window instead of duplicating it
  • Real-time sync across all open panels, live open-window badges, and progress notices
  • i18n: English, Traditional Chinese, Simplified Chinese with instant language switching
  • Safety guardrails: 0-file overwrite interception, screen-boundary correction, defensive layout parsing

Install

Open Obsidian → Settings → Community plugins → Browse → search "Window Spaces".

Assets

Attached: manifest.json, main.js, styles.css