Использование AutoHotkey для переключения виртуальных рабочих столов в Windows 10

Одной из лучших функций Windows 10 является представление задач, которое можно использовать для создания виртуальных рабочих столов. Эти рабочие столы — отличный способ распределять и организовывать окна ваших открытых приложений. Вы можете нажать Win + Tab (удерживая клавишу Windows и нажать Tab), чтобы увидеть их в представлении задач.

Windows 10 Task View

Однако одной из функций, не предоставляемых Microsoft, является возможность мгновенного переключения на конкретный виртуальный рабочий стол с помощью сочетания клавиш. Например, если вы находитесь на рабочем столе 2 и хотите переключиться на рабочий стол 6, вам нужно удерживать Win + Ctrl и нажимать стрелку вправо четыре раза. Было бы намного проще иметь ярлык, который автоматически переключается на рабочий стол № 6, независимо от того, какой рабочий стол вы используете.

Из этого туториала Вы узнаете, как создавать сочетания клавиш для прямого переключения на любой виртуальный рабочий стол по номеру. Мы сделаем это с помощью бесплатной утилиты Windows, AutoHotkey.

Создание сценария

  1. Программа установки завершает работу, и в Notepad открывается новый текстовый файл. Файл будет нашим скриптом. (Сценарий — это простой текстовый файл, который содержит серию команд, запускаемых другой программой, в данном случае AutoHotkey.)

Заметка

Сценарий на этой странице основан на Windows Desktop Switcher, сценарии с открытым исходным кодом, размещенном на GitHub по адресу github.com/pmb6tz/windows-desktop-switcher.

  1. Скопируйте и вставьте следующий скрипт в документ «Блокнот»:
; Globals
DesktopCount = 2 ; Windows starts with 2 desktops at boot
CurrentDesktop = 1 ; Desktop count is 1-indexed (Microsoft numbers them this way)
;
; This function examines the registry to build an accurate list of the current virtual desktops and which one we're currently on.
; Current desktop UUID appears to be in HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops
; List of desktops appears to be in HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops
;
mapDesktopsFromRegistry() {
global CurrentDesktop, DesktopCount
; Get the current desktop UUID. Length should be 32 always, but there's no guarantee this couldn't change in a later Windows release so we check.
IdLength := 32
SessionId := getSessionId()
if (SessionId) {
RegRead, CurrentDesktopId, HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\%SessionId%\VirtualDesktops, CurrentVirtualDesktop
if (CurrentDesktopId) {
IdLength := StrLen(CurrentDesktopId)
}
}
; Get a list of the UUIDs for all virtual desktops on the system
RegRead, DesktopList, HKEY_CURRENT_USER, SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops, VirtualDesktopIDs
if (DesktopList) {
DesktopListLength := StrLen(DesktopList)
; Figure out how many virtual desktops there are
DesktopCount := DesktopListLength / IdLength
}
else {
DesktopCount := 1
}
; Parse the REG_DATA string that stores the array of UUID's for virtual desktops in the registry.
i := 0
while (CurrentDesktopId and i  DesktopCount || targetDesktop < 1) {
OutputDebug, [invalid] target: %targetDesktop% current: %CurrentDesktop%
return
}
; Go right until we reach the desktop we want
while(CurrentDesktop  targetDesktop) {
Send ^#{Left}
CurrentDesktop--
OutputDebug, [left] target: %targetDesktop% current: %CurrentDesktop%
}
}
;
; This function creates a new virtual desktop and switches to it
;
createVirtualDesktop()
{
global CurrentDesktop, DesktopCount
Send, #^d
DesktopCount++
CurrentDesktop = %DesktopCount%
OutputDebug, [create] desktops: %DesktopCount% current: %CurrentDesktop%
}
;
; This function deletes the current virtual desktop
;
deleteVirtualDesktop()
{
global CurrentDesktop, DesktopCount
Send, #^{F4}
DesktopCount--
CurrentDesktop--
OutputDebug, [delete] desktops: %DesktopCount% current: %CurrentDesktop%
}
; Main
SetKeyDelay, 75
mapDesktopsFromRegistry()
OutputDebug, [loading] desktops: %DesktopCount% current: %CurrentDesktop%
; User config!
; This section binds the key combo to the switch/create/delete actions
LWin & 1::switchDesktopByNumber(1)
LWin & 2::switchDesktopByNumber(2)
LWin & 3::switchDesktopByNumber(3)
LWin & 4::switchDesktopByNumber(4)
LWin & 5::switchDesktopByNumber(5)
LWin & 6::switchDesktopByNumber(6)
LWin & 7::switchDesktopByNumber(7)
LWin & 8::switchDesktopByNumber(8)
LWin & 9::switchDesktopByNumber(9)
;CapsLock & 1::switchDesktopByNumber(1)
;CapsLock & 2::switchDesktopByNumber(2)
;CapsLock & 3::switchDesktopByNumber(3)
;CapsLock & 4::switchDesktopByNumber(4)
;CapsLock & 5::switchDesktopByNumber(5)
;CapsLock & 6::switchDesktopByNumber(6)
;CapsLock & 7::switchDesktopByNumber(7)
;CapsLock & 8::switchDesktopByNumber(8)
;CapsLock & 9::switchDesktopByNumber(9)
;CapsLock & n::switchDesktopByNumber(CurrentDesktop + 1)
;CapsLock & p::switchDesktopByNumber(CurrentDesktop - 1)
;CapsLock & s::switchDesktopByNumber(CurrentDesktop + 1)
;CapsLock & a::switchDesktopByNumber(CurrentDesktop - 1)
;CapsLock & c::createVirtualDesktop()
;CapsLock & d::deleteVirtualDesktop()
; Alternate keys for this config. Adding these because DragonFly (python) doesn't send CapsLock correctly.
;^!1::switchDesktopByNumber(1)
;^!2::switchDesktopByNumber(2)
;^!3::switchDesktopByNumber(3)
;^!4::switchDesktopByNumber(4)
;^!5::switchDesktopByNumber(5)
;^!6::switchDesktopByNumber(6)
;^!7::switchDesktopByNumber(7)
;^!8::switchDesktopByNumber(8)
;^!9::switchDesktopByNumber(9)
;^!n::switchDesktopByNumber(CurrentDesktop + 1)
;^!p::switchDesktopByNumber(CurrentDesktop - 1)
;^!s::switchDesktopByNumber(CurrentDesktop + 1)
;^!a::switchDesktopByNumber(CurrentDesktop - 1)
;^!c::createVirtualDesktop()
;^!d::deleteVirtualDesktop()
  1. Сохраните файл.

Сохранение вашего первого скрипта AutoHotkey.ahk в Блокноте

  1. Этот скрипт AutoHotkey.ahk находится в папке «Документы». Откройте новое окно проводника (клавиатура: Win + E) и перейдите в «Документы».

AutoHotkey.ahk находится в вашей папке Documents

  1. Запустите скрипт, дважды щелкнув файл. Вы ничего не увидите, но AutoHotkey сейчас запускает скрипт.

Как это работает?

Сценарий работает, отслеживая, какой виртуальный рабочий стол вы используете в настоящее время. Когда вы удерживаете нажатой клавишу Windows и нажимаете цифры от 1 до 9, скрипт автоматически переключается влево или вправо на правильное количество раз, чтобы перейти на нужный рабочий стол. (Если вы нажмете номер рабочего стола, который еще не существует, ничего не произойдет.)

Тестирование ваших новых горячих клавиш

Чтобы проверить это, сначала создайте новый виртуальный рабочий стол. Для этого щелкните значок «Просмотр задач» на панели задач (или нажмите «Win + Tab»), затем нажмите «+ Новый рабочий стол». Или используйте сочетание клавиш Win + Ctrl + D.

Сделайте это один раз для каждого нового виртуального рабочего стола, который вы хотите создать. Каждый дополнительный рабочий стол будет ориентирован вправо от предыдущего.

Теперь вы можете переключиться на любой из этих рабочих столов, используя сочетания клавиш, определенные в сценарии. Удерживая нажатой клавишу Win, нажмите число от 1 до 9, и вы автоматически переключитесь на этот пронумерованный рабочий стол. Например, нажмите Win + 3, чтобы переключиться на третий виртуальный рабочий стол слева.

Остановка сценария

Чтобы прекратить использование сценария, перейдите в системный трей и щелкните правой кнопкой мыши значок AutoHotkey, который выглядит как большая зеленая буква «H», чтобы открыть меню уведомлений AutoHotkey Windows.

Заметка

Если вы не видите значок, используйте кнопку ^, чтобы показать скрытые значки.

AutoHotkey systray menu

В этом меню вы можете полностью приостановить горячие клавиши, сценарий паузы или выйти из автозапуска. Любое из этих действий возвращает ваши горячие клавиши в нормальное состояние.

Автоматический запуск скрипта при запуске Windows

Чтобы запускать скрипт автоматически при каждом запуске Windows, переместите скрипт в папку «Автозагрузка».

В Windows 10 папка «Автозагрузка» находится по адресу:

 [Your home folder]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Эта папка обычно скрыта, поэтому вы можете открыть ее только в Проводнике, если выберете Вид → Просмотр скрытых файлов в верхней части окна Проводника.

Однако вы также можете получить доступ к папке «Автозагрузка» напрямую, введя полный путь к каталогу в поле «Выполнить». Нажмите Win + R, чтобы открыть окно «Выполнить», затем введите полный путь к каталогу. Вы можете использовать переменную среды% APPDATA%, чтобы автоматически заполнять начало имени пути. Например, вы можете ввести это в поле Run:

 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup

Когда вы нажимаете Enter, эта папка открывается в новом окне проводника.

Теперь переместите ваш скрипт в эту папку. Если папка «Документы» по-прежнему открыта в другом окне, перетащите файл AutoHotkey.ahk в папку «Автозагрузка».

Перемещение AutoHotkey.ahk в папку автозагрузки Windows 10

Если вы решите, что не хотите запускать скрипт автоматически при каждом запуске Windows, снова откройте эту папку и переместите скрипт в другое место. Вы всегда можете запустить его вручную, дважды щелкнув по нему, независимо от того, где он находится на вашем компьютере.

Дополнительные замечания

Этот скрипт переопределяет стандартные ярлыки Windows для Win + (Число), которые обычно открывают элементы на панели задач (Win + 1 открывает первый элемент и т. Д.). Однако некоторые встроенные приложения Windows, такие как «Настройки» или «Магазин», игнорируют скрипт AutoHotkey. Если вы используете одно из этих окон при попытке использовать новые горячие клавиши, оно использует исходное поведение горячих клавиш Windows и открывает что-то на панели задач вместо нового рабочего стола. Следует также помнить, что AutoHotkey быстро переключается между виртуальными рабочими столами влево и вправо, один за другим. Если он столкнется с виртуальным рабочим столом, на котором открыто одно из этих специальных приложений, он перестанет переключаться и останется на этом рабочем столе.

К сожалению, ярлыки Windows по умолчанию нельзя отключить, что неудобно, но если у вас не открыто одно из этих окон приложений, скрипт AutoHotkey будет работать нормально. Вы обнаружите, что скрипт отлично работает с 95% других ваших программ.

Однако, если вы предпочитаете, вы можете отредактировать ваш скрипт AutoHotkey, чтобы использовать другую комбинацию клавиш.

Редактирование вашего скрипта AutoHotkey

Откройте Блокнот (Пуск → Стандартные Windows → Блокнот).

В Блокноте откройте файл AutoHotkey. Если у вас уже есть папка «Автозагрузка», вы можете перетащить значок в окно «Блокнот», чтобы открыть файл.

Или вы можете открыть его, выбрав Файл → Открыть в Блокноте и введя имя файла% APPDATA% \ Microsoft \ Windows \ Меню Пуск \ Программы \ Запуск \ AutoHotkey.ahk.

Когда файл открыт, вы можете внести изменения в сценарий в соответствии с вашими потребностями. Например, если вы предпочитаете использовать комбинацию горячих клавиш CapsLock + (Number), вы должны искать следующие строки в скрипте:

LWin & 1::switchDesktopByNumber(1)
LWin & 2::switchDesktopByNumber(2)
LWin & 3::switchDesktopByNumber(3)
LWin & 4::switchDesktopByNumber(4)
LWin & 5::switchDesktopByNumber(5)
LWin & 6::switchDesktopByNumber(6)
LWin & 7::switchDesktopByNumber(7)
LWin & 8::switchDesktopByNumber(8)
LWin & 9::switchDesktopByNumber(9)

В этих строках измените LWin на CapsLock:

CapsLock & 1::switchDesktopByNumber(1)
CapsLock & 2::switchDesktopByNumber(2)
CapsLock & 3::switchDesktopByNumber(3)
CapsLock & 4::switchDesktopByNumber(4)
CapsLock & 5::switchDesktopByNumber(5)
CapsLock & 6::switchDesktopByNumber(6)
CapsLock & 7::switchDesktopByNumber(7)
CapsLock & 8::switchDesktopByNumber(8)
CapsLock & 9::switchDesktopByNumber(9)

Сохраните изменения и дважды щелкните скрипт, чтобы обновить его в AutoHotkey. Если вы допустили ошибки в своем скрипте, AutoHotkey не запустит его и выдаст сообщение об ошибке. В противном случае вам будет предложено обновить уже запущенный скрипт:

Запрос подтверждения обновления скрипта AutoHotkey

Выберите «Да», чтобы новые изменения вступили в силу.

Если у вас есть идея для другой комбинации горячих клавиш, вы можете изменить ее на любую комбинацию горячих клавиш, которая еще не используется.

Выбор комбинации клавиш

AutoHotkey имеет свои собственные специальные слова и символы, которые он использует для представления клавиш клавиатуры в своих скриптах. Например, клавиша Ctrl представлена ​​восклицательным знаком. Чтобы использовать Ctrl + (Число) в качестве комбинации горячих клавиш, вы можете изменить «CapsLock» "to"! "в вашем скрипте. Тогда строки будут выглядеть так:

!1::switchDesktopByNumber(1)
!2::switchDesktopByNumber(2)
!3::switchDesktopByNumber(3)
!4::switchDesktopByNumber(4)
!5::switchDesktopByNumber(5)
!6::switchDesktopByNumber(6)
!7::switchDesktopByNumber(7)
!8::switchDesktopByNumber(8)
!9::switchDesktopByNumber(9)

Обратите внимание, что когда вы используете символ, а не слово, вы не должны использовать " "в синтаксисе сценария. Это правило является одним из специальных правил, которые AutoHotkey использует в своем языке сценариев.

Вы можете найти полный список всех специальных слов и символов для скриптов AutoHotkey по адресу autohotkey.com/docs/KeyList.htm.

Ссылка на основную публикацию
Adblock
detector