
В Linux я использую сочетание клавиш для переключения между четырьмя рабочими пространствами: win+ 1/2/3/4.
Мне бы хотелось иметь что-то подобное в Windows 10 или Windows 11.
ОБНОВЛЕНИЕ РЕШЕНИЯ
- (Этот шаг не нужен для Windows 11 — только для пользователей Windows 10) Обновите версию Windows до последней с помощью этого обновитель. Вам также может понадобитьсяVisual C++ Redistributable для Visual Studio 2015
- Загрузите и распакуйте этоВиртуальный рабочий стол Windows 10 Enhancer(0.9.1) у меня работает.
- Измените содержимое файла settings.ini на
[KeyboardShortcuts] Switch=LWin Move=LAlt, Shift, Ctrl MoveAndSwitch=LAlt, Shift Previous=Left Next=Right PlusTen=
(Только для пользователей Windows 11) заменитеVirtualDesktopAccessor.dllс файлом изhttps://github.com/skottmckay/VirtualDesktopAccessor/tree/master/x64/Release
Бегатьvirtual-desktop-enhancer.exeкакадминистратор.
Используйте сочетания клавиш win+ 1/2/3/n(гден(количество созданных вами виртуальных рабочих столов) для прямого переключения между виртуальными рабочими столами и win+ `~для эффекта «открытия».
решение1
Вам необходимо следующее:
- Окно привязки: WIN+ LEFTили RIGHT (можно использовать с UPили DOWNдля попадания в квадранты)
- Переключиться на недавнее окно: Alt+ Tab(без изменений) – при удержании отображается новое окно представления задач, при отпускании — переключение на приложение.
- Вид задачи: WIN+ Tab– Окно «Новая задача» открывается и остается открытым.
- Создать новый виртуальный рабочий стол: WIN+ Ctrl+d
- Закрыть текущий виртуальный рабочий стол: WIN+ Ctrl+F4
- Переключить виртуальный рабочий стол: WIN+ Ctrl+ LEFTилиRIGHT
решение2
Думаю, я только что создал именно то, что вы ищете. Я использую оконный менеджер на Linux и хотел бы использовать горячие клавиши аналогичным образом на Windows.
https://github.com/pmb6tz/windows-desktop-switcher
Мой скрипт использует CapsLock, потому что мне так удобнее, но вы можете легко настроить его так, чтобы он работал у вас. Возможно, там есть одна или две ошибки, но в целом я нашел его довольно надежным. Надеюсь, это вам поможет!
решение3
Я только что сделал сценарий дляавтохоткейкоторый позволяет реализовать это в Windows 10 для 10 рабочих столов.
Как это работает:
Загрузить и установитьавтохоткей. Скопируйте и вставьте код ниже в блокнот и сохраните его с расширением файла .ahk.
Я предлагаю создать ярлык этого файла в папке автозагрузки, чтобы он запускался при запуске Windows.
ГОРЯЧИЕ КЛАВИШИ ПО УМОЛЧАНИЮ:
Переключить рабочий стол: WIN+НОМЕР РАБОЧЕГО СТОЛА (0 = номер рабочего стола 10)
Новый рабочий стол: CTRL+WIN+D
Закрыть рабочий стол: CTRL+WIN+F4
Отображение состояния рабочего стола: WIN+'
ВАЖНЫЙ:
Чтобы это работало, вы должны использовать горячие клавиши ТОЛЬКО для открытия, закрытия и смены рабочих столов, поскольку скрипт прослушивает эти горячие клавиши, чтобы узнать текущее и общее количество рабочих столов.
Если вы создаете, закрываете или меняете рабочие столы через меню WIN+TAB с помощью мыши, скрипт перестанет работать. Чтобы заставить его работать снова, вам нужно будет отредактировать первые две строки, чтобы отразить текущее состояние ваших рабочих столов. (desktopcount/currentdesktop)
Это не значит, что вы не можете использовать экран WIN+TAB для обзора текущих рабочих столов. На самом деле вы можете использовать его в сочетании с горячими клавишами для организации рабочих столов. Да, горячие клавиши все еще работают, когда открыт просмотрщик задач Windows! (WIN+TAB) Только НЕ используйте мышь!!!
Также дождитесь загрузки скрипта после запуска Windows, прежде чем создавать новые рабочие столы, иначе он не сработает. Это может занять некоторое время в зависимости от того, сколько у вас программ автозагрузки.
Хорошо, я добавил еще одну вещь, чтобы упростить повторную синхронизацию скрипта с состоянием вашего рабочего стола. Теперь есть горячая клавиша, которая будет отображать состояние, в котором скрипт считает, что рабочие столы находятся, так что все, что вам нужно сделать, это настроить рабочие столы с помощью мыши, чтобы они соответствовали сценарию, и все будет снова синхронизировано! Для меня со швейцарской клавиатурой это прекрасно сработало, имея клавишу '? рядом с 0, и это имеет смысл с ? на ней, но на других клавиатурах вы можете захотеть изменить это, что можно легко сделать, изменив строку сразу после горячей клавиши для 0/10 (начиная с #') на то, что вам нравится.
На самом деле, я только что понял... если количество рабочих столов верное, то создание нового рабочего стола автоматически повторно синхронизирует значение текущего рабочего стола.
(Строки, начинающиеся с ;, являются комментариями и не влияют на скрипт)
Код:
#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}
}
решение4
Например, я хочу установить Page Down для следующего рабочего стола и Page Up для предыдущего рабочего стола. После установки AutoHotkey я создаю новый скрипт AutoHotKey, добавляю в него эти коды, сохраняю и запускаю скрипт.
PgDn::^#Right ;Next Desktop
return
PgUp::^#Left ;Previous Desktop
return
и это будет хорошо работать :)
Обновление: Иногда код выше не работает, и приходится кликать в определенной точке. Тогда я изменил его на этот:
PgDn::
{
MouseGetPos,,,win
WinGetClass, class, ahk_id %win%
If class in Progman,WorkerW
send {Click}^#{Right}
else
send ^#{Right} ; Next Desktop
return
}
PgUp::
{
MouseGetPos,,,win
WinGetClass, class, ahk_id %win%
If class in Progman,WorkerW
send {Click}^#{Left}
else
send ^#{Left} ; Previous Desktop
return
}