composer404 / tabby-workspace-manager

A Tabby plugin that allows you to create custom workspace profiles.
20 stars 8 forks source link

command not working automatically; need to hit ENTER key in tab to execute commands #7

Open signmeuptwice opened 2 years ago

signmeuptwice commented 2 years ago

trying to have a workspave with this default directory tabs open but CD command not working

I have so many errors in the console... Not sure if related

I found that in fact it kind of works but I have to hit ENTER key in the tab for the cd command to execute. So 100% a bug here


Failed to load resource: net::ERR_FILE_NOT_FOUND
/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-terminal/dist/index.js:7973 Color: null is invalid using fallback #000000
e._parseColor @ /Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-terminal/dist/index.js:7973
2core.js:6456 ERROR Error: Uncaught (in promise): [object Undefined]
    at resolvePromise (zone.js:1213)
    at zone.js:1120
    at rejected (/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-settings/dist/index.js:5930)
    at ZoneDelegate.invoke (zone.js:372)
    at Object.onInvoke (core.js:28666)
    at ZoneDelegate.invoke (zone.js:371)
    at Zone.run (zone.js:134)
    at zone.js:1276
    at ZoneDelegate.invokeTask (zone.js:406)
    at Object.onInvokeTask (core.js:28653)
    at ZoneDelegate.invokeTask (zone.js:405)
    at Zone.runTask (zone.js:178)
    at drainMicroTaskQueue (zone.js:582)
    at ZoneTask.invokeTask [as invoke] (zone.js:491)
    at invokeTask (zone.js:1600)
    at HTMLButtonElement.globalZoneAwareCallback (zone.js:1626)
    at HTMLButtonElement.sentryWrapped (helpers.js:72)
defaultErrorLogger @ core.js:6456
undefined:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-terminal/dist/index.js:7973 Color: null is invalid using fallback #000000
e._parseColor @ /Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-terminal/dist/index.js:7973
core.js:6456 ERROR Error: Uncaught (in promise): TypeError: Cannot read properties of undefined (reading 'close')
TypeError: Cannot read properties of undefined (reading 'close')
    at TerminalStreamProcessor.close (/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-terminal/dist/index.js:16130)
    at SerialSession.<anonymous> (/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:4293)
    at Generator.next (<anonymous>)
    at /Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:3954
    at new ZoneAwarePromise (zone.js:1387)
    at __awaiter (/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:3950)
    at SerialSession.destroy (/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:4292)
    at /Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:4249
    at ZoneDelegate.invoke (zone.js:372)
    at Object.onInvoke (core.js:28666)
    at ZoneDelegate.invoke (zone.js:371)
    at Zone.run (zone.js:134)
    at NgZone.run (core.js:28520)
    at SerialPort.<anonymous> (/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:4242)
    at SerialPort.emit (node:events:394)
    at SerialPort._error (/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:1871)
    at /Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:1913
    at ZoneDelegate.invoke (zone.js:372)
    at Object.onInvoke (core.js:28666)
    at ZoneDelegate.invoke (zone.js:371)
    at Zone.run (zone.js:134)
    at zone.js:1276
    at ZoneDelegate.invokeTask (zone.js:406)
    at Object.onInvokeTask (core.js:28653)
    at ZoneDelegate.invokeTask (zone.js:405)
    at Zone.runTask (zone.js:178)
    at drainMicroTaskQueue (zone.js:582)
    at resolvePromise (zone.js:1213)
    at new ZoneAwarePromise (zone.js:1390)
    at __awaiter (/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:3950)
    at SerialSession.destroy (/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:4292)
    at /Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:4249
    at ZoneDelegate.invoke (zone.js:372)
    at Object.onInvoke (core.js:28666)
    at ZoneDelegate.invoke (zone.js:371)
    at Zone.run (zone.js:134)
    at NgZone.run (core.js:28520)
    at SerialPort.<anonymous> (/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:4242)
    at SerialPort.emit (node:events:394)
    at SerialPort._error (/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:1871)
    at /Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-serial/dist/index.js:1913
    at ZoneDelegate.invoke (zone.js:372)
    at Object.onInvoke (core.js:28666)
    at ZoneDelegate.invoke (zone.js:371)
    at Zone.run (zone.js:134)
    at zone.js:1276
    at ZoneDelegate.invokeTask (zone.js:406)
    at Object.onInvokeTask (core.js:28653)
    at ZoneDelegate.invokeTask (zone.js:405)
    at Zone.runTask (zone.js:178)
    at drainMicroTaskQueue (zone.js:582)
defaultErrorLogger @ core.js:6456
/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-terminal/dist/index.js:7973 Color: null is invalid using fallback #000000
e._parseColor @ /Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-terminal/dist/index.js:7973
undefined:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
2/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-core/dist/index.js:17440 [local] Destroying
undefined:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-terminal/dist/index.js:7973 Color: null is invalid using fallback #000000
e._parseColor @ /Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-terminal/dist/index.js:7973
/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-core/dist/index.js:17440 [local] Destroying
DevTools failed to load source map: Could not parse content for file:///Applications/Tabby.app/Contents/Resources/app.asar.unpacked/assets/webpack/index.js.map: Unexpected end of JSON input
DevTools failed to load source map: Could not parse content for file:///Applications/Tabby.app/Contents/Resources/app.asar/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js.map: Unexpected end of JSON input
DevTools failed to load source map: Could not parse content for file:///Applications/Tabby.app/Contents/Resources/app.asar/node_modules/@angular/cdk/bundles/cdk-drag-drop.umd.js.map: Unexpected end of JSON input
DevTools failed to load source map: Could not parse content for file:///Applications/Tabby.app/Contents/Resources/app.asar/node_modules/@angular/cdk/bundles/cdk-platform.umd.js.map: Unexpected end of JSON input
DevTools failed to load source map: Could not parse content for file:///Applications/Tabby.app/Contents/Resources/app.asar/node_modules/@angular/cdk/bundles/cdk-coercion.umd.js.map: Unexpected end of JSON input
DevTools failed to load source map: Could not parse content for file:///Applications/Tabby.app/Contents/Resources/app.asar/node_modules/@angular/cdk/bundles/cdk-bidi.umd.js.map: Unexpected end of JSON input
DevTools failed to load source map: Could not parse content for file:///Applications/Tabby.app/Contents/Resources/app.asar/node_modules/@angular/cdk/bundles/cdk-a11y.umd.js.map: Unexpected end of JSON input
DevTools failed to load source map: Could not parse content for file:///Applications/Tabby.app/Contents/Resources/app.asar/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.js.map: Unexpected end of JSON input
DevTools failed to load source map: Could not parse content for file:///Applications/Tabby.app/Contents/Resources/app.asar/node_modules/@angular/cdk/bundles/cdk-collections.umd.js.map: Unexpected end of JSON input
DevTools failed to load source map: Could not parse content for file:///Applications/Tabby.app/Contents/Resources/app.asar/node_modules/@angular/cdk/bundles/cdk-observers.umd.js.map: Unexpected end of JSON input
10DevTools failed to load source map: Could not parse content for file:///Applications/Tabby.app/Contents/Resources/app.asar.unpacked/assets/webpack/index.js.map: Unexpected end of JSON input
4dae7eacbecb691d7ec8.otf:1 GET file:///Applications/Tabby.app/Contents/Resources/app.asar/dist/4dae7eacbecb691d7ec8.otf net::ERR_FILE_NOT_FOUND
undefined:1 GET file:///Applications/Tabby.app/Contents/Resources/app.asar/dist/undefined net::ERR_FILE_NOT_FOUND
undefined:1 GET file:///Applications/Tabby.app/Contents/Resources/app.asar/dist/undefined net::ERR_FILE_NOT_FOUND
undefined:1 GET file:///Applications/Tabby.app/Contents/Resources/app.asar/dist/undefined net::ERR_FILE_NOT_FOUND
3/Applications/Tabby.app/Contents/Resources/builtin-plugins/tabby-terminal/dist/index.js:7973 Color: null is invalid using fallback #000000
Seriox commented 2 years ago

Hi! I'm having the same issue. My config looks like this:

Using Tabby 1.0.170.

Opening the tab works fine. After pressing Enter twice both commands get succesfully executed.

And this may be a bit offtopic but I haven't found any information about this: Is it possible to open a new Tab and split it? In Tabby you can split a Tab with "Ctrl+E" or "Ctrl+D". (So you got multiple Panes in a single Tab) It would be great if it's possible to create a workspace, with a single Tab and splitted horizontally/vertically. Thank you! Great Plugin so far!

Fronix commented 2 years ago

Hi! I'm having the same issue. My config looks like this:

Using Tabby 1.0.170.

Opening the tab works fine. After pressing Enter twice both commands get succesfully executed.

And this may be a bit offtopic but I haven't found any information about this: Is it possible to open a new Tab and split it? In Tabby you can split a Tab with "Ctrl+E" or "Ctrl+D". (So you got multiple Panes in a single Tab) It would be great if it's possible to create a workspace, with a single Tab and splitted horizontally/vertically. Thank you! Great Plugin so far!

I'm also looking for split tab functionality

amanuel-hailu commented 2 years ago

Hi! I'm having the same issue. My config looks like this:

Using Tabby 1.0.170.

Opening the tab works fine. After pressing Enter twice both commands get succesfully executed.

And this may be a bit offtopic but I haven't found any information about this: Is it possible to open a new Tab and split it? In Tabby you can split a Tab with "Ctrl+E" or "Ctrl+D". (So you got multiple Panes in a single Tab) It would be great if it's possible to create a workspace, with a single Tab and splitted horizontally/vertically. Thank you! Great Plugin so far!

Amazing tool overall, but having the same issue as mentioned above. The newly opened workspaces require the ENTER key to load all the commands and the tab name defined in the config. Thank you for this amazing plugin, and please fix this when you can!

BlueInt32 commented 2 years ago

I have this issue too and it started happening while starting to use the plugin on Ubuntu 22.04. I have been using the same workspace configs for months on Windows 10 without any issue.

After looking at the code, it seems that in the buildWorkspace function, subscribing to activity$ does not trigger anything before any keyboard action on the current tab. I was looking at something like opened$ but it does not seem to exist in tabby-core. The focused$ event seems to be working, as long as we unsubscribe directly in the callback before setting the setTimeout. I did not test it on Windows though:

    /**
     * Description. Builds workspace based on a given configuration. Opens tabs and customises them using the given values
     * @param config The workspace config.
     */
    async buildWorkspace(config: TabConfig[]): Promise<void> {
        if (config) {
            const profiles = await this.profileService.getProfiles();
            for (const element of config) {
                const selectedProfile = this.findTerminalProfile(profiles, element);
                const tab = (await this.profileService.openNewTabForProfile(
                    selectedProfile,
                )) as BaseTerminalTabComponent;

                const subscription = tab.focused$.subscribe(() => {
                    subscription.unsubscribe();
                    setTimeout(() => {
                        this.customizeTab(tab, element);
                    }, 50);
                });
            }
        }
    }