在OS X的早期版本中,默认情况下,任务控件中会显示桌面缩略图。
但是,在El Capitan中,默认情况下它们是折叠的,并且仅显示名称(即Desktop1,Desktop2等)。我必须将鼠标指针放在其上以将其展开并查看缩略图。
有什么办法可以恢复以前的行为?
在OS X的早期版本中,默认情况下,任务控件中会显示桌面缩略图。
但是,在El Capitan中,默认情况下它们是折叠的,并且仅显示名称(即Desktop1,Desktop2等)。我必须将鼠标指针放在其上以将其展开并查看缩略图。
有什么办法可以恢复以前的行为?
Answers:
编辑1/30/16:在过去几个月中,我在日常工作流程中使用了几个不同的选项之后,我几乎完全确定了@Arctus提出的解决方案。尽管需要第三方程序BetterTouchTool(BTT),但我认为它是当前最好的选择。
有关常规方法和有用的屏幕截图,请参见@Arctus的答案。这是该职位缺少的细节:
您可能会注意到,BTT实际上有一个预定义的操作,称为“任务控制并立即显示桌面预览”。不幸的是,在打开任务控制与扩展桌面预览之间有一个令人讨厌的漫长延迟,这使我无法使用它。此自定义解决方案非常流畅,非常一致,并且似乎不会引起任何不良行为。
BetterTouchTool方法的另一个主要变体是使用左上角或右上角的热角打开任务控制,然后使用BTT将鼠标移到角落并在选择手势时返回。除了向上或向下滑动三指或四指外,这还允许其他手势,但是它会引入您可能不需要的热角。我发现我经常不小心触发热点,以至于这对我来说是不可行的选择。再次,YRMV。
无论如何,我都不是BTT的专家,但是如果有人有任何疑问,我很乐意提供帮助。祝好运!
/编辑
原始帖子:
作为Fletcher91提到,缩略图的,如果你从“桌面空间”发射任务控制(一个空间中包含“桌面1”,“桌面4”等的名称),默认的崩溃,而缩略图扩展默认情况下,如果您启动来自“全屏应用程序空间”(通过全屏显示窗口并为该应用程序窗口命名的空间,如“注释”或网页标题(如果是浏览器窗口)的任务控制)。
这样做的原因是任务控制具有两个功能:
显示当前桌面空间中的所有打开的窗口,以方便在它们之间进行切换(“所有打开的窗口”视图)。
显示所有空间的列表,以便在它们之间轻松切换。
我与一位苹果代表交谈时告诉我,从桌面空间打开“任务控制”时,折叠缩略图的动机是为全开窗口视图提供更多的屏幕房地产,并减少混乱。当从一个全屏应用空间,焦点更改到打开任务控制所有打开窗口查看了最近查看的桌面空间和缩略图均展开(胡乱猜测:这大概是因为全屏应用空间,也有没有其他窗口位于同一空间,因此打开任务控制的唯一原因是切换空间)。
Apple代表还确认,默认情况下当前无法启用缩略图扩展。
但是,我进行了一些研究并测试了一些其他答案,并且我已经确认了一些可能有用的特殊情况:
如果您使用“热角” System Preferences >> Mission Control
并设置左上角或右上角以打开Mission Control,它将模拟旧的行为,但这仅是因为在触发热角回调时,您将鼠标放置在了无论如何都会触发缩略图扩展)。不幸的是,这可能是目前最好的选择,尽管它涉及到改变习惯,但这并不总是那么容易。如果您采用这种方法,建议您禁用触控板手势,以便这是唯一的方法-至少要等到习惯养成。
如akaRem所述,如果您打开足够的空间,则默认情况下将展开Mission Control缩略图!我在我的13英寸2013 MBP Retina上使用所有全屏Chrome空间,所有桌面空间以及两者的各种组合以及一些其他随机空间(包括打开和关闭的仪表板空间)进行了测试,并且总是要占用13个空间使其从桌面空间打开Mission Control时默认情况下会扩展缩略图,该数字与akaRem不同。我不知道它是否随硬件或其他因素而变化,但这很有趣。(如果有人对此进行了测试, ,让我知道您的结果。)尽管如此,最终这不是一个实际的解决方案。
目前,与可用的解决方法(如果您要使用手势或热键打开Mission Control)最接近的方法是,使用BetterTouchTool之类的第三方软件来创建可在您选择的手势上执行的宏,就像Arctus的那样。
像这里的其他人一样,我已就此问题向Apple提交了反馈。如果您要执行此操作,请点击以下链接。
是的,这很烦人,我在http://www.apple.com/feedback/macosx.html提交了反馈
我建议每个同意的人都这样做,因为它是错误或设计回归。
我要做的一项工作是在左上角设置一个热角以打开任务控制。这样,当我通过它打开任务控制时,它们已经扩展了。
仍然可以使用,但Bettertouchtools 1.24已添加了一个显示任务控件,并立即显示了以前的桌面,效果非常好。
我暂时使用BetterTouchTools解决了这个问题。具体来说,我已经设置了三指滑动手势,将鼠标移至屏幕顶部,然后再次移回。它足够无缝,我看不到鼠标实际在移动,所以现在就可以了。
同时,我也已向苹果提交了有关此更改的反馈。
似乎他们正在推动所有人使用其全屏功能,当从全屏应用程序/桌面打开Mission Control时,该功能会自动扩展空格键。但是我们当中的许多BetterTouchTool用户特别不喜欢OSX的全屏功能的运行方式,因此不使用它。
如果默认全屏功能有一个选项可以始终显示而不是隐藏OSX菜单栏,我可能会习惯了。选项很好:)
开发人员Brian Kendall已创建此文件来恢复旧的行为:https : //github.com/briankendall/forceFullDesktopBar
它将代码注入Dock进程中,以调用显示任务控制且showFullBar
参数设置为的方法true
。因此,虽然很简单,但它很干净,可以很好地适用于激活任务控制的所有不同方式(例如,我使用键盘快捷键,魔术鼠标上的两指点击和触控板上的三指向上滑动)。
令人困惑的是,为什么苹果这么简单就没有将此设置作为首选项。
玩耍时,我了解到缩略图仅在用户激活了全屏应用程序时切换到任务控制时显示。
如果使用多个监视器,则所有屏幕都必须启用以全屏模式运行的应用程序。
因此,暂时尝试在所有显示器上使用全屏应用程序。
塞拉利昂/高塞拉利昂更新
为了跟上Kevin C.的回答,forceFullDesktopBar的作者创建了一个新版本https://github.com/briankendall/missionControlFullDesktopBar,可在10.12+上运行。安装有点麻烦,但对我来说效果很好-我发现的唯一解决方案完全没有延迟!
设置步骤:
在中禁用任务控制手势System Preferences -> Trackpad
。
克隆missionControlFullDesktopBar存储库
git clone https://github.com/briankendall/missionControlFullDeskopBar
missionControlFullDeskopBar.xcodeproj
在Xcode中打开。
生成项目(⌘B)。
通过检查来找出问题所在File -> Project Settings...
。在我的机器上是~/Library/Developer Tools/Xcode/DerivedData
。在那里将有一个以项目名称(例如missionControlFullDeskopBar-cjhllkdjkhncuzglpiezmyqmdufu
)开头的文件夹。
在BetterTouchTool中,将Mission Control快捷方式绑定到Execute Shell Script / Task
。作为Launch Path
,输入编译后的可执行文件的完整路径:(~/Library/Developer/Xcode/DerivedData/missionControlFullDesktopBar-cjhllkdjkhncuzglpiezmyqmdufu/Build/Products/Debug/missionControlFullDesktopBar.app/Contents/MacOS/missionControlFullDesktopBar
如果您的路径不同,则进行调整)。作为Parameter
,输入-d -i
。
可选:绑定另一个快捷方式以关闭任务控制。我习惯于四指向下滑动以关闭,但在“系统偏好设置”中禁用四指向上滑动可消除此问题。作为快速解决方案,我绑定了四根手指向下滑动至BTT中的Escape。完整的BTT设置:
除了pjv和Arctus的答案外,我还发现临时鼠标坐标(0,0)无法可靠地触发空格预览。不过,我在x轴上的显示分辨率的一半和在y轴上的少许偏差都可以正常工作。在1440x900分辨率的MacBook Air上,(720,25)设置非常可靠。
为了给Better Touch Tool戴上帽子,他们现在似乎可以立即使用此操作:
missionControlFullDesktopBar在High Sierra上效果很好。我有它与Hammerspoon一起拦截任务控制(F3)按键,它的视频在这里工作,请在此处查看我的完整Hammerspoon配置:
-- if missionControlFullDesktopBar installed, intercept Mission Control (F3) keypresses and launch it instead
-- See https://github.com/briankendall/missionControlFullDesktopBar
local MCFDB_PATH = '/Applications/missionControlFullDesktopBar.app/Contents/MacOS/missionControlFullDesktopBar'
local mcfdbSize = hs.fs.attributes(MCFDB_PATH, 'size')
if mcfdbSize then
local MISSION_CONTROL_KEYCODE = 160
local log = hs.logger.new('missionControlFullDesktopBar', 'debug')
log.i('missionControlFullDesktopBar found, intercepting Mission Control key events')
function handleMissionControl(e)
local code = e:getProperty(hs.eventtap.event.properties.keyboardEventKeycode)
if code == MISSION_CONTROL_KEYCODE then
-- ignore auto-repeats
local isAutoRepeat = e:getProperty(hs.eventtap.event.properties.keyboardEventAutorepeat)
if isAutoRepeat == 1 then
return true -- discard
end
-- don't intercept cmd+f3 or ctrl+f3
local flags = e:getFlags()
if (flags.cmd or flags.ctrl) then
return false -- propogate
end
local type = e:getType()
if type == hs.eventtap.event.types.keyDown then
--log.i('intercepted Mission Control DOWN')
os.execute(MCFDB_PATH..' -d -i')
return true -- discard
elseif type == hs.eventtap.event.types.keyUp then
--log.i('intercepted Mission Control UP')
os.execute(MCFDB_PATH..' -d -r')
return true -- discard
end
end
return false -- propogate
end
trapMissionControl = hs.eventtap.new({hs.eventtap.event.types.keyDown, hs.eventtap.event.types.keyUp}, handleMissionControl)
trapMissionControl:start()
end