即不管当前在哪个桌面,每次启动应用时都会先切换到绑定的桌面再启动程序。
当前能想到的就是修改 autohotkey 脚本,在使用快捷键启动程序时,先切换到对应的桌面,再启动程序,不过如果使用鼠标双击应用的话就没办法了,而我也只是常用的程序设置了快捷键,不常一旦用鼠标打开,就可能会把当前的桌面搞乱。
多桌面其实有两种使用方案: 一种是固定将某一类程序绑定再同一个窗口中,比如我再 Mac 中,就将文本编辑、浏览器和命令行工具绑定到窗口三,这样敲代码时在这些应用之间切换就不会有桌面切换。而聊天工具则绑定到窗口四,避免聊天影响敲代码。 另一种使用方案是完全独立的桌面,如桌面一用来开发、桌面二用来娱乐。这种在 Windows 下可以实现,Windows 在多桌面中,同一个应用可以在多个窗口中重新启动。不过这种的缺点就是如果场景规划过细,则需要频繁进行桌面切换,之后才能使用快捷键切换应用,且需要有对应的程序支持(非常复杂,只能用 autohotkey 实现,且目前网上大部分都没有针对这种设计的脚本)。如果场景规划过粗,则同一个桌面内将会有多种应用,切换这些应用也会成为问题。 所以我比较倾向于第一种,这就需要 Win10 能够实现多桌面应用绑定。最前面写的解决方法是我刚想到的,在这之前,我是直接不使用多桌面了,而是全部应用都在一个桌面中打开,然后使用快捷键切换应用,先凑合用,像 Mac 那种多桌面我觉得还是比较清爽的。
1
sinnosong1 2022-08-06 09:40:32 +08:00
你在一个桌面里面,然后用 WIN+N(1-9)切换软件不行嘛?
|
2
dingwen07 2022-08-06 09:44:04 +08:00 via iPhone
多任务,右键对应的窗口
|
3
dingwen07 2022-08-06 09:45:34 +08:00 via iPhone
记错了,忽略#2
|
4
dingwen07 2022-08-06 09:47:10 +08:00 via iPhone
我的方案是第二种,Windows 下切换虚拟桌面是瞬间完成的不需要过动画,所以还算方便
|
5
revalue 2022-08-06 09:54:47 +08:00
win 和 mac 都用过。个人而言多桌面用于开全屏应用独占一个桌面,否则尽量不用
|
6
brucecao 2022-08-06 09:55:56 +08:00
win10 的多桌面不能设置不同壁纸,不爽!
|
7
wellwellwell 2022-08-06 10:14:08 +08:00
windows 的多桌面没有 mac 那么灵活, 我此前也想像你一样这么折腾, 我在 mac 上开了 10 个桌面, 每个桌面都有自己的专属, 其中一个桌面放垃圾, 就是不常打开的统统设定到那个桌面.
我也想在 windows 上运用这个体系, 但是没有成功, 大致有三个原因 第一个原因是, 桌面切换不方便. 我在桌面 2 的时候想打卡桌面 8, 会把人累死. ahk 勉强实现, 但并不优雅 第二个原因是, 像你说的没有应用绑定这种设置, 开机重启后会带来不确定性. 第三个原因是, 没有找到应用在各个桌面穿梭的功能, 就是我希望一些应用可以灵活出现在任何桌面, 不是我首次打开的时候, 而是我当前在哪个桌面它就该出现在哪个桌面, 比如词典应用, 或者终端. 我现在使用单桌面 在 windows 上 |
8
cocong OP @wellwellwell 用了 Windows 一个月了,感觉用 autohotkey 应该是可以实现任何想要的功能的,就是那玩意太复杂了,貌似快捷键映射还有副作用!
|
9
wellwellwell 2022-08-06 11:15:29 +08:00
@cocong 没错, 如果想小打小闹, autohotkey 很实用, 如果想实现复杂功能, 需要系统去学习, 这下成本太高了.
人太容易陷入追求最佳效率上无法自拔, 我曾为了一致性问题上在 windows 上花费大量时间, 为了让它和 mac 行为一致, 最后完全失败, 比如我无法在 windows 上找到和 alfred 匹敌的应用, 这类事非常多, 随着使用的深入, 我现在的策略是, 少用 windows, 遵照 windows 土鳖的习俗 |
10
xiaocsl 2022-08-06 11:47:09 +08:00
"同一个应用可以在多个窗口中重新启动" 除了这一点之前没做过,不太了解.
其他的方案,需要的核心功能都有现成的.只不过基本都只限于核心功能,所有的"管理"功能都得自己写.不清楚 AutoHotkey 写"管理系统"麻烦不.. 如果不限死要用 AutoHotkey 的话, 换 c/c++/c# 都不算多麻烦,核心功能模块都有现成的或者半现成的库可以直接用 前段时间的 Win32 开发其中有个模块涉及到类似的功能. 简单的工作逻辑是,监控窗口的创建或者进程的创建,比对进程信息对窗口进行分类,移动对应窗口到指定虚拟桌面.. 以 EnumWindows 为起点, 来达到监控窗口的目的,比如发现新窗口后, 使用 GetWindowThreadProcessId 来获取窗口对应的进程 ID,再获取详细的进程信息.比对进程对应设定的桌面,进行再进行对应的虚拟桌面切换. 切换桌面比如说用 https://www.nuget.org/packages/VirtualDesktop/ 来实现,没多少代码量. 代码最多的就是都是"管理"模块,如果一定要用 AutoHotkey 来实现的话,虚拟桌面管理也可以打包成 DLL, 跟用 EnumWindows 一样也 DllCall 来调用.. |
11
mmdsun 2022-08-06 20:04:29 +08:00 via iPhone
@brucecao Win11 可以设置壁纸给不同的桌面,右键桌面即可。 微软这点更新居然不给 Win10 ?
|
13
iX8NEGGn 2022-08-07 12:11:48 +08:00
为什么不用现成的软件,dexpot 虽然不更新,但依然好用
|