From 86198de452918af94aec4bd5e0918b494595f125 Mon Sep 17 00:00:00 2001 From: breadcat Date: Thu, 9 Apr 2015 01:21:57 +0100 Subject: Large refactor Clean up code by moving functions to separate file, better organise hotkeys. Lines 132-136 are currently broken, but rarely used. Removed toggle taskbar as it was broken and never used. winSplit() toggle is also currently broken. --- ahk-assistant.ahk | 289 ++++++++---------------------------------------------- functions.ahk | 263 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 306 insertions(+), 246 deletions(-) create mode 100644 functions.ahk diff --git a/ahk-assistant.ahk b/ahk-assistant.ahk index 5ee9852..69195fe 100644 --- a/ahk-assistant.ahk +++ b/ahk-assistant.ahk @@ -18,6 +18,7 @@ SetNumLockState, AlwaysOn ;includes #Include, %A_ScriptDir%\appspecific.ahk ;application specific hotkeys +#Include, %A_ScriptDir%\functions.ahk ;all those long winded functions #Include, *i %A_ScriptDir%\secret.ahk ;physical and ip address completions, only included if exists. ;hotkeys @@ -26,56 +27,22 @@ SetNumLockState, AlwaysOn #+q::Run notepad.exe "%A_MyDocuments%\Vault\docs\faulties.txt" #w::Run firefox.exe #+w::Run firefox.exe -private-window -#e:: ;launch documents directory -if A_OSVersion in WIN_XP - { - Run explorer %A_MyDocuments% - } - Else - { - Run explorer %A_MyDocuments%\..\Downloads - } - Return -#+e:: ;launch dropbox directory -if A_OSVersion in WIN_XP - { - Run explorer %A_MyDocuments%\Vault - } - Else - { - Run explorer %A_MyDocuments%\..\Vault - } - Return +#e:: dirWorking() +#+e:: dirSync() ^!e::Run ::{20d04fe0-3aea-1069-a2d8-08002b30309d} ;my computer ^!r::Run mstsc ;remote desktop connection -#t::Run C:\cygwin\bin\mintty.exe - +#t:: launchTerminal() #+t::Run cmd +^!t::pasteTelephone() ^!b::Run %programfiles%\TeamViewer\Version9\TeamViewer.exe ^!v::Run %programfiles%\TightVNC\tvnviewer.exe -#p:: ;putty -if A_OSVersion in WIN_XP - { - Run "%A_MyDocuments%\Vault\git\dotfiles\putty.exe" - } - Else - { - Run "%ProgramFilesX86%\PuTTY\putty.exe" - } - Return -^!k:: ;keepass -if A_OSVersion in WIN_XP - { - Run "%A_MyDocuments%\Vault\docs\keepass\KeePass.exe" - } - Else - { - Run "%A_MyDocuments%\..\Vault\docs\keepass\KeePass.exe" - } - Return +#p::Run "%ProgramFilesX86%\PuTTY\putty.exe" ;putty +^!k:: launchKeepass() #c::Run calc #\::SendMessage 0x112, 0xF170, 2, , Program Manager ;win+\ - screen standby -SC029::Send, 0 ;Backticks send zeroes -^SC029::Send, `` ;C-Backtick send backticks +SC029::Send, 0 ;Backtick send zeroes ++SC029::Send, `` ;S-Backtick send backticks +^SC029::Send, `¬ ;C-Backtick send negations RAlt & j::ShiftAltTab RAlt & k::AltTab Capslock::Backspace @@ -85,68 +52,35 @@ Capslock::Backspace ^!+Down::run %A_ScriptDir%\resswitch.exe /WIDTH:1280 /HEIGHT:720 ;720p screen resolution XButton1::Send {Click 2} ;remap logitech m570 x1 to double click XButton2::Send {MButton} ;remap logitech m570 x2 to wheel click -#Space:: ;date insert - FormatTime, CurrentDateTime,, yyyy-MM-dd - Send %CurrentDateTime% - return -#+Space:: ;date and time insert - FormatTime, CurrentDateTime,, yyyy-MM-dd HHmm - Send %CurrentDateTime% - return -#k:: ;split active and previous 2 windows side by side. - { - Shift("R") - Send {AltDown}{Tab}{AltUp} - Shift("L") - Send {AltDown}{Tab}{AltUp} - return - } -Insert:: ;insert appends to clipboard - newclipboard = %clipboard% - Send, ^c - clipboard = %newclipboard%`r`n%clipboard% - return -^!t:: ;formats a copied telephone number correctly, and pastes it - StringReplace, clipboard, clipboard, %A_SPACE%, , All ;remove spaces - StringReplace, clipboard, clipboard, `r, , All ;remove lines - StringReplace, clipboard, clipboard, `n, , All ;remove lines - StringReplace, clipboard, clipboard, (, , All ;remove lbracket - StringReplace, clipboard, clipboard, ), , All ;remove rbracket - StringLeft, 5digits, clipboard, 5 - StringRight, 6digits, clipboard, 6 - Send %5digits% %6digits% - return -#x:: ;hide/show taskbar toggle -if toggle := !toggle - { - WinHide ahk_class Shell_TrayWnd - WinHide, Start ahk_class Button - } - else - { - WinShow ahk_class Shell_TrayWnd - WinShow, Start ahk_class Button - } - return -^!Space:: ;toggle between default audio output (http://ml.pe/optimizing/2013/changing-the-default-sound-device-using-autohotkey/) - switch := !switch - If (switch) - usePlaybackDevice(1) - else - usePlaybackDevice(3) - return - usePlaybackDevice(device) { - Run, mmsys.cpl - WinWaitActive, Sound ahk_class #32770 - ControlSend, SysListView321,{Down %device%}, Sound ahk_class #32770 - ControlClick, Button2, Sound ahk_class #32770 - WinClose, Sound ahk_class #32770 -} +#Space:: insertDate() +#+Space::insertDateTime() +Insert::appendClipboard() +^!Space::toggleAudioDevice() + +;kde-windows (Easy Window Dragging -- KDE style (requires XP/2k/NT) -- by Jonny) +!LButton::kdeMove() +!RButton::kdeResize() + +;tiling +#Up::WinMaximize, A +#Down::WinMinimize, A +#Left::Tile("L") +#Right::Tile("R") +#Numpad1::Tile("BL") +#Numpad2::Tile("B") +#Numpad3::Tile("BR") +#Numpad4::Tile("L") +#Numpad5::WinMaximize, A +#Numpad6::Tile("R") +#Numpad7::Tile("TL") +#Numpad8::Tile("T") +#Numpad9::Tile("TR") +#Numpad0::winSplit() ;auto replace text with symbols -::(c)::© -::(r)::® -::(tm)::™ +:*:(c)::© +:*:(r)::® +:*:(tm)::™ ;text replacements ::seperated::separated @@ -181,6 +115,7 @@ if toggle := !toggle ::emg80p::LG eMG80-PRIU ::emg80h::LG eMG80-HYB8 ::emg80c::LG eMG80-CH204 +::emg80w::LG eMG80-WTIB4 ::ipecs50a::LG iPECS-LIK50A ::ipecs50b::LG iPECS-LIK50B ::l9048::LG LDP-9048DSS @@ -194,91 +129,11 @@ if toggle := !toggle :*:btd`t::BT Diverse 7110+ ;auto/tab completions -:*:ytv:: ;create YT link from video ID - send,{end}{shift down}{home}{shift up}{del} - send,https://www.youtube.com/watch?v={ctrl down}v{ctrl up} - return -:*:gd`t:: -if A_OSVersion in WIN_XP - { - Send %A_MyDocuments%\Vault\docs\ - } - Else - { - Send C:\Users\%A_UserName%\Vault\docs\ - } - Return -:*:md`t:: -if A_OSVersion in WIN_XP - { - Send %A_MyDocuments% - } - Else - { - Send C:\Users\%A_UserName%\ - } - Return -:*:db`t:: -if A_OSVersion in WIN_XP - { - Send %A_MyDocuments%\Vault\ - } - Else - { - Send C:\Users\%A_UserName%\Vault\ - } - Return -:*:cw`t:: ;cygwin - { - Send C:\cygwin\home\%A_UserName%\ - } - Return - -;tiling -#Up::WinMaximize, A -#Down::WinMinimize, A -#Left::Shift("L") -#Right::Shift("R") -#Numpad1::Shift("BL") -#Numpad2::Shift("B") -#Numpad3::Shift("BR") -#Numpad4::Shift("L") -#Numpad5::WinMaximize, A -#Numpad6::Shift("R") -#Numpad7::Shift("TL") -#Numpad8::Shift("T") -#Numpad9::Shift("TR") -Shift(Pos) -{ - WinGetClass, class, A - IfInString , shell_TrayWnd,Progman,Button,DV2ControlHost, %class% - Return - IfWinExist,ahk_class Shell_TrayWnd - SysGet, m, MonitorWorkArea - Else SysGet, m, Monitor - WinGetPos, MWT_X, MWT_Y, MWT_W, MWT_H, A - SendMessage, 0x1F,,,, A - WinGet, MWT_active, MinMax, A - if (MWT_active = 1) - WinRestore, A - If (Pos = "T") - WinMove, A,, 0, 0, mRight, mBottom/2 - If (Pos = "B") - WinMove, A,, 0, mBottom/2, mRight, mBottom/2 - If (Pos = "L") - WinMove, A,, 0, 0, mRight/2, mBottom - If (Pos = "R") - WinMove, A,, mRight/2, 0, mRight/2, mBottom - If (Pos = "TL") - WinMove, A,, 0, 0, mRight/2, mBottom/2 - If (Pos = "TR") - WinMove, A,, mRight/2, 0, mRight/2, mBottom/2 - If (Pos = "BR") - WinMove, A,, mRight/2, mBottom/2, mRight/2, mBottom/2 - If (Pos = "BL") - WinMove, A,, 0, mBottom/2, mRight/2, mBottom/2 -} -Return +:*:ytv::createYoutubeLink() +:*:gd`t::typeSyncDocs() +:*:md`t::typeDocuments() +:*:db`t::typeSync() +:*:cw`t::typeCygwin() ScriptReload: ;auto-reload on change { @@ -293,61 +148,3 @@ ScriptReload: ;auto-reload on change } Return } - -;kde-windows (Easy Window Dragging -- KDE style (requires XP/2k/NT) -- by Jonny) -!LButton:: -MouseGetPos,KDE_X1,KDE_Y1,KDE_id -WinGet,KDE_Win,MinMax,ahk_id %KDE_id% -If KDE_Win - WinRestore, A -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_X1 ; Obtain an offset from the initial mouse position. - KDE_Y2 -= KDE_Y1 - 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 - -!RButton:: -MouseGetPos,KDE_X1,KDE_Y1,KDE_id -WinGet,KDE_Win,MinMax,ahk_id %KDE_id% -If KDE_Win - WinRestore, A -; 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_X1 < KDE_WinX1 + KDE_WinW / 2) - KDE_WinLeft := 1 -Else - KDE_WinLeft := -1 -If (KDE_Y1 < 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_X1 ; Obtain an offset from the initial mouse position. - KDE_Y2 -= KDE_Y1 - ; 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_X1 := (KDE_X2 + KDE_X1) ; Reset the initial position for the next iteration. - KDE_Y1 := (KDE_Y2 + KDE_Y1) -} -return diff --git a/functions.ahk b/functions.ahk new file mode 100644 index 0000000..e82b71c --- /dev/null +++ b/functions.ahk @@ -0,0 +1,263 @@ +dirWorking() { +if A_OSVersion in WIN_XP + { + Run explorer %A_MyDocuments% + } + Else + { + Run explorer %A_MyDocuments%\..\Downloads + } + Return + } + +dirSync() { +if A_OSVersion in WIN_XP + { + Run explorer %A_MyDocuments%\Vault + } + Else + { + Run explorer %A_MyDocuments%\..\Vault + } + Return + } + +launchTerminal() { +if A_OSVersion in WIN_XP + { + Run C:\cygwin\bin\mintty.exe - + } + Else + { + Run C:\cygwin64\bin\mintty.exe - + } + Return + } + +launchKeepass() { +if A_OSVersion in WIN_XP + { + Run "%A_MyDocuments%\Vault\docs\keepass\KeePass.exe" + } + Else + { + Run "%A_MyDocuments%\..\Vault\docs\keepass\KeePass.exe" + } + Return + } + +insertDate() { + FormatTime, CurrentDateTime,, yyyy-MM-dd + Send %CurrentDateTime% + return + } +insertDateTime() { + FormatTime, CurrentDateTime,, yyyy-MM-dd HHmm + Send %CurrentDateTime% + return + } + +appendClipboard() { + newclipboard = %clipboard% + Send, ^c + clipboard = %newclipboard%`r`n%clipboard% + return + } + +pasteTelephone() { + StringReplace, clipboard, clipboard, +44, 0, All ;translate intl codes + StringReplace, clipboard, clipboard, %A_SPACE%,, All ;remove spaces + StringReplace, clipboard, clipboard, %A_Tab%, `,, All ;remove tabs + StringReplace, clipboard, clipboard, `,,, All ;remove commas + StringReplace, clipboard, clipboard, `r,, All ;remove lines + StringReplace, clipboard, clipboard, `n,, All ;remove lines + StringReplace, clipboard, clipboard, -,, All ;remove hyphens + StringReplace, clipboard, clipboard, (,, All ;remove lbracket + StringReplace, clipboard, clipboard, ),, All ;remove rbracket + StringLeft, 5digits, clipboard, 5 + StringRight, 6digits, clipboard, 6 + Send %5digits% %6digits% + return + } + +createYoutubeLink() { + send,{end}{shift down}{home}{shift up}{del} + send,https://www.youtube.com/watch?v={ctrl down}v{ctrl up} + return + } + +typeSyncDocs() { +if A_OSVersion in WIN_XP + { + Send %A_MyDocuments%\Vault\docs\ + } + Else + { + Send C:\Users\%A_UserName%\Vault\docs\ + } + Return + } +typeDocuments() { +if A_OSVersion in WIN_XP + { + Send %A_MyDocuments% + } + Else + { + Send C:\Users\%A_UserName%\ + } + Return + } +typeVault() { +if A_OSVersion in WIN_XP + { + Send %A_MyDocuments%\Vault\ + } + Else + { + Send C:\Users\%A_UserName%\Vault\ + } + Return + } +typeCygwin() { +if A_OSVersion in WIN_XP + { + Send C:\cygwin\home\%A_UserName%\ + } + Else + { + Send C:\cygwin64\home\%A_UserName%\ + } + Return + } + +;toggle between default audio output (http://ml.pe/optimizing/2013/changing-the-default-sound-device-using-autohotkey/) +toggleAudioDevice() { + switch := !switch + If (switch) + usePlaybackDevice(1) + else + usePlaybackDevice(3) + return + } + usePlaybackDevice(device) { + Run, mmsys.cpl + WinWaitActive, Sound ahk_class #32770 + ControlSend, SysListView321,{Down %device%}, Sound ahk_class #32770 + ControlClick, Button2, Sound ahk_class #32770 + WinClose, Sound ahk_class #32770 +} + +winSplit() { ;split active and previous window side by side, press again to swap positions + splitToggle := !splitToggle + If (splitToggle) { + Tile("R") + Sleep, 15 + Send {AltDown}{Tab}{AltUp} + Sleep, 10 + Tile("L") + Sleep, 15 + Send {AltDown}{Tab}{AltUp} + } + else { + Tile("L") + Sleep, 15 + Send {AltDown}{Tab}{AltUp} + Sleep, 10 + Tile("R") + Sleep, 15 + Send {AltDown}{Tab}{AltUp} + } + return + } + +kdeMove() { + MouseGetPos,KDE_X1,KDE_Y1,KDE_id + WinGet,KDE_Win,MinMax,ahk_id %KDE_id% + If KDE_Win + WinRestore, A + 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_X1 ; Obtain an offset from the initial mouse position. + KDE_Y2 -= KDE_Y1 + 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 + } + +kdeResize() { + MouseGetPos,KDE_X1,KDE_Y1,KDE_id + WinGet,KDE_Win,MinMax,ahk_id %KDE_id% + If KDE_Win + WinRestore, A + ; 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_X1 < KDE_WinX1 + KDE_WinW / 2) + KDE_WinLeft := 1 + Else + KDE_WinLeft := -1 + If (KDE_Y1 < 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_X1 ; Obtain an offset from the initial mouse position. + KDE_Y2 -= KDE_Y1 + ; 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_X1 := (KDE_X2 + KDE_X1) ; Reset the initial position for the next iteration. + KDE_Y1 := (KDE_Y2 + KDE_Y1) + } + return + } + +Tile(Pos) +{ + WinGetClass, class, A + IfInString , shell_TrayWnd,Progman,Button,DV2ControlHost, %class% + Return + IfWinExist,ahk_class Shell_TrayWnd + SysGet, m, MonitorWorkArea + Else SysGet, m, Monitor + WinGetPos, MWT_X, MWT_Y, MWT_W, MWT_H, A + SendMessage, 0x1F,,,, A + WinGet, MWT_active, MinMax, A + if (MWT_active = 1) + WinRestore, A + If (Pos = "T") + WinMove, A,, 0, 0, mRight, mBottom/2 + If (Pos = "B") + WinMove, A,, 0, mBottom/2, mRight, mBottom/2 + If (Pos = "L") + WinMove, A,, 0, 0, mRight/2, mBottom + If (Pos = "R") + WinMove, A,, mRight/2, 0, mRight/2, mBottom + If (Pos = "TL") + WinMove, A,, 0, 0, mRight/2, mBottom/2 + If (Pos = "TR") + WinMove, A,, mRight/2, 0, mRight/2, mBottom/2 + If (Pos = "BR") + WinMove, A,, mRight/2, mBottom/2, mRight/2, mBottom/2 + If (Pos = "BL") + WinMove, A,, 0, mBottom/2, mRight/2, mBottom/2 +} +Return -- cgit v1.2.3