FuPeiJiang / VD.ahk

Windows Virtual Desktop, AutoHotkey, Windows 11 support, Windows Server 2022, switch desktop, move window(wintitle) to current desktop; createDesktop, PinWindow, getCount, getDesktopNumOfWindow -> mute all windows in Virtual Desktop
MIT License
319 stars 45 forks source link

Previous Desktop #69

Closed qupufu closed 3 months ago

qupufu commented 3 months ago

How would I create a hotkey to return me to the previous desktop?

FuPeiJiang commented 3 months ago
#Include %A_LineFile%\..\..\VD.ah2
VD.RegisterDesktopNotifications()
VD.DefineProp("CurrentVirtualDesktopChanged", {Call:CurrentVirtualDesktopChanged})
previous_desktopNum:=1
CurrentVirtualDesktopChanged(desktopNum_Old, desktopNum_New) {
  global previous_desktopNum
  previous_desktopNum:=desktopNum_Old
}
Numpad0::VD.goToDesktopNum(previous_desktopNum)

this keeps tracks of windows default shortcuts too, I don't know if you want that

where should I put this information ?

qupufu commented 3 months ago

I'm having trouble getting the code from the readme to work (ahk v1). It always takes me back to desktop 1 instead of the previous desktop

FuPeiJiang commented 3 months ago
#Include %A_LineFile%\..\VD.ahk
VD.RegisterDesktopNotifications()
VD.CurrentVirtualDesktopChanged:=Func("CurrentVirtualDesktopChanged")
previous_desktopNum:=1
CurrentVirtualDesktopChanged(desktopNum_Old, desktopNum_New) {
  global previous_desktopNum
  ToolTip % desktopNum_Old
  previous_desktopNum:=desktopNum_Old
}
Numpad0::VD.goToDesktopNum(previous_desktopNum)

does the ToolTip show when you switch desktops ? does the one in v2 readme work ? which windows build version are you using ?

qupufu commented 3 months ago

After a bit of debugging, it seems that the issue is related to this library. Thanks for the help though!

FuPeiJiang commented 3 months ago

Did you get what you wanted to work ? Can you send your code using LongHotkey ? I want to see what's going on/debug it.

qupufu commented 3 months ago

I'm currently on vacation, but I'll send my code over when I'm back :)

qupufu commented 3 months ago

The following code always takes me to the first desktop instead of the previous desktop :L

#Include C:\home\ahk\lib\longhotkey.ahk
#Include C:\home\ahk\lib\vd\VD.ahk

VD.RegisterDesktopNotifications()
VD.CurrentVirtualDesktopChanged:=Func("CurrentVirtualDesktopChanged")
previous_desktopNum:=1
CurrentVirtualDesktopChanged(desktopNum_Old, desktopNum_New) {
  global previous_desktopNum
  previous_desktopNum:=desktopNum_Old
}

gtpd(){
    VD.goToDesktopNum(previous_desktopNum)
}

new LongHotkey("CapsLock & Backspace", "gtpd")
FuPeiJiang commented 3 months ago

add a global previous_desktopNum in your function

#Include C:\home\ahk\lib\longhotkey.ahk
#Include C:\home\ahk\lib\vd\VD.ahk

VD.RegisterDesktopNotifications()
VD.CurrentVirtualDesktopChanged:=Func("CurrentVirtualDesktopChanged")
previous_desktopNum:=1
CurrentVirtualDesktopChanged(desktopNum_Old, desktopNum_New) {
  global previous_desktopNum
  previous_desktopNum:=desktopNum_Old
}

gtpd(){
  global previous_desktopNum
  VD.goToDesktopNum(previous_desktopNum)
}

new LongHotkey("CapsLock & Backspace", "gtpd")

or you could do:

#Include C:\home\ahk\lib\longhotkey.ahk
#Include C:\home\ahk\lib\vd\VD.ahk

VD.RegisterDesktopNotifications()
VD.CurrentVirtualDesktopChanged:=Func("CurrentVirtualDesktopChanged")
VD.previous_desktopNum:=1
CurrentVirtualDesktopChanged(desktopNum_Old, desktopNum_New) {
  VD.previous_desktopNum:=desktopNum_Old
}

gtpd(){
  VD.goToDesktopNum(VD.previous_desktopNum)
}

new LongHotkey("CapsLock & Backspace", "gtpd")
qupufu commented 3 months ago

Thank you! The first one works great!