Qingwa
(青小蛙)
1
原始链接在: PowerToys 0.101 发布:Windows 向 macOS 看齐,新增同应用多窗口间快速切换 - 小众软件
PowerToys 0.101 发布,新增了一个非常实用的功能:Window Hopper,可以通过快捷键在同一个应用的多个窗口之间快速切换。比如同时打开了 5 个文件夹窗口,按下快捷键 alt + `,就能在这5个窗口之间依次切换。@Appinn
与此同时,想切换到其他应用,则依旧使用熟悉的 Alt + Tab 快捷键。
Window Hopper:同应用多窗口间循环切换
在更新完 PowerToys 0.101 之后,就能看到这个新功能了,微软解释说:Window Hopper 允许你在当前聚焦应用程序的窗口之 间循环切换。
什么是同应用多窗口?
比如,你用资源管理器打开了三个文件夹,分别是 C 盘和 D 盘和 Appinn 文件夹,这就是同应用(资源管理器)3窗口。
再比如,你打开了多个 Chrome 窗口(注意不是标签页),按下快捷键之后,只在 Chrome 间切换,不会碰到其他软件。
向 macOS 看齐:Command + `
青小蛙在第一次使用 macOS 的窗口切换时,完完全全不习惯。因为当我按下同键位的 Command + Tab 时,他会在不同应用间切换,但找不到同应用的其他窗口,就很迷糊。
直到学会了 Command + `,并且逐渐搞清楚了使用逻辑,才明白 macOS 把窗口切换细分为了同一应用与所有应用。
现在,PowerToys 算是给 Windows 补上了这块体验。
不同点
Window Hopper 与 macOS 不同的点,它还是会出现一个预览窗口,这一点与 Alt + Tab 相同:
而在 macOS 里,直接切换,没有这个预览。
与 Alt + Tab 的区别是什么?
最后一个问题,与 Alt + Tab 的区别是什么?
打个比分:
假设现在打开了 3 个资源管理器、5 个 Chrome 窗口、1 个微信、2 个Word 文档、一个记事本……
按 Alt + Tab,这些窗口都会出现在切换列表里。
但如果你现在就在资源管理器里,只想从 C 盘切到刚才打开的 Appinn 文件夹,Window Hopper 的 Alt + ` 就只会在那 3 个资源管理器窗口之间循环,而不会出现 Chrome、微信等窗口。
最后,如果你想反着来切换,还能使用 Alt + Shift + Tab 快捷键。
获取
原文:https://www.appinn.com/powertoys-0-101/
rt23i950
(Totomo)
5
window-switcher.exe
566 KB (580,096 字节)
就能搞定的事情,
powertoys现在这体积实在爱不起来
1 个赞
loneGM
(GM)
7
现在的问题是,power倒是够power了,但是不够toy,只想用其中某几个功能但是还得安装一整个软件,太大了
1 个赞
HHPLow
(HHPLow)
10
1 个赞
个人觉得键盘最低也得是75%配列(绝大多数轻薄本的键盘),再低就影响使用了。当然104配列最好
Kyun
(權少)
12
我之前用61,現在用68,工作還是夠用的,打游戲宿舍還有把87。
我也有类似的需求,但是我选择让 AI 帮我整个 AHK 脚本。更轻量。
我把这个脚本放在 VimDesktop 上,免得再开一个软件。
!`::
; 获取当前激活窗口的进程名称
WinGet, active_exe, ProcessName, A
if (active_exe = "")
return
; 针对文件资源管理器 (explorer.exe) 的特殊处理
; 必须限制为 CabinetWClass,否则会把任务栏和桌面当成窗口参与切换
if (active_exe = "explorer.exe") {
WinGet, winList, List, ahk_class CabinetWClass
} else {
; 获取当前进程下的所有窗口列表
WinGet, temp_winList, List, ahk_exe %active_exe%
; 过滤掉没有标题的隐藏/辅助窗口 (现代浏览器和软件常有此类不可见窗口)
ValidWinCount := 0
Loop, %temp_winList%
{
current_id := temp_winList%A_Index%
WinGetTitle, current_title, ahk_id %current_id%
if (current_title != "") {
ValidWinCount++
winList%ValidWinCount% := current_id
}
}
; 将过滤后的有效窗口数量赋给 winList
winList := ValidWinCount
}
; 如果同类有效窗口少于 2 个,则无需切换
if (winList < 2)
return
; AHK 获取的窗口列表是按 Z 轴(从最顶层到最底层)排列的
; 我们提取最底部的那个窗口,并将其激活带到前台,即可实现完美的循环切换
bottomWin := winList%winList%
WinActivate, ahk_id %bottomWin%
return