Last active
February 24, 2017 14:25
-
-
Save phizaz/f6d32456cd4c592762a90089d642aa9d to your computer and use it in GitHub Desktop.
My AutoHotKey (Dvorak + previous Mac User)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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. | |
#MaxHotkeysPerInterval 200 | |
; Capslock + jkli (left, down, up, right) | |
#InstallKeybdHook | |
#UseHook On | |
; KeyHistory ; in case you wanna know what keys you typed | |
#Persistent | |
SetCapsLockState, AlwaysOff | |
CapsLock:: ; CapsLock | |
+CapsLock:: ; Shift+CapsLock | |
!CapsLock:: ; Alt+CapsLock | |
^CapsLock:: ; Ctrl+CapsLock | |
#CapsLock:: ; Win+CapsLock | |
^!CapsLock:: ; Ctrl+Alt+CapsLock | |
^!#CapsLock:: ; Ctrl+Alt+Win+CapsLock | |
return | |
Capslock & sc024::send {Blind}{Left DownTemp} | |
Capslock & sc024 up::send {Blind}{Left Up} | |
Capslock & sc025::send {Blind}{Down DownTemp} | |
Capslock & sc025 up::send {Blind}{Down Up} | |
Capslock & sc017::send {Blind}{Up DownTemp} | |
Capslock & sc017 up::send {Blind}{Up Up} | |
Capslock & sc026::send {Blind}{Right DownTemp} | |
Capslock & sc026 up::send {Blind}{Right Up} | |
CapsLock & LButton::send {RButton} | |
; right click using keyboard | |
CapsLock & Enter::send +{f10} | |
; after we use the keytweak ctrl and alt has been switched | |
; use KeyTweak to swap alt and ctrl, at the lower level | |
AltPressed() { | |
return GetKeyState("alt", "p") OR GetKeyState("lalt", "p") OR GetKeyState("ralt", "p") | |
} | |
CtrlPressed() { | |
return GetKeyState("ctrl", "p") OR GetKeyState("lctrl", "p") OR GetKeyState("rctrl", "p") | |
} | |
; single key | |
; alt, ctrl are the actual alt on the keyboard (as printed) | |
OnlyCtrl() { | |
return AltPressed() AND !CtrlPressed() AND !GetKeyState("shift", "p") AND !IsAltTab() | |
} | |
OnlyAlt() { | |
return CtrlPressed() AND !AltPressed() AND !GetKeyState("shift", "p") AND !IsAltTab() | |
} | |
; two keys | |
OnlyCtrlAlt() { | |
return AltPressed() AND CtrlPressed() AND !GetKeyState("shift", "p") AND !IsAltTab() | |
} | |
OnlyAltShift() { | |
return CtrlPressed() AND GetKeyState("shift", "p") AND !AltPressed() AND !IsAltTab() | |
} | |
OnlyCtrlShift() { | |
return AltPressed() AND GetKeyState("shift", "p") AND !CtrlPressed() AND !IsAltTab() | |
} | |
; three keys | |
AllThree() { | |
return CtrlPressed() AND GetKeyState("shift", "p") AND AltPressed() AND !IsAltTab() | |
} | |
; simulate alt+tab | |
global altTabbing = 0 | |
IsAltTab() { | |
return altTabbing | |
} | |
#if OnlyAlt() | |
*tab:: | |
altTabbing = 1 | |
send {alt down}{tab} | |
return | |
#if IsAltTab() | |
~*ctrl up:: | |
send {alt up} | |
altTabbing = 0 | |
return | |
; alt + f4 closing window | |
#if OnlyAlt() | |
*f4::send !{f4} | |
; tab switching | |
#if OnlyAltShift() | |
*sc00D::send ^{tab} | |
#if OnlyAltShift() | |
*sc00C::send ^+{tab} | |
; forward and backward | |
#if OnlyAlt() | |
*sc00D::send !{right} | |
#if OnlyAlt() | |
*sc00C::send !{left} | |
; workspaces switching | |
; l | |
#if OnlyAltShift() | |
*sc019::send #^{Right} | |
; h | |
#if OnlyAltShift() | |
*sc024::send #^{Left} | |
; language switching | |
#if OnlyAlt() | |
*space::sendinput {ctrl up}{alt down}{shift}{alt up} ; note: {ctrl up} just to fix the bug from swapping crtl + alt | |
; mouse control | |
#LButton::send {RButton} | |
; curson control | |
#if OnlyAlt() AND !IsAltTab() | |
*Left::send {home} | |
#if OnlyAltShift() AND !IsAltTab() | |
*Left::send +{home} | |
#if OnlyAlt() AND !IsAltTab() | |
*Right::send {end} | |
#if OnlyAltShift() AND !IsAltTab() | |
*Right::send +{end} | |
#if OnlyCtrl() AND !IsAltTab() | |
*Left::send ^{left} | |
#if OnlyCtrlShift() AND !IsAltTab() | |
*Left::send ^+{left} | |
#if OnlyCtrl() AND !IsAltTab() | |
*right::send ^{right} | |
#if OnlyCtrlShift() AND !IsAltTab() | |
*right::send ^+{right} | |
; redo | |
; z | |
#if OnlyAltShift() | |
*sc035::send ^y |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment