Skip to content

Using different shortcuts / keybinds / keymaps set in different profiles #18601

Closed

Description

@repackage8650

Description of the new feature

I have seen that there are demands for switching shrotcuts / keybinds / keymaps sets in #9301 and #15277, which I think this is because people are used to different shrotcuts / keybinds / keymaps when working in different profiles, so that I think it would be an effective solution if the shrotcuts / keybinds / keymaps set can be specified in the profile.

Proposed technical implementation details

A simple and specific idea is as follows: move the current actions options to the default profile as default actions, and allow each profile to override the default actions, such as overriding unnecessary actions to null or adding keybinds for new actions.
The new settings.json will look like this:

{
    ...,
    "actions": 
    [
        {
             "command": "ACommandName",
             "id": "User.a" 
        },
        {
             "command": "BCommandName",
             "id": "User.b" 
        },
        {
             "command": "CCommandName",
             "id": "User.c" 
        },
        {
             "command": "DCommandName",
             "id": "User.d" 
        },
        ...
    ],
    ...,
    "profiles": 
    {
        "defaults": 
        {
            ...,
            "keybinds": 
            [
                {
                    "id": "User.a",
                    "keys": 
                    [
                        "ctrl+a"
                    ]
                },
                ...
            ]
        },
        "list": 
        [
            {
                "commandline": "%ProgramFiles%\\Neovim\\bin\\nvim.exe",
                "guid": "{00000000-0000-0000-0000-000000000000}",
                "hidden": false,
                "icon": "%ProgramFiles%\\Neovim\\bin\\neovim.png",
                "name": "Neovim",
                "keybinds": 
                [
                    {
                        "id": null,
                        "keys": 
                        [
                            "ctrl+a"
                        ]
                    },
                    ...,
                    {
                        "id": "User.b",
                        "keys": 
                        [
                            "ctrl+b"
                        ]
                    },
                    ...
                ]
            },
            {
                "commandline": "%ProgramFiles%\\Git\\bin\\bash.exe",
                "guid": "{00000000-0000-0000-0000-000000000000}",
                "hidden": false,
                "icon": "%ProgramFiles%\\Git\\git-bash.exe",
                "name": "Git Bash",
                "keybinds": 
                [
                    {
                        "id": null,
                        "keys": 
                        [
                            "ctrl+a"
                        ]
                    },
                    ...,
                    {
                        "id": "User.c",
                        "keys": 
                        [
                            "ctrl+c"
                        ]
                    },
                    ...
                ]
            },
            {
                "commandline": "%ProgramFiles%\\PowerShell\\7\\pwsh.exe",
                "guid": "{00000000-0000-0000-0000-000000000000}",
                "hidden": false,
                "name": "PowerShell",
                "source": "Windows.Terminal.PowershellCore",
                "keybinds": 
                [
                    {
                        "id": null,
                        "keys": 
                        [
                            "ctrl+a"
                        ]
                    },
                    ...,
                    {
                        "id": "User.d",
                        "keys": 
                        [
                            "ctrl+d"
                        ]
                    },
                    ...
                ]
            },
            ...
        ]
    },
    ...
}

Activity

  1. added
    Issue-FeatureComplex enough to require an in depth planning process and actual budgeted, scheduled work.
    on Feb 20, 2025
  2. added
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    Needs-Tag-FixDoesn't match tag requirements
    on Feb 20, 2025
  3. changed the title [-]Using different shrotcuts / keybinds / keymaps in different profiles[/-] [+]Using different shortcuts / keybinds / keymaps set in different profiles[/+] on Feb 20, 2025
  4. zadjii-msft commented on Feb 24, 2025

    @zadjii-msft
    Member

    Thanks for the suggestion! This is actually already being tracked by another issue on our repo - please refer to #5790 for more discussion.

    /dup #5790

  5. microsoft-github-policy-service commented on Feb 24, 2025

    @microsoft-github-policy-service
    Contributor

    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!

  6. added
    Resolution-DuplicateThere's another issue on the tracker that's pretty much the same thing.
    and removed
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    Needs-Tag-FixDoesn't match tag requirements
    on Feb 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue-FeatureComplex enough to require an in depth planning process and actual budgeted, scheduled work.Resolution-DuplicateThere's another issue on the tracker that's pretty much the same thing.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions