ℹ️ There is a newer alternative project that does similar things and more, check it out at https://github.com/stevenilsen123/mac-keyboard-behavior-in-windows
Make Windows PC's shortcut act like macOS (Mac OS X) (using AutoHotkey (ahk) script)
With this AutoHotKey script, you can use most macOS style shortcuts (eg, cmd+c, cmd+v, ...) on Windows with a standard PC keyboard.
Here's some examples of how this script work:
you want to press | what you're actually pressing | AutoHotKey tells Windows |
---|---|---|
cmd + c | alt + c | ctrl + c |
cmd + v | alt + v | ctrl + v |
cmd + r | alt + r | F5 |
cmd + ↑ | alt + ↑ | Home |
cmd + shift + [ | alt + shift + [ | ctrl + shift + Tab |
... | ... | ... |
Note that:
- you shouldn't change the modifier keys mapping with keyboard DIP. This script assumes you (1) use a PC keyboard on Mac and have swapped [cmd] and [option] keys via Mac system preferences (2) you are familiar with mac shortcuts in macs (3) you want to use the PC keyboard and mac-style shortcuts on PC.
- To use
cmd + shift + ↑ / ↓ / ← / →
(select text between cursor and top / bottom / beginning of line / end of line), You should disable theBetween input languages
shotcut fromControl Panel\Clock, Language, and Region\Language\Advanced settings > Change lanugage bar hot keys
due to conflicting. - Some Windows built-in keyboard shortcuts will be overridden. For example:
win + ↑ / ↓ / ← / →
(snap window to side). Changemac.ahk
accordingly if you prefer to keep the default behavior.
- Install https://www.autohotkey.com/
- Copy and save the content of
mac.ahk
in a text file, named asmac.ahk
- Double click on
mac.ahk
file
Complete the step of "To Run Once" section first.
Place mac.ahk
file (or make a shortcut) at C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
@ascendbruce, dear, do you know how I can create the move forward/ redo shortcut.
It is not working on Microsoft office programs.
here is my script:
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
; Docs:
; https://autohotkey.com/docs/Hotkeys.htm
; https://autohotkey.com/docs/KeyList.htm
; Ref https://autohotkey.com/board/topic/60675-osx-style-command-keys-in-windows/
; You need to disable "Between input languages" shotcut from Control Panel\Clock, Language, and Region\Language\Advanced settings > Change lanugage bar hot keys
; Universal shotcuts
^q::!F4
#q::!F4
$!x::Send ^x
$!c::Send ^c
$!v::Send ^v
$!s::Send ^s
$!a::Send ^a
$!z::Send ^z
$!+z::Send ^y
$!w::Send ^w
$!f::Send ^f
$!n::Send ^n
$!q::Send !{f4}
$!r::Send ^{f5}
$!m::Send {LWin Down}{Down}{LWin Up}
$!`::Send {Alt Down}{Shift Down}{Tab}{Shift Up}
; Quick Switch Tab shotcuts
$!1::Send ^1
$!2::Send ^2
$!3::Send ^3
$!4::Send ^4
$!5::Send ^5
$!6::Send ^6
$!7::Send ^7
$!8::Send ^8
$!9::Send ^9
$!0::Send ^0
; Chrome shotcuts
$!t::Send ^t
$!+t::Send ^+t
$!+]::Send {Ctrl Down}{Tab Down}{Tab Up}{Ctrl Up}
$!+[::Send {Ctrl Down}{Shift Down}{Tab Down}{Tab Up}{Shift Up}{Ctrl Up}
$!l::Send ^l
; input methods
; $+,::Send ^,
; $+.::Send ^.
; navigation, selection, delete a word/till end
$!Left::Send {Home}
$!Right::Send {End}
$!Up::Send {Lctrl down}{Home}{Lctrl up}
$!Down::Send {Lctrl down}{End}{Lctrl up}
$#Left::Send {ctrl down}{Left}{ctrl up}
$#Right::Send {ctrl down}{Right}{ctrl up}
$#+Left::Send {ctrl down}{shift down}{Left}{shift up}{ctrl up}
$#+Right::Send {ctrl down}{shift down}{Right}{shift up}{ctrl up}
$!+Left::Send {shift down}{Home}{shift up}
$!+Right::Send {shift down}{End}{shift up}
$!+Up::Send {Ctrl Down}{shift down}{Home}{shift up}{Ctrl Up}
$!+Down::Send {Ctrl Down}{shift down}{End}{shift up}{Ctrl Up}
!BS::Send {LShift down}{Home}{LShift Up}{Del}
#BS::Send {LCtrl down}{BS}{LCtrl up}
$#Space::Send {Ctrl Down}{LWin Down}{Space}{LWin Up}{Ctrl Up}
^space:: Send ^{esc}
LControl & Tab::AltTab
; Google Search highlighted text
^+c::
{
Send, ^c
Sleep 50
Run, http://www.google.com/search?q=%clipboard%
Return
}
; Press ~ to move up a folder in Explorer
#IfWinActive, ahk_class CabinetWClass
`::Send !{Up}
#IfWinActive
return
; Empty trash
^del::FileRecycleEmpty ; win + del
return
Capslock::
Send {LWin down}{Space down}
KeyWait, LWin
Send {Space up}{Lwin up}
return
^h::WinMinimize, A ; Ctrl+Down
return
F13::
Send {F2}
return
^F19::
DllCall("PowrProf\SetSuspendState", "int", 0, "int", 0, "int", 0)
Return
#^1::¡
#^+1::/
#^2::€
#^+2::™
#^3::£
#^+3::‹
#^4::¢
#^+4::›
#^5::∞
#^6::§
#^+6::fl
#^7::¶
#^+7::‡
#^8::•
#^+8::°
return
Any suggestions to solve that?
Thanks!