3

Допустим, у меня есть три виртуальных рабочих стола. Я знаю, что могу перемещаться по ним, используя:

ctrl + windows + left | право

Однако есть ли способ заставить его вернуться к началу, если я достигну конца? Так что, если я нахожусь на рабочем столе 3 "Ctrl + Windows + право" приведет меня к рабочему столу 1?

Я знаю, что это может быть возможно с помощью скрипта AutoHotkey. Но я не знаю, как заставить это работать.

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

Спасибо

2 ответа2

0

Это просто идея для чего-то, что можно попробовать и адаптировать ... не проверено.

Пока скрипт выполняется, он просто сохраняет активный виртуальный рабочий стол в переменной, не обязательно, чтобы INI-файл.

Сценарий должен быть запущен с активным виртуальным рабочим столом # 1 или принудительно синхронизироваться. Функция форсирования предполагает, что вы можете нажимать ctrl+win+left столько раз, сколько захотите, и она не будет проходить мимо первого виртуального рабочего стола, когда попадет туда.

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

Вы также можете добавить собственный дубликат ярлыка для одного или обоих направлений ... показывая это как ctrl+alt+F8, например, в том случае, если для переключения между рабочими столами необходимо, чтобы кнопка мыши была назначена чему-то другому, чем стандартные клавиши Windows.

#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  
0

Другой вариант - использовать виртуальные рабочие столы Finestra, которые выполняют эту циклизацию по умолчанию, а горячие клавиши настраиваются.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .