Created
August 31, 2017 08:01
-
-
Save florianrusch/a5727edc7d2869a05a488899b6f0282c to your computer and use it in GitHub Desktop.
Script for AutoHotkey (https://autohotkey.com/) for Window Moving and some other keybindings
This file contains 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
; This script was inspired by and built on many like it | |
; in the forum. Thanks go out to ck, thinkstorm, Chris, | |
; and aurelian for a job well done. | |
; Change history: | |
; November 07, 2006: Optimized resizing code in !RButton, courtesy of bluedawn. | |
; February 05, 2006: Fixed double-alt (the ~Alt hotkey) to work with latest versions of AHK. | |
; The Double-Alt modifier is activated by pressing | |
; Alt twice, much like a double-click. Hold the second | |
; press down until you click. | |
; | |
; The shortcuts: | |
; Alt + Left Button : Drag to move a window. | |
; Alt + Right Button : Drag to resize a window. | |
; This is the setting that runs smoothest on my | |
; system. Depending on your video card and cpu | |
; power, you may want to raise or lower this value. | |
SetWinDelay,2 | |
CoordMode,Mouse | |
return | |
LWin & LButton:: | |
; Get the initial mouse position and window id, and | |
; abort if the window is maximized. | |
MouseGetPos,KDE_INIT_MOUSE_X,KDE_INIT_MOUSE_Y,KDE_id | |
WinGet,KDE_Win,MinMax,ahk_id %KDE_id% | |
If KDE_Win | |
return | |
; Get the initial window position. | |
WinGetPos,KDE_WinX1,KDE_WinY1,,,ahk_id %KDE_id% | |
Loop | |
{ | |
GetKeyState,KDE_Button,LButton,P ; Break if button has been released. | |
If KDE_Button = U | |
break | |
MouseGetPos,KDE_X2,KDE_Y2 ; Get the current mouse position. | |
KDE_X2 -= KDE_INIT_MOUSE_X ; Obtain an offset from the initial mouse position. | |
KDE_Y2 -= KDE_INIT_MOUSE_Y | |
KDE_WinX2 := (KDE_WinX1 + KDE_X2) ; Apply this offset to the window position. | |
KDE_WinY2 := (KDE_WinY1 + KDE_Y2) | |
WinMove,ahk_id %KDE_id%,,%KDE_WinX2%,%KDE_WinY2% ; Move the window to the new position. | |
} | |
return | |
LWin & RButton:: | |
; Get the initial mouse position and window id, and | |
; abort if the window is maximized. | |
MouseGetPos,KDE_INIT_MOUSE_X,KDE_INIT_MOUSE_Y,KDE_id | |
WinGet,KDE_Win,MinMax,ahk_id %KDE_id% | |
If KDE_Win | |
return | |
; Get the initial window position and size. | |
WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id% | |
; Define the window region the mouse is currently in. | |
; The four regions are Up and Left, Up and Right, Down and Left, Down and Right. | |
If (KDE_INIT_MOUSE_X < KDE_WinX1 + KDE_WinW / 2) | |
KDE_WinLeft := 1 | |
Else | |
KDE_WinLeft := -1 | |
If (KDE_INIT_MOUSE_Y < KDE_WinY1 + KDE_WinH / 2) | |
KDE_WinUp := 1 | |
Else | |
KDE_WinUp := -1 | |
Loop | |
{ | |
GetKeyState,KDE_Button,RButton,P ; Break if button has been released. | |
If KDE_Button = U | |
break | |
MouseGetPos,KDE_X2,KDE_Y2 ; Get the current mouse position. | |
; Get the current window position and size. | |
WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id% | |
KDE_X2 -= KDE_INIT_MOUSE_X ; Obtain an offset from the initial mouse position. | |
KDE_Y2 -= KDE_INIT_MOUSE_Y | |
; Then, act according to the defined region. | |
WinMove,ahk_id %KDE_id%,, KDE_WinX1 + (KDE_WinLeft+1)/2*KDE_X2 ; X of resized window | |
, KDE_WinY1 + (KDE_WinUp+1)/2*KDE_Y2 ; Y of resized window | |
, KDE_WinW - KDE_WinLeft *KDE_X2 ; W of resized window | |
, KDE_WinH - KDE_WinUp *KDE_Y2 ; H of resized window | |
KDE_INIT_MOUSE_X := (KDE_X2 + KDE_INIT_MOUSE_X) ; Reset the initial position for the next iteration. | |
KDE_INIT_MOUSE_Y := (KDE_Y2 + KDE_INIT_MOUSE_Y) | |
} | |
return | |
; Special-Keys: http://ahkde.github.io/docs/Tutorial.htm#s21 | |
; Open a new chrome window on "Windows + i" | |
#i:: | |
Run, C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --disable-web-security --user-data-dir | |
Return | |
; Open the command line on "Windows + Enter" | |
#Enter:: | |
Run, cmd.exe, C:\Users\%A_UserName%\Desktop | |
Return | |
^q:: | |
Send !{F4} | |
Return | |
^!Right:: | |
Send {END} | |
Return |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment