Skip to content

Instantly share code, notes, and snippets.

@phizaz
Last active February 24, 2017 14:25
Show Gist options
  • Save phizaz/f6d32456cd4c592762a90089d642aa9d to your computer and use it in GitHub Desktop.
Save phizaz/f6d32456cd4c592762a90089d642aa9d to your computer and use it in GitHub Desktop.
My AutoHotKey (Dvorak + previous Mac User)
#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