Ho appena creato uno script per autohotkey che esegue ciò in Windows 10 per un massimo di 10 desktop.
Come farlo funzionare:
Scarica e installa autohotkey . Copia e incolla il seguente codice nel blocco note e salvalo con l'estensione .ahk
Suggerisco di creare un collegamento di questo file nella cartella di avvio in modo che venga eseguito all'avvio di Windows.
Tasti di scelta rapida predefiniti:
Cambia desktop: WIN + DESKTOP NUMBER (0 = desktop numero 10)
Nuovo desktop: CTRL + WIN + D
Chiudi desktop: CTRL + WIN + F4
Visualizza stato desktop: WIN + '
IMPORTANTE:
Affinché funzioni, è necessario utilizzare SOLO i tasti di scelta rapida per aprire, chiudere e modificare i desktop perché lo script è in ascolto per questi tasti di scelta rapida per conoscere il numero corrente e totale di desktop.
Se crei, chiudi o cambi desktop tramite il menu WIN + TAB con il mouse lo script smetterà di funzionare. Per farlo funzionare di nuovo dovrai modificare le prime due righe per riflettere lo stato corrente dei tuoi desktop. (Desktopcount / currentdesktop)
Ciò non significa che non è possibile utilizzare la schermata WIN + TAB come panoramica dei desktop correnti. Puoi effettivamente usarlo in combinazione con i tasti di scelta rapida per organizzare i tuoi desktop. Sì, i tasti di scelta rapida funzionano ancora quando il Visualizzatore attività di Windows è aperto! (WIN + TAB) NON usare il mouse !!!
Inoltre, attendi che lo script venga caricato dopo l'avvio di Windows prima di creare nuovi desktop, altrimenti non funzionerà. Questo potrebbe richiedere un momento a seconda di quanti programmi di avvio hai.
Ok, ho aggiunto un'altra cosa per semplificare la risincronizzazione dello script con lo stato del desktop. Ora c'è un tasto di scelta rapida che mostrerà lo stato in cui si trova lo script in cui si trovano i desktop, quindi tutto ciò che devi fare è adattare i tuoi desktop con il mouse per adattarli allo script e sarà nuovamente sincronizzato! Per me con una tastiera svizzera ha funzionato bene avendo il '? tasto vicino a 0 e ha senso con un? su di esso, ma su altre tastiere potresti voler cambiare ciò che può essere fatto facilmente cambiando la linea subito dopo il tasto di scelta rapida per 0/10 (iniziando con # ') a quello che ti piace.
In realtà, ho appena realizzato .... fintanto che il conteggio del desktop è corretto rispetto alla creazione di un nuovo desktop sincronizzerà automaticamente il valore del desktop corrente.
(Le righe che iniziano con; sono commenti e non influiscono sullo script)
Codice:
#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}
}