Как изменить сочетание клавиш для переключения между виртуальными рабочими столами в Windows 10?

64

В Linux я использую ярлык для переключения между 4 рабочими пространствами: win+ 1/2/3/4.

Я хотел бы иметь что-то подобное в Windows 10.

ОБНОВЛЕНИЕ РЕШЕНИЯ 2017, ОКНА 10x64

  1. Обновите версию Windows до последней версии с помощью этого средства обновления . Вам также может понадобиться распространяемый Visual C ++ для Visual Studio 2015
  2. Скачайте и распакуйте этот Windows 10 Virtual Desktop Enhancer (0.9.1), который работает для меня.
  3. Измените содержимое файла settings.ini на
[KeyboardShortcuts]
Switch=LWin
Move=LAlt, Shift, Ctrl
MoveAndSwitch=LAlt, Shift
Previous=Left
Next=Right
PlusTen=
  1. Запустите virtual-desktop-gainr.exe от имени администратора .
Дариуш Филипяк
источник
2
Это правильный вопрос. В Windows 10 вам разрешено переключаться между представлениями виртуального рабочего стола. Это очень похоже на то, как Mac OSX и Linux позволяли вам переключаться в прошлом.
Герута
Может быть, есть командная строка или команда powershell, которая может переключаться на определенный рабочий стол? (Если так, тогда должно быть легко сделать пакетный скрипт или что-то еще, а затем просто использовать autohotkey для перенаправления win + 1/2/3/4 на указанный пакетный скрипт) в противном случае, когда программа переключит фокус на, Windows 10 переключится на рабочий стол эта программа включена. Таким образом, это означает, что если есть способ открыть программу на определенном рабочем столе, можно было бы сделать то, что я описал выше, с помощью некоторой хитрости, основанной на этой функции.
Cestarian
Обратите внимание, что по умолчанию в Windows 10 WIN + 1/2/3/4...открывает, переключает или свернет окно в соответствующей позиции с номером на панели задач. Например, если у меня Chrome закреплен на панели задач в положении 1 и он в данный момент закрыт, я WIN + 1его открою. Повторное нажатие свернет его, а повторное нажатие вернет окно обратно. Я могу сочетать это с другими ярлыками; например, нажатие WIN + SHIFT + 1откроет новое окно Chrome, например.
Ниндзяканнон
Обновление: версия (0.9.1) работает без проблем на вер. 1903 год, май 2019 года
Дариуш Филипяк,

Ответы:

41

Вам нужно следующее:

  • Окно привязки: WIN +LEFTилиRIGHT (можно использовать сUPилиDOWNчтобы попасть в квадранты)
  • Переключиться в недавнее окно: Alt +Tab(без изменений) - удержание показывает новый вид окна просмотра задач, отпустить и переключиться в приложение.
  • Представление задач: WIN +Tab- Новое представление задач открывается и остается открытым.
  • Создать новый виртуальный рабочий стол: WIN +Ctrl+d
  • Закрыть текущий виртуальный рабочий стол: WIN +Ctrl+F4
  • Переключение виртуального рабочего стола: WIN +Ctrl+LEFTилиRIGHT
Geruta
источник
Таким образом, разница заключается в том, что вы сначала должны создать второй рабочий стол с помощью (WIN + CTRL + D), а затем переключиться на него с помощью (WIN + CTRL + RIGHT)
Geruta
17
Все еще не хватает способа переключиться на конкретный рабочий стол с помощью одного ярлыка (т.е. прямо с рабочего стола 1 на рабочий стол 3)
Cestarian
К сожалению, WIN CTRL RIGHT не работает на Samsung Ativ 9+. LEFT работает, но между 3 виртуальными рабочими столами нет перехода. Кто-нибудь с лучшим опытом?
Карл
3
Отказался в том, что не ответил на вопрос: он спрашивает, как его изменить, в частности, чтобы иметь возможность использовать номер рабочего стола для переключения.
Люк
16

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

https://github.com/pmb6tz/windows-desktop-switcher

Мой сценарий использует CapsLock, потому что это более удобно для меня, но вы можете легко настроить его на работу для вас. Там, наверное, одна или две ошибки, но в целом я нашел, что это довольно солидно. Надеюсь, что это помогает вам!

droptic
источник
Этот скрипт просто отлично работает после того, как я закомментировал последний абзац кода. Спасибо, что поделились. Я сделал запрос на извлечение изменений, внесенных в код.
Дэвид
12

Я только что сделал скрипт для autohotkey, который выполняет это в Windows 10 для 10 рабочих столов.

Как заставить это работать:

Скачайте и установите autohotkey . Скопируйте приведенный ниже код в блокнот и сохраните его с расширением .ahk

Я предлагаю сделать ярлык этого файла в папке автозагрузки, чтобы он запускался при запуске Windows.

Горячие клавиши по умолчанию:

Переключить рабочий стол: WIN + DESKTOP NUMBER (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}
}
OptimistPrime
источник
Также вы можете добавить #NoTrayIcon в начале скрипта, если вам не нравится маленький зеленый значок на панели задач.
OptimistPrime
1
Ох ... Я уже создал лучший скрипт, который получает активные и общие рабочие столы из реестра. Хорошая идея!
OptimistPrime
1
Хотя, пожалуйста, обратите внимание, что путь к реестру может отличаться для каждого пользователя / компьютера. Я не знаю, что на это влияет, но мой путь для текущего идентификатора рабочего стола находился в папке с номером 2, а не 1: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\2\VirtualDesktops
OptimistPrime
Потрясаящий человек!! Спасибо, что поделился. Я просто изменяю # 1 с помощью ^ 1. Мне нравится использовать Ctrl вместо клавиши Win.
Георгий Обрегон
Этот скрипт является УДИВИТЕЛЬНЫМ! Единственное, что у меня есть, - это то, что у меня уже есть перераспределение заглавных букв, и я хотел бы добавить это к своему сценарию. К сожалению, это не работает. Это работает, только если я удалю следующую строку (перед сценарием): CapsLock :: Ctrl Любые идеи, как я могу это исправить? Удаление этой строки работает, но наличие CAPSLOCK в качестве Ctrl очень важно для меня ...
bitstream
1

Например, я хочу установить 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
    }
АлиОсат Мостафави
источник
0

Хорошо, частичное решение ... потому что я не знаю, как перейти прямо к выбранному виртуальному рабочему столу:

Эта программа autohotkey со скриптом:

#NoTrayIcon
#2::^#Right
#1::^#Left
#3::Return
#4::Return
Дариуш Филипяк
источник
1
Это хорошо, если у вас есть только два виртуальных рабочих стола, а у меня их три.
Майкл Бейер,
-1

Я сделал обновление на месте непосредственно с Windows 7 до 10 и изо всех сил пытался использовать клавиши Windows + CTRL + Arrow для переключения между рабочими столами, поскольку они просто не будут работать. Однако в моем случае решение было простым - используйте одну функциональную клавишу (F1, F2, F3 и т. Д.), Чтобы легко переключаться между виртуальными рабочими столами. Теперь я не знаю, относится ли это к моему ноутбуку HP или к части выпущенной версии, но это одновременно элегантно и просто. Я предполагаю, что до тех пор, пока у вас не назначены функциональные клавиши для какой-либо другой цели, это должно работать и для вас.

Серый камышевка
источник
1
F1 - помощь на каждой машине с Windows, которую я когда-либо использовал. Твой ответ не имеет смысла.
DavidPostill
Это определенно не мой опыт работы с ноутбуком Dell Precision (с Win 10). Win + Ctrl + F1 / F2 / F3 ничего не делают. Хотя было бы здорово, если бы они это сделали.
Майкл Бейер
-1

Я использую Desktops v2.0 от SysInternals, и у меня есть 4 рабочих стола под одной клавишей: F1, F2, F3, F4 (кто-нибудь использует F1 для вызова справки, правда?). Для меня решение Windows 10 непригодно из-за сочетания клавиш.

Рабочие столы v2.0 официально: https://technet.microsoft.com/en-us/sysinternals/cc817881.aspx

dblacha
источник
Этот продукт не поддерживает Windows 8 и выше. Откуда я это знаю, потому что я специально вспоминаю вопрос в прошлом, в котором задавался вопрос об упомянутой программе для Windows 8
Ramhound
1
Однако он отлично работает под Windows 8.1 и 10.
dblacha
-2

Скрипт AHK, предоставленный OptimistPrime: https://superuser.com/a/1050690/184229 , не работает для меня (ключи не действуют), но

этот работает просто отлично: https://github.com/pmb6tz/windows-desktop-switcher/blob/master/desktop_switcher.ahk

DVO
источник
Пожалуйста, процитируйте основные части ответа по ссылочной ссылке (ссылкам), так как ответ может стать недействительным, если связанные страницы изменятся.
DavidPostill
Я бы предпочел прокомментировать ответ, на который я ссылался, но который мне не позволили. Если бы вы внимательно посмотрели на мой ответ, вы бы заметили, что: 1. он дает ответ на оригинальный вопрос 2. он был бы очень многословным и неадекватным для копирования содержимого второй ссылки, которую я дал.
dvo