Skip to content

Closing and spawning new windows #8

@diamondburned

Description

@diamondburned

libdb.so currently hard-codes what windows the user will have on screen. This isn't very realistic: ideally, the user should be able to open multiple windows, each operating as its own instance.

Proposal

This issue proposes that each window (component) should be able to be dynamically added and removed as needed. This should be done simply by dynamically creating new Svelte components and adding it onto a list.

Terminal

For the Terminal, doing the above does not work, as the component may create conflicting WebAssembly instances. Instead, we should extend the WebAssembly API to be able to distinguish multiple terminals apart from each other using just 1 instance. For example:

func write(b []byte)
func read() (b []byte)

could become:

func write(termid int, b []byte)
func read(termid int) (b []byte)

Default Windows

By default, the Portfolio window is spawned. That should be the only default window.

Taskbar Shortcuts

Similar to Windows and Windows-based environments, the desktop panel should contain a few shortcuts that help the user launch apps without needing to enter the App menu.

App Menu

We've yet to design the app menu, and the button currently does nothing. It would be nice to think of inspirations for the app menu before we can think about designing it: do we want to follow a Windows-7 retro-style design or do we want to mock modern GNOME 4x designs?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions