cdepillabout / cdepillabout/termonad

add ability to move tabs between Termonad windows (manage multiple windows in same Termonad process)

Open
#6 1 comment 0 reactions 1 assignee Claimed by @cdepillabout View on GitHub
enhancement help wanted
Dominant language
Haskell
Stars
418
Forks
51
PR merge metrics
No merged PRs in 30d

Description

It would be nice to be able to move tabs between two different termonad windows.

Currently, if you open up two different copies of Termonad, they are treated as two completely separate applications. They share nothing.

The design of Termonad should be changed so that multiple Termonad windows are handled by the same termonad process.

Implementing this will require at least the following steps (if not more):

- Change the [TMState'](https://github.com/cdepillabout/termonad/blob/f161082f02af901c39f62c80eb9811546ff2daee/src/Termonad/Types.hs#L108) data type to have multiple `ApplicationWindow`s (and probably split off this type into a `TMWindow` type that contains the `ApplicationWindow` and `TMNotebook`).
- Change the call to [appNew](https://github.com/cdepillabout/termonad/blob/f161082f02af901c39f62c80eb9811546ff2daee/src/Termonad/App.hs#L370) to be something like `appNew (Just "some.app.name") ...`. `some.app.name` should be something like `haskell.termonad`, or `com.github.cdepillabout.termonad` or something like that. Note that it needs a `.` in it.
- When you try to start Termonad and it is already open, you need to change the logic to instead create a new `TMWindow` instead. I'm not sure exactly how to go about this.
- Add the ability to drag and drop terminals between Termonad windows. I think the gtk notebook has [functions]() related to drag-and-drop.
- Finally, make sure that the logic for closing windows using your window manager still works. (You should still get a pop-up asking you if you are sure you want to close the terminal.)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.