Desktops virtuais do Windows. Volte ao primeiro desktop no final

2

Digamos que eu tenha três desktops virtuais. Eu sei que posso navegar por eles usando:

ctrl + windows + left | direito

No entanto, existe uma maneira de fazer o ciclo voltar ao começo se eu chegar ao fim? Então, se eu estiver na área de trabalho 3 "ctrl + windows + right" me levará para a área de trabalho 1?

Eu sei que isso pode ser possível com um script AutoHotkey. Mas eu não sei como fazer isso funcionar.

O motivo pelo qual eu preciso disso para trabalhar dessa maneira é porque pretendo mapear essa funcionalidade para um mouse que acabei de comprar (ele tem botões extras). Atualmente, preciso usar dois botões para que eu possa retroceder e avançar entre desktops. Eu preferiria que apenas um botão fosse necessário. Espero que esta informação ajude.

Obrigado

    
por Caedan Lavender 08.02.2017 / 07:00

2 respostas

0

Esta é apenas uma ideia para algo tentar e adaptar ... não testado.

Desde que o script esteja sendo executado, ele apenas salva a área de trabalho virtual ativa em uma variável, não precisa necessariamente de um arquivo ini.

O script precisa ser iniciado com a área de trabalho virtual nº 1 ativa ou precisa forçar uma sincronização. A função forçar assume que você pode pressionar ctrl + win + left quantas vezes quiser e não passará do primeiro desktop virtual quando chegar lá.

As teclas de atalho acionam as teclas padrão do Windows, mas não as capturam (por exemplo, til ~ permite que o pressionamento de tecla seja executado). Portanto, ele rastrearia o teclado se você estivesse usando o teclado e, se estivesse usando o mouse, poderia atribuir o mouse a uma tecla de atalho ou outra.

Você também pode adicionar um atalho duplicado personalizado para uma ou ambas as direções ... mostrando isso como ctrl + alt + F8, por exemplo, caso o botão do mouse precise ser atribuído a algo diferente das teclas padrão do windows para alternar entre desktops.

#NoEnv
#Persistent

numDesktops := 3  ; set to match number of virtual desktops
if forceSyncAtStartup := True   ; set to False to disable sync on startup
    SendInput % "^#{Left" (numDesktops-1) "}"

vDesktop := 1   ; this must match the virtual desktop active when program starts if a sync isn't forced
return

^!F8::             ; random/custom shortcut for the mouse if desired
~^#Left::
    vDesktop -= 1
    if (vDesktop=0) {
        vDesktop := numDesktops
        sleep 20        ; optional for better reliability

        ; use this if no delay needed for reliable operation
        SendInput % "^#{Right " (numDesktops-1) "}

        ; use this type of setup if a delay is needed
        ; Loop, % (numDesktops-1) {
        ;   SendInput ^#{Right}
        ;   sleep 100       ; adjust for reliability
        ; }
    }
return

~^#Right::
    vDesktop += 1
    sleep 20
    if (vDesktop=(numDesktops+1)) {
        vDesktop := 1
        SendInput % "^#{Left" (numDesktops-1) "}"
    }
return  
    
por 09.02.2017 / 04:38
0

Outra opção é usar Finestra Virtual Desktops , que faz este ciclo por padrão e as teclas de atalho são configuráveis.

    
por 25.10.2017 / 13:15