Workspace Switcher (Tabs + Catalogs)

Discuss and share scripts and script files...
Post Reply
enteleform
Posts: 4
Joined: 25 Jul 2018 06:31

Workspace Switcher (Tabs + Catalogs)

Post by enteleform »

Overview

Been using this for a while now and find it to be an extremely quick & efficient workflow for:
  • switching context between projects, resuming the previous state of each project
  • navigating the file system with immediate access to deeply nested, complex hierarchies
  • acessing organized clusters of click or drag/drop based scripts & utilities
TabSets:
Image

CatalogSets:
Image

Here's the source video of those GIFs:
https://i.imgur.com/KzEfRfv.mp4


Hotkeys
  • Switch TabSet
    • Shift + Alt + [1 - 0]
  • Switch CatalogSet (unique, per TabSet)
    • Alt + 1
  • Switch CatalogSet (shared between TabSets)
    • Alt + [2 - 0]

Implementation
  • Sets are loaded via folders prefixed with [<number>]
  • When a CatalogSet is loaded:
    • a single [__Main__]-prefixed catalog is loaded
    • all [Include]-prefixed catalog fragments are included into the main catalog
  • Symlinks & Environment Variables are used to facilitate Set reuse between:
    • multiple workspaces
    • multiple devices
Image


Considered Improvements
  • Create a CommandPalette-like interface that allows unlimited named Workspaces to be saved/loaded/searched. Potentially with a tagging system as well.

Discussion

Has anyone else worked on something like this?

I'd love to release this at some point, but at the moment it's very coupled to a utility-module framework I've been building up which is very alpha-stage & in constant flux. It'll likely take a bit of work to decouple things, make the API a bit more stable, and check for some other dependencies that it might have set up @ AutoHotkey & Task Scheduler.

My primary dev environment right now is Node; so I'm used to being able to work with reusable packages via versioned dependencies, which is kind of what I tried to emulate with my current project structure. Are there any solutions/file-structures/design-patterns/conventions/etc that other members have used to address these types of things for complex script releases?

Here's a screenshot that shows some of the related code & project structure:
Image

Post Reply