Releases: edwardsayer/obsidian-window-spaces
Release list
start-popouts-no-flicking
Full Changelog: 1.0.7...start-popouts-no-flicking
1.0.7
🚀 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
minAppVersionto1.7.2inmanifest.jsonto officially supportWorkspace.revealLeaf. - Replaced deprecated
Workspace.activeLeafcalls withWorkspace.getMostRecentLeaf().
- Updated
-
CSS & Performance:
- Removed
:has()pseudo-class selectors instyles.cssto 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).
- Removed
-
Code Quality & Type Safety:
- Replaced non-standard
createEl("div")/createEl("span")calls with Obsidian's nativecreateDiv()andcreateSpan()helpers. - Resolved TypeScript
anytypes and@typescript-eslintunsafe assertions across core layout manager and modal modules. - Fixed duplicate union types for timer variables (
number).
- Replaced non-standard
繁體中文版本說明
本版本修復了所有 Obsidian 社群外掛官方審核建議項目,大幅提升型別安全性與 CSS 渲染效能:
- API 相容性:更新
minAppVersion為1.7.2以完全符合revealLeaf規範;替換已棄用之activeLeaf屬性。 - CSS 效能最佳化:移除
:has()選擇器以避免瀏覽器無謂的樣式重算;改以 DOM 動態 class 控制。 - 代碼規範:全面改用 Obsidian 原生
createDiv()/createSpan()DOM 建立函式,完成 TypeScript 型別嚴格化與 0-Warning 構建。
1.0.6
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
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
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
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
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
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
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