1. Briefly
I want to disable only some Windows 10 default global hotkeys, to use this hotkeys for run Sublime Text commands.
2. Detail
I have Windows 32-bit 10.0.14393. In Windows 10 we have many native hotkeys.
1. I want to disable
For example, I want to disable custom hotkeys, Win+K, Win+H and Ctrl+Win+P.
2. I don't want to disable
But, for example, I don't want to disable Win+D and Win+R hotkeys. I often use these hotkeys.
3. Sublime Text keymap part
{
"keys": ["super+k"],
"command": "paste"
},
3. Did not help
1. AutoHotkey Override
My code:
#k::return
Win+K global hotkey is disabled for me, but my Sublime Text command paste doesn't run too.
2. AutoHotkey overwrite global Windows hotkeys to hotkey of application
My code:
#IfWinActive ahk_class PX_WINDOW_CLASS
$#2::ControlSend, ahk_parent, % SubStr(A_ThisHotkey, 2)
#IfWinActive
It is worked for me, but I have bugs, for example:

For other hotkeys I have bugs too. It would be nice if someone will improve this code.
3. SharpKeys
SharpKeys program can disable or reassign Win key, but I don't want this.
4. gpedit.msc
I can disable some default hotkeys, but:
- I can not disable (using gpedit.msc), for example, Win+K, Win+H and Ctrl+Win+P.
- I can disable Win+D and Win+R, but I want to use this hotkeys.
5. Simple disable key
I download Simple disable key → I disable Win+K in program → I restart Windows → Win+K is not disabled for me.
6. DisabledHotkeys parameter in Windows Registry
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
I create string parameter DisableHotkeys with value KHPE.

Win+E, for example, is disabled for me, but
- Win+P, Win+K and Win+H are not disabled.
- This method is not for disabling, for example, Ctrl+Win+P and Ctrl+Win+F4.
4. Do not offer
Answer
You could use Autohotkey for remap any hotkey to send another hotkey using Send command:
#k::
Send {WIN up}
Send {k up}
Send ^+p
return
After this pressing Win+K will send a Ctrl+Shift+P which will show Command Palette in Sublime Text, you can use this way to override any hotkey to send another hotkey, set it to something like Ctrl+Shift+F3 and assign that hotkey to Sublime Text's paste(in keybindings) and then use Win+K to send that Ctrl+Shift+F3 to Sublime Text which will call paste.
AutoHotkey script:
#k::
Send {WIN up}
Send {K up}
Send !^+{F3}
return
Sublime Text keybindings:
{ "keys": ["ctrl+alt+shift+f3"], "command": "paste" }
Edit:
Seen your Please, don't offer AutoHotkey shortcuts redirect to other shortcuts. why not? Above example works even for Win+R:
#r::
Send {WIN up}
Send {r up}
Send !^+{F3}
return
Text successfully pasted through Win+R in Sublime Text.
Edit 2:
If you really like to assign real hotkeys you could disable all Win+{KEY} hotkeys, and then create your hotkeys which will do same as default Win+{Key} hotkeys, and for another hotkeys assign your own actions.
For example for Win+R:
explorer.exe Shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}
Works, but for some hotkey its hard to find how to call their actions.
No comments:
Post a Comment