Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
repackage8650 opened this issue Feb 20, 2025 · 0 comments
Open
Labels
Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Needs-Tag-Fix Doesn't match tag requirements Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting

Comments

@repackage8650
Copy link

repackage8650 commented Feb 20, 2025

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"
                        ]
                    },
                    ...
                ]
            },
            ...
        ]
    },
    ...
}
@repackage8650 repackage8650 added the Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. label Feb 20, 2025
@microsoft-github-policy-service microsoft-github-policy-service bot added Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting Needs-Tag-Fix Doesn't match tag requirements labels Feb 20, 2025
@repackage8650 repackage8650 changed the title Using different shrotcuts / keybinds / keymaps in different profiles Using different shortcuts / keybinds / keymaps set in different profiles Feb 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Needs-Tag-Fix Doesn't match tag requirements Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting
Projects
None yet
Development

No branches or pull requests

1 participant