Acabei de criar um script para o autochoque que faz isso no Windows 10 para até 10 desktops.
Como fazer isso funcionar:
Faça o download e instale autohotkey . Copie e cole o código abaixo no notepad e salve-o com a extensão .ahk
Eu sugiro fazer um atalho desse arquivo em sua pasta de inicialização para que ele seja executado quando o Windows for iniciado.
HOTKEYS PADRÃO:
Switch desktop: WIN+DESKTOP NUMBER (0 = desktop number 10)
New desktop: CTRL+WIN+D
Close desktop: CTRL+WIN+F4
Display desktop state: WIN+'
IMPORTANTE:
Para que funcione, você deve APENAS usar teclas de atalho para abrir, fechar e alterar as áreas de trabalho, pois o script atende a essas teclas de atalho para saber o número atual e total de desktops.
Se você criar, fechar ou alterar áreas de trabalho através do menu WIN + TAB com o mouse, o script parará de funcionar. Para que funcione novamente, você precisará editar as duas primeiras linhas para refletir o estado atual de suas áreas de trabalho. (desktopcount / currentdesktop)
Isso não significa que você não pode usar a tela WIN + TAB como uma visão geral de seus desktops atuais. Você pode realmente usá-lo em combinação das teclas de atalho para organizar seus desktops. Sim, as teclas de atalho ainda funcionam quando o visualizador de tarefas do Windows está aberto! (WIN + TAB) Só não use o mouse !!!
Além disso, aguarde o carregamento do script após a inicialização do Windows antes de criar novos desktops ou ele não funcionará. Isso pode demorar um pouco, dependendo de quantos programas de inicialização você tem.
Ok, adicionei mais uma coisa para tornar mais fácil sincronizar novamente o script com o estado da área de trabalho. Agora existe uma tecla de atalho que exibe o estado em que o script acredita que os desktops estão, então tudo o que você precisa fazer é ajustar seus desktops com o mouse para ajustar o script e tudo será sincronizado novamente! Para mim, com um teclado suíço, funcionou bem com o '? chave ao lado de 0 e faz sentido com um? nela, mas em outros teclados você pode querer mudar isso, o que pode ser feito facilmente mudando a linha logo após a tecla de atalho para 0/10 (começando com # ') para o que você quiser.
Na verdade, acabei de perceber que ... contanto que a Contagem de Estações de Trabalho esteja correta, a criação de uma nova área de trabalho irá sincronizar novamente o valor da Área de Trabalho Atual.
(As linhas que começam com; são comentários e não afetam o script)
Código:
#NoTrayIcon
;If the script stops working:
;Change the following values to reflect your current desktop state and reload the script.
;Remember to change them back to 1 after reloading the script if you have it set to start with Windows
desktopcount := 1
currentdesktop := 1
;You can change the hotkeys for creating, closing, and switching desktops bellow.
;The current hotkeys are CTRL+WIN+D for new desktop, CTRL+WIN+F4 to close desktop
;and WIN+NUMBER for switching desktops.
;For example, to change the hotkey for new desktop replace ^#D bellow with the desired hotkey.
;Refer to the autohotkey documentation for a full list of symbols refering to modifier keys,
;as you can see ^ is CTRL and # is WIN key.
;If you wanted to change the switch desktop from WIN key to CTRL for example you would have
;to replace the # before each number to a ^
^#D::NewDesktop()
^#F4::CloseDesktop()
#1::SwitchDesktop(1)
#2::SwitchDesktop(2)
#3::SwitchDesktop(3)
#4::SwitchDesktop(4)
#5::SwitchDesktop(5)
#6::SwitchDesktop(6)
#7::SwitchDesktop(7)
#8::SwitchDesktop(8)
#9::SwitchDesktop(9)
#0::SwitchDesktop(10)
#'::MsgBox Desktop Count = %desktopcount%'nCurrent Desktop = %currentdesktop%
;Do not change anything after this line, unless you know what you are doing ;)
;-----------------------------------------------------------------------------------------------
SwitchDesktop(desktop)
{
global desktopcount
global currentdesktop
desktopdiff := desktop - currentdesktop
if (desktop > desktopcount)
{
return
}
if (desktopdiff < 0)
{
desktopdiff *= -1
Loop %desktopdiff%
{
Send ^#{Left}
}
}
else if (desktopdiff > 0)
{
Loop %desktopdiff%
{
Send ^#{Right}
}
}
currentdesktop := desktop
}
NewDesktop()
{
global desktopcount
global currentdesktop
if (desktopcount > 9)
{
return
}
desktopcount ++
currentdesktop := desktopcount
Send ^#d
}
CloseDesktop()
{
global desktopcount
global currentdesktop
desktopcount --
if (currentdesktop != 1)
{
currentdesktop --
}
Send ^#{f4}
}