Initial checkin
This commit is contained in:
69
DesktopHotkeys.ahk
Normal file
69
DesktopHotkeys.ahk
Normal file
@@ -0,0 +1,69 @@
|
||||
;#NoTrayIcon
|
||||
|
||||
;Assume we start up on desktop 1 and the user doesn't perform any manual switching.
|
||||
currentdesktop := 1
|
||||
|
||||
;You can change the hotkeys for switching desktops below.
|
||||
;Hotkeys WIN+[1-0] for switching desktops.
|
||||
|
||||
#1::GotoDesktop(1)
|
||||
#2::GotoDesktop(2)
|
||||
#3::GotoDesktop(3)
|
||||
#4::GotoDesktop(4)
|
||||
#5::GotoDesktop(5)
|
||||
#6::GotoDesktop(6)
|
||||
#7::GotoDesktop(7)
|
||||
#8::GotoDesktop(8)
|
||||
#9::GotoDesktop(9)
|
||||
#0::GotoDesktop(10)
|
||||
|
||||
GotoDesktop(desktop)
|
||||
{
|
||||
global currentdesktop
|
||||
desktopdiff := desktop - currentdesktop
|
||||
|
||||
if (desktop > GetDesktopCount())
|
||||
{
|
||||
; The requested desktop is bigger than the number of desktops - create new desktops
|
||||
numDesktopsToCreate := desktop - GetDesktopCount()
|
||||
Loop %numDesktopsToCreate%
|
||||
{
|
||||
NewDesktop()
|
||||
}
|
||||
}
|
||||
if (desktopdiff < 0)
|
||||
{
|
||||
desktopdiff *= -1
|
||||
Loop %desktopdiff%
|
||||
{
|
||||
Send ^#{Left}
|
||||
}
|
||||
}
|
||||
else if (desktopdiff > 0)
|
||||
{
|
||||
Loop %desktopdiff%
|
||||
{
|
||||
Send ^#{Right}
|
||||
}
|
||||
}
|
||||
currentdesktop := desktop
|
||||
}
|
||||
|
||||
NewDesktop()
|
||||
{
|
||||
if (GetDesktopCount() > 9)
|
||||
{
|
||||
return
|
||||
}
|
||||
Send ^#d
|
||||
}
|
||||
|
||||
GetDesktopCount()
|
||||
{
|
||||
; In the registry, at Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops
|
||||
; The Key VirtualDesktopIDs contains the Internal IDs of all desktops
|
||||
RegRead, virtDesktopIDs, HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops, VirtualDesktopIDs
|
||||
|
||||
; Each VirtualDesktopID is 32 characters long, dividing by 32 gives the number
|
||||
Return StrLen(virtDesktopIDs)/32
|
||||
}
|
||||
Reference in New Issue
Block a user