Multiple quake mode windows, each with its own profile #13963

Closed
opened 2026-01-31 03:57:08 +00:00 by claunia · 14 comments
Owner

Originally created by @cerebrate on GitHub (May 26, 2021).

Description of the new feature/enhancement

I use WSL and PowerShell commands, and thus terminal windows, with approximately equal frequency. Depending on how I set up my default profile, I can get quick access to one of these via the quake window, but not the other.

Ideally, I should like to be able to set up multiple quake mode windows, each with its own keybinding, such that for example ctrl+ would summon a quake mode window containing my PowerShell command line, while alt+ would summon one likewise with my zsh/Debian/WSL command line.

Originally created by @cerebrate on GitHub (May 26, 2021). # Description of the new feature/enhancement I use WSL and PowerShell commands, and thus terminal windows, with approximately equal frequency. Depending on how I set up my default profile, I can get quick access to one of these via the quake window, but not the other. Ideally, I should like to be able to set up multiple quake mode windows, each with its own keybinding, such that for example ctrl+` would summon a quake mode window containing my PowerShell command line, while alt+` would summon one likewise with my zsh/Debian/WSL command line.
claunia added the Issue-FeatureResolution-Duplicate labels 2026-01-31 03:57:08 +00:00
Author
Owner

@DHowett commented on GitHub (May 26, 2021):

So! This is where it gets a little crazy. quakeMode is actually a specialized version of an action we've called globalSummon! It's a lot more flexible than quake mode -- you can summon any named Terminal window with a few different display options.

Right now, the only window that gets the dropdown + anchored to the top behavior is the one that's named _quake, so there is a bit of a blind spot. We're tracking additional work on globalSummon to make it more robust for cases like these, though.

Does that help?

@DHowett commented on GitHub (May 26, 2021): So! This is where it gets a little crazy. `quakeMode` is actually a specialized version of an action we've called [`globalSummon`](https://docs.microsoft.com/en-us/windows/terminal/customize-settings/actions#global-summon-preview)! It's a lot more flexible than quake mode -- you can summon any named Terminal window with a few different display options. Right now, the only window that gets the dropdown + anchored to the top behavior is the one that's named `_quake`, so there is a bit of a blind spot. We're tracking additional work on globalSummon to make it more robust for cases like these, though. Does that help?
Author
Owner

@KamQb commented on GitHub (May 27, 2021):

Not the solution but you can still split quake window and have two panes

@KamQb commented on GitHub (May 27, 2021): Not the solution but you can still split quake window and have two panes
Author
Owner

@ascarter commented on GitHub (May 27, 2021):

Seems like quake should be a style you can set for the globalSummon and that would give the flexibility to have as many linked to whatever key combo you wanted. Does globalSummon support custom styling? I normally don't want to turn on any opacity but I would use it for the quake-style dropdown.

@ascarter commented on GitHub (May 27, 2021): Seems like `quake` should be a style you can set for the `globalSummon` and that would give the flexibility to have as many linked to whatever key combo you wanted. Does `globalSummon` support custom styling? I normally don't want to turn on any opacity but I would use it for the quake-style dropdown.
Author
Owner

@deoradh commented on GitHub (May 30, 2021):

IIRC it's not simply styling -- there's exclusion from the task list, etc that falls into the quake mode behavior.

But I, too, would like to have something decoupling the mode from the window name. I'm envisioning not just a command shell, but also a quick, docked scratchpad for notes (sticky notes just don't work as well as I'd like), maybe a CAS calculator (eg, Julia or xcas CLIs) -- basically quick, keyboard-driven utilities. For org-mode afficionados, it could be a great fit as well.

I do notice that I can still pop up different profiles and switch between them (as toggling focus mode will show), so perhaps it's just a matter of "summon the _quake window and cause it to switch to a named tab" -- but that begs named tabs. I might write a feature request around that...

https://github.com/microsoft/terminal/issues/10279

@deoradh commented on GitHub (May 30, 2021): IIRC it's not simply styling -- there's exclusion from the task list, etc that falls into the quake mode behavior. But I, too, would like to have something decoupling the mode from the window name. I'm envisioning not just a command shell, but also a quick, docked scratchpad for notes (sticky notes just don't work as well as I'd like), maybe a CAS calculator (eg, Julia or xcas CLIs) -- basically quick, keyboard-driven utilities. For org-mode afficionados, it could be a great fit as well. I do notice that I can still pop up different profiles and switch between them (as toggling focus mode will show), so perhaps it's just a matter of "summon the _quake window and cause it to switch to a named tab" -- but that begs named tabs. I might write a feature request around that... https://github.com/microsoft/terminal/issues/10279
Author
Owner

@dag03tsc commented on GitHub (May 31, 2021):

I know it's not exactly as dynamic as you need but here's a pretty useful alternative I've created for a similar purpose.

This is the keybinding I use.

{
    "command": "unbound",
    "keys": "win+`"
},
{
    "command": 
    {
        "action": "globalSummon",
        "desktop": "toCurrent",
        "dropdownDuration": 200,
        "monitor": "toMouse",
        "name": "_quake",
        "toggleVisibility": true
    },
    "keys": "win+`"
},

Aiming to your needs (PWSH & WSL), I suggest you to select PWSH as your default profile and add the next line inside the settings.json file:

"startupActions": "wt -w _quake sp -V -p $PROFILE$ -s .5"

Make sure to replace $PROFILE$ with the name of the profile you want to launch on the right pane, whichever it is.
You can do this with the default WSL profile, as well as any other profile available.

And, of course, you can write any subcommand or parameter you'd like.
Have a look at https://github.com/microsoft/terminal/issues/9992#issuecomment-851093521 for further behavior customization.

@dag03tsc commented on GitHub (May 31, 2021): I know it's not exactly as dynamic as you need but here's a pretty useful alternative I've created for a similar purpose. This is the keybinding I use. { "command": "unbound", "keys": "win+`" }, { "command": { "action": "globalSummon", "desktop": "toCurrent", "dropdownDuration": 200, "monitor": "toMouse", "name": "_quake", "toggleVisibility": true }, "keys": "win+`" }, Aiming to your needs (PWSH & WSL), I suggest you to select PWSH as your default profile and add the next line inside the `settings.json` file: `"startupActions": "wt -w _quake sp -V -p $PROFILE$ -s .5"` Make sure to replace `$PROFILE$` with the name of the profile you want to launch on the right pane, whichever it is. You can do this with the default WSL profile, as well as any other profile available. And, of course, you can write any subcommand or parameter you'd like. Have a look at https://github.com/microsoft/terminal/issues/9992#issuecomment-851093521 for further behavior customization.
Author
Owner

@deoradh commented on GitHub (May 31, 2021):

I know it's not exactly as dynamic as you need but here's a pretty useful alternative I've created for a similar purpose.

I'm not seeing how your binding addresses the (pretty central) desire to have different profiles summonable?

@deoradh commented on GitHub (May 31, 2021): > I know it's not exactly as dynamic as you need but here's a pretty useful alternative I've created for a similar purpose. I'm not seeing how your binding addresses the (pretty central) desire to have different profiles summonable?
Author
Owner

@dag03tsc commented on GitHub (May 31, 2021):

I'm not seeing how your binding addresses the (pretty central) desire to have different profiles summonable?

That's the reason I said it's not as dynamic as required, but it's an alternative to what @cerebrate asked for. It states:

I use WSL and PowerShell commands, and thus terminal windows, with approximately equal frequency. Depending on how I set up my default profile, I can get quick access to one of these via the quake window, but not the other.

The alternative allows to launch any panes or tabs as wanted, as well as any profile, Quake Mode included.

Combined with the auto startup, it enables the auto load of a customized _quake window as fluent and transparent as it can be at the current stage of development.

Despite having hidden header, tabs actually work right now within the _quake window, so do the tab switcher and all keybindings. The alternative uses panes 'cause I like them more but it's only a personal preference.

Then it states:

Ideally, I should like to be able to set up multiple quake mode windows, each with its own keybinding, such that for example ctrl+ would summon a quake mode window containing my PowerShell command line, while alt+ would summon one likewise with my zsh/Debian/WSL command line.

I see what @cerebrate proposed and I agree it'd be a useful feature but the alternative enables a similar behavior when using tabs (nt) instead of panes (sp) in the startupActions subcommands, only two keybinding ahead instead of one; one to toggle the visibility and one to toggle the tab. Sometimes maybe only the visibility one if the needed tab is already selected.

I'm not trying to close the proposal but to provide a useful temporary alternative while we wait for an official feature announcement.

@dag03tsc commented on GitHub (May 31, 2021): > I'm not seeing how your binding addresses the (pretty central) desire to have different profiles summonable? That's the reason I said it's not as dynamic as required, but it's an alternative to what @cerebrate asked for. It states: > I use WSL and PowerShell commands, and thus terminal windows, with approximately equal frequency. Depending on how I set up my default profile, I can get quick access to one of these via the quake window, but not the other. The alternative allows to launch any panes or tabs as wanted, as well as any profile, Quake Mode included. Combined with the auto startup, it enables the auto load of a customized `_quake` window as fluent and transparent as it can be at the current stage of development. Despite having hidden header, tabs actually work right now within the `_quake` window, so do the tab switcher and all keybindings. The alternative uses panes 'cause I like them more but it's only a personal preference. Then it states: > Ideally, I should like to be able to set up multiple quake mode windows, each with its own keybinding, such that for example ctrl+ would summon a quake mode window containing my PowerShell command line, while alt+ would summon one likewise with my zsh/Debian/WSL command line. I see what @cerebrate proposed and I agree it'd be a useful feature but the alternative enables a similar behavior when using tabs (`nt`) instead of panes (`sp`) in the `startupActions` subcommands, only two keybinding ahead instead of one; one to toggle the visibility and one to toggle the tab. Sometimes maybe only the visibility one if the needed tab is already selected. I'm not trying to close the proposal but to provide a useful temporary alternative while we wait for an official feature announcement.
Author
Owner

@ghost commented on GitHub (Jun 5, 2021):

This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for 4 days. It will be closed if no further activity occurs within 3 days of this comment.

@ghost commented on GitHub (Jun 5, 2021): This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for **4 days**. It will be closed if no further activity occurs **within 3 days of this comment**.
Author
Owner

@cerebrate commented on GitHub (Jun 7, 2021):

So! This is where it gets a little crazy. quakeMode is actually a specialized version of an action we've called globalSummon! It's a lot more flexible than quake mode -- you can summon any named Terminal window with a few different display options.

Right now, the only window that gets the dropdown + anchored to the top behavior is the one that's named _quake, so there is a bit of a blind spot. We're tracking additional work on globalSummon to make it more robust for cases like these, though.

Does that help?

Partially? Depending, I suppose, on the specific additions to globalSummon.

I've actually being playing around a fair bit with globalSummon (hence, partially, this delayed response while I try to figure out what is possible). While I can make some useful shortcuts for summoning existing windows with it, the chief issue I'm having there is the creation of named windows that don't exist, because unless I'm missing something, there doesn't seem to be a way to specify a profile to use when creating a window. I can work around this by precreating windows using startupActions , but it's still not the most elegant approach.

But the specific dropdown/anchoring features of the _quake window are useful enough in and of themselves that being able to add these to other named windows, like these custom globalSummons, would still be very desirable for me.

@cerebrate commented on GitHub (Jun 7, 2021): > So! This is where it gets a little crazy. `quakeMode` is actually a specialized version of an action we've called [`globalSummon`](https://docs.microsoft.com/en-us/windows/terminal/customize-settings/actions#global-summon-preview)! It's a lot more flexible than quake mode -- you can summon any named Terminal window with a few different display options. > > Right now, the only window that gets the dropdown + anchored to the top behavior is the one that's named `_quake`, so there is a bit of a blind spot. We're tracking additional work on globalSummon to make it more robust for cases like these, though. > > Does that help? Partially? Depending, I suppose, on the specific additions to globalSummon. I've actually being playing around a fair bit with globalSummon (hence, partially, this delayed response while I try to figure out what is possible). While I can make some useful shortcuts for summoning existing windows with it, the chief issue I'm having there is the creation of named windows that don't exist, because unless I'm missing something, there doesn't seem to be a way to specify a profile to use when creating a window. I can work around this by precreating windows using _startupActions_ , but it's still not the most elegant approach. But the specific dropdown/anchoring features of the _quake window are useful enough in and of themselves that being able to add these to other named windows, like these custom globalSummons, would still be very desirable for me.
Author
Owner

@cerebrate commented on GitHub (Jun 7, 2021):

@dag03tsc I like that! As an interim solution, I'll definitely be using it for now.

@cerebrate commented on GitHub (Jun 7, 2021): @dag03tsc I like that! As an interim solution, I'll definitely be using it for now.
Author
Owner

@cerebrate commented on GitHub (Jun 7, 2021):

As a further note, while I have not yet had time to look at them in detail, the various suggestions to have "hidden" tabs within the _quake window and be able to bring a particular one to the forefront when switching to it would also seem to satisfy my use case.

Actually, I'd also very much like to have that ability just for globalSummon , because being able to specify a particular tab to being forward when summoning a window (even by simple criteria not requiring additional data to be kept, like "the MRU tab for this profile", would add a great deal of value.

@cerebrate commented on GitHub (Jun 7, 2021): As a further note, while I have not yet had time to look at them in detail, the various suggestions to have "hidden" tabs within the _quake window and be able to bring a particular one to the forefront when switching to it would also seem to satisfy my use case. Actually, I'd also very much like to have that ability just for _globalSummon_ , because being able to specify a particular tab to being forward when summoning a window (even by simple criteria not requiring additional data to be kept, like "the MRU tab _for this profile_", would add a great deal of value.
Author
Owner

@cerebrate commented on GitHub (Jun 30, 2021):

As a further further note, I'm using a Power Automate Desktop routine to handle setting this up these days:

image

@cerebrate commented on GitHub (Jun 30, 2021): As a further further note, I'm using a Power Automate Desktop routine to handle setting this up these days: ![image](https://user-images.githubusercontent.com/371623/123901502-abdd5980-d930-11eb-99a9-ddc433c2d554.png)
Author
Owner

@zadjii-msft commented on GitHub (Jul 7, 2021):

Okay, after reading through this, this does seem like another case where #9992 will be the magic bullet. With that, you could give different window names different startupActions, or even different defaultProfiles, and then have different globalSummon actions to summon each of those possible names.

Thanks for the discussion everyone!

/dup #9992

@zadjii-msft commented on GitHub (Jul 7, 2021): Okay, after reading through this, this does seem like another case where #9992 will be the magic bullet. With that, you could give different window names different `startupActions`, or even different `defaultProfile`s, and then have different `globalSummon` actions to summon each of those possible names. Thanks for the discussion everyone! /dup #9992
Author
Owner

@ghost commented on GitHub (Jul 7, 2021):

Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!

@ghost commented on GitHub (Jul 7, 2021): Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#13963