微软在 Windows 10 中新增了虚拟桌面,我们可以通过新建虚拟桌面放置不同的软件窗口。但使用起来很不方便,没有方便的快捷键和管理工具,小程序 Virgo 拯救了微软的桌面。
背景 {#背景}
- 微软的虚拟桌面是很棒的功能,但快捷键
Ctrl + Win + ← →
需要两只手才能按出; - 应用支持也不友好,如果在第一个桌面中已经打开了 QQ、微信,那么当你在第二个桌面中点击任务栏的图标时,仍然会弹回前一个桌面,这就完全打断了二号桌面上的操作,再次返回二号桌面时就需要重新适应桌面环境了;
- 应用在桌面间移动需要拖来拖去也不是很快捷。
Virgo {#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 | 开启/停止 其他快捷键(默认开启) |
- 此时就可以愉快地享受丝滑地屏幕切换了
常见错误 {#常见错误}
- 错误原因为快捷键注册时和其他程序冲突,可以将其他软件关闭再重试
- 比较稳健的解决方案为重启后第一个开启 Virgo 程序
但不管怎么说快捷键冲突可能性还是很大的,需要更彻底的方法规避这个问题
源码编译 {#源码编译}
- 代码既然简单那应该也比较容易调整,我们配置好代码编译环境,调整代码后编译我们需要的运行程序可以一劳永逸解决问题
配置编译环境 {#配置编译环境}
- 登录 http://msys2.github.io/ 下载 msys2
- 安装程序
- 安装后运行 Msys2 终端(也可以在安装完成后勾选运行终端)
- 在终端运行命令安装
mingw-w64-i686-gcc
和mingw-w64-i686-make
- 将
msys32\mingw32\bin\mingw32-make.exe
文件复制一份,改名make.exe
- 并将该目录加入到系统目录中
- 至此我们已经可以运行
make
命令了
编译源码获取可执行文件 {#编译源码获取可执行文件}
- 打开 git bash 终端
- 克隆仓库并编译生成 exe 文件:
- 即可得到和官方相同的 exe 文件
修改源码 {#修改源码}
官方工具使用中的问题 {#官方工具使用中的问题}
- 官方的 Virgo 快捷键
Ctrl + num
和 Typora 标题冲突,这是无法接受的 - 支持 4 块桌面,我们可能需要更多
- 快捷键冲突就报错,有些矫情
修改源码 {#修改源码-2}
-
修改桌面数量
第 21 行修改 4 变为 8
-
修改快捷键
将
Ctrl + num
改为Alt + Shift + num
修改第249行为
-
禁止报错
将第 176 行的函数 register_hotkey 改为
-
之后重新编译
-
得到的程序运行时会忽略冲突的快捷键,可以支持 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/