本文最后更新于:2024年5月7日 下午
微软在 Windows 10 中新增了虚拟桌面,我们可以通过新建虚拟桌面放置不同的软件窗口。但使用起来很不方便,没有方便的快捷键和管理工具,小程序 Virgo 拯救了微软的桌面。
背景
- 微软的虚拟桌面是很棒的功能,但快捷键
Ctrl + Win + ← →
需要两只手才能按出; - 应用支持也不友好,如果在第一个桌面中已经打开了 QQ、微信,那么当你在第二个桌面中点击任务栏的图标时,仍然会弹回前一个桌面,这就完全打断了二号桌面上的操作,再次返回二号桌面时就需要重新适应桌面环境了;
- 应用在桌面间移动需要拖来拖去也不是很快捷。
Virgo
- Virgo 是一款 18 年最后更新的一款针对 Windows 虚拟桌面切换的小工具,由 C++ 语言编写,核心代码仅有320多行
- 实现原理上也是很直接的,事实上并没有用到虚拟桌面,但记录了几组窗口的状态,在不同的窗口显示、隐藏之间切换,达到虚拟桌面的效果
- 项目主页:https://github.com/henkman/virgo
安装使用
使用官方可执行文件
- 官方文档:
- 下载 zip 安装包
- 解压发现一个 virgo.exe 文件,大小只有 8 KB,拿出来直接就可以运行
- 顺利运行的话此时不会发生任何事情,仅在任务栏小图标多了一个
1
- 此时可以使用快捷键切换桌面了,使用方法如下
快捷键 | 说明 |
---|---|
ALT + 1 … 4 | 切换桌面到 1 … 4 |
CTRL + 1 … 4 | 移动活动窗口到桌 1 … 4 |
ALT + CTRL + SHIFT + Q | 退出程序(唯一正常退出的方法) |
ALT + CTRL + SHIFT + S | 开启/停止 其他快捷键(默认开启) |
- 此时就可以愉快地享受丝滑地屏幕切换了
常见错误
1 |
|
- 错误原因为快捷键注册时和其他程序冲突,可以将其他软件关闭再重试
- 比较稳健的解决方案为重启后第一个开启 Virgo 程序
但不管怎么说快捷键冲突可能性还是很大的,需要更彻底的方法规避这个问题
源码编译
- 代码既然简单那应该也比较容易调整,我们配置好代码编译环境,调整代码后编译我们需要的运行程序可以一劳永逸解决问题
配置编译环境
- 登录 http://msys2.github.io/ 下载 msys2
- 安装程序
- 安装后运行 Msys2 终端(也可以在安装完成后勾选运行终端)
- 在终端运行命令安装
mingw-w64-i686-gcc
和mingw-w64-i686-make
1 |
|
- 将
msys32\mingw32\bin\mingw32-make.exe
文件复制一份,改名make.exe
- 并将该目录加入到系统目录中
- 至此我们已经可以运行
make
命令了
编译源码获取可执行文件
- 打开 git bash 终端
- 克隆仓库并编译生成 exe 文件:
1 |
|
- 即可得到和官方相同的 exe 文件
修改源码
官方工具使用中的问题
- 官方的 Virgo 快捷键
Ctrl + num
和 Typora 标题冲突,这是无法接受的 - 支持 4 块桌面,我们可能需要更多
- 快捷键冲突就报错,有些矫情
修改源码
-
修改桌面数量
第 21 行修改 4 变为 8
1
2
3#define NUM_DESKTOPS 4
// 改为
#define NUM_DESKTOPS 8 -
修改快捷键
将
Ctrl + num
改为Alt + Shift + num
修改第249行为
1
register_hotkey(i * 2 + 1, MOD_ALT | MOD_SHIFT | MOD_NOREPEAT, i + 1 + '0');
-
禁止报错
将第 176 行的函数 register_hotkey 改为
1
2
3
4static void register_hotkey(unsigned id, unsigned mod, unsigned vk)
{
RegisterHotKey(NULL, id, mod, vk);
} -
之后重新编译
1
make
-
得到的程序运行时会忽略冲突的快捷键,可以支持 8 个桌面,快捷键为:
快捷键 说明 ALT + 1 … 8 切换桌面到 1 … 8 ALT + SHIFT + 1 … 8 移动活动窗口到桌 1 … 8 ALT + CTRL + SHIFT + Q 退出程序(唯一正常退出的方法) ALT + CTRL + SHIFT + S 开启/停止 其他快捷键(默认开启)
-
分享这个程序,需要的同学可以替换官方的程序来用
-
改良版 Virgo :下载链接
参考资料
文章链接:
https://www.zywvvd.com/notes/system/windows/virgo/virgo/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付
Windows 桌面一键切换工具 Virgo
https://www.zywvvd.com/notes/system/windows/virgo/virgo/