• Stars
    star
    654
  • Rank 68,870 (Top 2 %)
  • Language
    TypeScript
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Andy Matuschak Mode as a plugin

Sliding Panes (Andy Matuschak Mode) Obsidian Plugin

GitHub release (latest SemVer) GitHub All Releases

Sliding Panes (Andy Matuschak Mode) as a plugin for Obsidian.

Screenshot

This plugin changes the way panes in the main workspace are handled — inspired by the UI of Andy Matuschak's notes.
Instead of shrinking the workspace to fit panels, the panels will remain a fixed width (but resizable) and stack so you can scroll between them. Note headers are rotated and added to the left of the pane like a spine (optional), and will stack up as you scroll (also optional), allowing easy navigation between them.

(Note: To open links in a new pane in Obsidian, ctrl/cmd click them)

Other Features

  • Note headers stack up on the right as well as the left.
  • Changing an active pane scrolls that pane into view.
  • Togglable without having to copy CSS into your theme.
  • Togglable features, such as the rotated headers and stacking

Settings

  • Toggle Sliding Panes - Turns sliding panes on or off globally (also available via command/hotkey)
  • Leaf Auto Width - If on, the width of the pane should fill the available space (also available via command/hotkey)
  • Leaf Width - The default width of a single pane
  • Toggle rotated headers - Rotates headers to use as spines (also available via command/hotkey)
  • Swap rotated header direction - Swaps the direction of rotated headers (also available via command/hotkey)
  • Toggle stacking - Panes will stack up to the left and right (also available via command/hotkey)
  • Spine Width - The width of the rotated header (or gap) for stacking

Compatibility

Custom plugins are only available for Obsidian v0.9.7+.

The current API of this repo targets Obsidian v0.10.9.

Notes

This is all very expermental at the moment, so parts might not work, etc.

It still gets a bit slow if you're loading a lot of documents, so try not to load too many at once.

Installation

From within Obsidian

From Obsidian v0.9.8, you can activate this plugin within Obsidian by doing the following:

  • Open Settings > Third-party plugin
  • Make sure Safe mode is off
  • Click Browse community plugins
  • Search for this plugin
  • Click Install
  • Once installed, close the community plugins window and activate the newly installed plugin

Updates

You can follow the same procedure to update the plugin

From GitHub

  • Download the Latest Release from the Releases section of the GitHub Repository
  • Extract the plugin folder from the zip to your vault's plugins folder: <vault>/.obsidian/plugins/
    Note: On some machines the .obsidian folder may be hidden. On MacOS you should be able to press Command+Shift+Dot to show the folder in Finder.
  • Reload Obsidian
  • If prompted about Safe Mode, you can disable safe mode and enable the plugin. Otherwise head to Settings, third-party plugins, make sure safe mode is off and enable the plugin from there.

Security

Third-party plugins can access files on your computer, connect to the internet, and even install additional programs.

The source code of this plugin is available on GitHub for you to audit yourself, but installing plugins into Obsidian is currently a matter of trust.

I can assure you here that I do nothing to collect your data, send information to the internet or otherwise do anything nefarious with your system. However, be aware that I could, and you only have my word that I don't.

Development

This project uses Typescript to provide type checking and documentation.
The repo depends on the latest plugin API in Typescript Definition format, which contains TSDoc comments describing what it does.

Note: The Obsidian API is still in early alpha and is subject to change at any time!

If you want to contribute to development and/or just customize it with your own tweaks, you can do the following:

  • Clone this repo.
  • npm i or yarn to install dependencies
  • npm run build to compile.
  • Copy manifest.json, main.js and styles.css to a subfolder of your plugins folder (e.g, <vault>/.obsidian/plugins/<plugin-name>/)
  • Reload obsidian to see changes

Alternately, you can clone the repo directly into your plugins folder and once dependencies are installed use npm run dev to start compilation in watch mode.
You may have to reload obsidian (ctrl+R) to see changes.

Pricing

Huh? This is an open-source plugin I made for fun. It's completely free. However, if you absolutely have to send me money because you like it that much, feel free to throw some coins in my hat via the following:

GitHub Sponsors Paypal

Version History

3.3.0

  • Sliding panes should now work as expected in popout windows!
  • Pane resizing is back (but not saved to the workspace)
  • Some previous dodginess when toggling the plugin on and off and attempting to resize panes has been resolved
  • (Some) optimisations to streamline and speed things up a little bit.

3.2.5

  • Quick fix to prevent sliding panes in popout windows, as the experience is currently borked.

3.2.4

  • Fixed some focus issues with Obsidian 0.15
  • Added seperate options for desktop and mobile leaf width (thanks @Bevaz)

3.2.3

  • Add an option to select text-orientation (thanks @yo-goto)
  • Allow user to disable smooth animations (thanks @cfree3)

3.2.2

  • Fixed closing notes activating the leftmost note
  • Fixed position of search suggestions
  • Properly remove custom styling when moving a pane into a sidebar
  • Added the note title to the icon, so if your panes are stacked, but you're not rotating headers, you can hover over the icon to see the note title.

3.2.1

  • Changed the name slightly to drop the "Matuschak". Sorry Andy, but your name's just a tad unwieldy...
  • Styling tweaks to better center the elements of rotated headers
  • Fixed the ugly shadow smudge introduced in the previous release
  • Fixed a code typo which was causing issues with opening and closing background panes

3.2.0

  • Added an "auto width" mode, where each pane will take up the available space between the spines on the left and right
  • Fix suggestion container positioning for tags (and related console errors) - Thanks, yet again, Eric Hall
  • Fixed orientation of emojis in rotated headers (thanks GreenChocho and NothingIsLost)
  • Fixed an error when loading workspaces
  • Fixed compatibility issues with MrJackphi's Backlinks into the document plugin

3.1.1

  • Quick fix for rightmost header hiding and extra scrollbar

3.1.0

  • Update the link suggestion container position (thanks again, @erichalldev)
  • Add the option (and command palette command) to turn stacking off (i.e. slide-off mode, like the v1 of Andy's Mode CSS)
  • Add the option (and command palette command) to make the rotated header titles face the other direction
  • Add a command palette command to toggle rotated headers
  • Allow pane resizing (except the last pane, because it doesn't have a handle currently)
  • Fix an issue with switching to off-screen panes not animating correctly (can still jump without animation if you switch too far too quickly)

3.0.2

  • Add a setting to disable rotated headers
  • Update focusLeaf to scroll just far enough to make a leaf fully visible if it's out of view to the right (thanks @erichalldev)
  • Activate adjacent leaf when active leaf is closed (thanks again, @erichalldev)
  • Close leaves which happen to have a file open that is deleted

v3.0.1

  • Quick fix to prevent the plugin from affecting sidebars

v3.0.0

New Features (vs the CSS-only version)

  • Note headers stack up on the right as well as the left.
  • Changing active pane scrolls that pane into view.
  • Togglable without having to copy CSS into your theme.

More Repositories

1

obsidian-snippets

CSS
587
star
2

cm-editor-syntax-highlight-obsidian

A plugin for [Obsidian](https://obsidian.md) which allows syntax highlighting for code blocks in the editor.
JavaScript
351
star
3

Notation-for-Obsidian

A theme for Obsidian, inspired by and borrowing elements from Notion
CSS
162
star
4

cm-typewriter-scroll-obsidian

Typewriter Scroll Obsidian Plugin
TypeScript
109
star
5

80s-Neon-for-Obsidian.md

A retro-future 80s inspired theme for Obsidian.md
CSS
95
star
6

csv-obsidian

Edit CSV Files in Obsidian
TypeScript
94
star
7

txt-as-md-obsidian

Edit txt files in Obsidian.md as if they were markdown
JavaScript
76
star
8

cm-show-whitespace-obsidian

A plugin for [Obsidian](https://obsidian.md) which shows whitespace in the editor.
TypeScript
43
star
9

maximise-active-pane-obsidian

A plugin for [Obsidian](https://obsidian.md) which simply fills the workspace with the active pane.
TypeScript
33
star
10

command-uri-obsidian

Trigger any command palette command via an obsidian:// uri
TypeScript
21
star
11

snippet-commands-obsidian

Registers custom css snippets as commands (which you can bind hotkeys to)
TypeScript
15
star
12

Base2Tone-For-Obsidian.md

A theme for Obsidian based on http://base2t.one/ and http://simurai.com/duotone-dark-sky-syntax/
CSS
13
star
13

ini-obsidian

Edit ini files in Obsidian
TypeScript
10
star
14

cooklang-js

CookLang-JS is a TypeScript library for parsing CookLang.
TypeScript
10
star
15

obsidian-christmas-theme

Inspired by the Dynalist Christmas theme
CSS
5
star
16

markdown-transclude

Transcludes other markdown files into one
JavaScript
4
star
17

psuedo-wysiwyg-obsidian-theme

A theme for Obsidian, which attempts to build out a pseudo-WYSIWYG-like experience (as much as custom CSS will allow).
SCSS
3
star
18

LDToypad.NET

A .NET Core C# library for communicating with the LEGO Dimensions Toypad
C#
3
star
19

base-plugin-obsidian

TypeScript
3
star
20

workflow-experiments

Playing around with github actions, especially for releasing obsidian plugins
TypeScript
2
star
21

editorjs-playground

JavaScript
2
star
22

Obsidian-Roam-theme

An Obsidian.md theme based on Roam Research
CSS
2
star
23

test-activitypub-db

This is just a test of an ActivityPub database, with data stored in yaml-frontmatter md files, persisted in git
HTML
2
star
24

11ndieWeb

Liquid
1
star
25

fastify-activitypub

JavaScript
1
star
26

workflow

1
star
27

death.id.au-micropub

JavaScript
1
star
28

aerion-hubot

CoffeeScript
1
star
29

slack-dark-redux

Yet another dark theme for Slack
CSS
1
star
30

link-in-bio-template

JavaScript
1
star
31

cube-tube

Messing around with a tetris-like falling block game (on a train?) in DragonRuby GTK
Ruby
1
star