在 Linux 中,我使用快捷方式在 4 个工作区之间切换:win+ 1/2/3/4。
我希望在 Windows 10 或 Windows 11 中拥有类似的东西。
更新解决方案
- (Windows 11 不需要此步骤 - 仅适用于 Windows 10 用户)通过此方法将 Windows 版本更新到最新版本 更新程序. 您可能还需要适用于 Visual Studio 2015 的 Visual C++ 可再发行组件
- 下载并解压缩Windows 10 虚拟桌面增强器(0.9.1)对我有用。
- 将文件 settings.ini 的内容更改为
[KeyboardShortcuts] Switch=LWin Move=LAlt, Shift, Ctrl MoveAndSwitch=LAlt, Shift Previous=Left Next=Right PlusTen=
(仅限 Windows 11 用户)替换虚拟桌面访问器文件来自https://github.com/skottmckay/VirtualDesktopAccessor/tree/master/x64/Release
跑步虚拟桌面增强器.exe作为行政人员。
使用快捷键win+ 1/2/3/n(其中n是您创建的虚拟桌面的数量)可直接在虚拟桌面之间切换, win+`~可实现“公开”效果。
答案1
您所需要的如下:
- 捕捉窗口: WIN+LEFT或(可与或 一起RIGHT 使用以进入象限)UPDOWN
- 切换到最近窗口: 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+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}
}
答案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
}