V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
BeyondReach
V2EX  ›  macOS

Mac 的多桌面管理真是混乱,简单地学一下 windows 不好么

  •  
  •   BeyondReach · 285 天前 · 5774 次点击
    这是一个创建于 285 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我就想让窗口 a 固定在桌面 1 ,窗口 b 和窗口 c 固定在桌面 2 ,在 Mac 里就是做不到!

    因为每次把一个窗口全屏后,它就会被转到新建一个桌面。

    我知道如果只是把窗口最大化,而不是全屏,它就不会新建桌面,但是问题是 Mac 里只提供了全屏的快捷键,没有最大化的快捷键。

    而如果要用鼠标(非苹果鼠标)让窗口最大化你知道有多么困难吗?

    首先需要鼠标移动到左上角,按住 alt 键,点到那个小得要命的绿色小圆点上,这样才能让窗口最大化,而不是全屏

    所以我用软件将鼠标左侧功能键设置为 ctrl+win+F ,这样就可以直接按这个键,将窗口全屏了,再按一次,就回到原来的状态

    但是这样操作之后,窗口就会在不同桌面上乱飞了。 因为当我把全屏的窗口 a 退出全屏状态后,它就会被自动移动到桌面 2 上去,然后窗口 a 、b 、c 就在同一个桌面了,这时系统只有一个桌面

    这时我再把窗口 a 全屏,它就会变成桌面 2 ,窗口 b 和窗口 c 就在桌面 1

    真是太混乱了

    大家有什么好的软件可以解决 Mac 上的这个问题么?

    71 条回复    2024-05-06 16:13:53 +08:00
    srwxyz
        1
    srwxyz  
       285 天前 via iPhone
    你说,有没有一种可能,mac 提供了一种快捷键,一按啪就最大化了🤨或者找个窗口管理软件,我天天这么按 不过记不得了哪个了 肌肉记忆
    MasterCai
        2
    MasterCai  
       285 天前 via iPhone
    Magnet
    GabrielleBellamy
        3
    GabrielleBellamy  
       285 天前   ❤️ 3
    这个描述有点抽象,不确定有没有看懂。我有几个想法:

    1-macOS 在管理窗口上是有点问题,把某个窗口 pin 在某个 space 里,这个我不是很清楚,但是把某个窗口送到某个桌面,这个功能很难做,但是 Amethyst 可以做到,推荐一下。[ianyh/Amethyst: Automatic tiling window manager for macOS à la xmonad.]( https://github.com/ianyh/Amethyst?cmdf=Amethyst+github)


    2-不知道是不是把自动排列桌面的选项打开了?如果是说 space 乱序的话可以关掉这个。( Windows 其实也没有多桌面管理吧我记得……

    3-我建议去看看 1Piece 这个软件:[1Piece - Multifunctional App for Mac]( https://app1piece.com/?cmdf=1piece+),基本想要的桌面管理功能应有尽有。文中提到的非全屏的最大化,我就用的是它的这个快捷键(左上角第一个 maximize ),很方便。
    lance6716
        4
    lance6716  
       285 天前 via Android
    > 如果要用鼠标(非苹果鼠标)让窗口最大化你知道有多么困难吗?

    印象中我是双击标题那个横条
    BeyondReach
        5
    BeyondReach  
    OP
       285 天前
    @lance6716 这个方法不错,比我帖子里说到的方法简单很多

    不过还是比绑定快捷键到鼠标的功能键上稍微麻烦一点,因为按鼠标上的按钮只需要按一下,而且不需要移动鼠标,只要鼠标在窗口的范围内都可以直接操作
    seres
        6
    seres  
       285 天前
    Mission Control 先新建个桌面 2 ,在桌面 2 打开 bc
    或者试试控制中心里的新功能:stage Manager
    1014982466
        7
    1014982466  
       285 天前   ❤️ 7
    Mac 的文件管理和窗口管理就是屎,我这样的果粉也洗不动
    台前调度那更是屎上雕花
    BeyondReach
        8
    BeyondReach  
    OP
       285 天前
    @GabrielleBellamy 大神啊,这两个软件太强大了,而且还都是免费的。

    感觉应该能解决我提到的问题。

    我安装了,先研究一下具体怎么用,到时再来汇报使用情况。
    BeyondReach
        9
    BeyondReach  
    OP
       285 天前
    @seres

    新建桌面这个方法肯定是无法解决我的问题的

    我有时需要把一个窗口在全屏和半屏之间切换,在对几个桌面的窗口执行这个操作之后,窗口所在的桌面的顺序就会乱掉

    台前调度 和我提到的这个问题好像也没啥关系
    stinkytofu
        10
    stinkytofu  
       285 天前
    @1014982466 #7 确实没什么好洗的,Mac 的桌面管理太垃圾了, 就算装各种窗口管理软件也赶不上 windows 好用, 如果它不是类 Unix 系统, 开发比较方便, 我真的想咬咬牙回到 Windows 算了。
    gzlock
        11
    gzlock  
       285 天前
    不是洗,有没有可能是类似的专利都已经被微软申请了,再怎么折腾都已经绕不开微软的专利了,就躺平了
    Chad0000
        12
    Chad0000  
       285 天前 via iPhone
    编译 app 的时候会用 mac ,平时都用 windows ,不得不说确实垃圾,尤其是不能关闭指定屏幕:因为我的需求是某个显示屏连两个电脑,信号自动切换,需要编译的时候就分给 mac 。然后 mac 插上就强制占用屏幕。
    shelken
        13
    shelken  
       285 天前 via iPhone
    你的所有问题用一个 app 就可以解决,https://rectangleapp.com
    还有想要最大化窗口,双击程序顶部标题栏
    HENQIGUAI
        14
    HENQIGUAI  
       285 天前
    文件管理和多桌面多任务确实腊鸡。
    superedlimited
        15
    superedlimited  
       285 天前 via iPhone
    装个 raycast ,有惊喜
    niubiman
        16
    niubiman  
       285 天前
    @1014982466 那明明是屎上泼粪
    noahlias
        17
    noahlias  
       285 天前
    为什么不装个 yabai
    BeyondReach
        18
    BeyondReach  
    OP
       285 天前
    @superedlimited 请问 raycast 里哪个功能能解决我提到的问题呢
    lancelock
        19
    lancelock  
       285 天前
    rectangle 开源免费的。就几个快捷键,最大化、左半屏右半屏这些,满足我需求了
    BeyondReach
        20
    BeyondReach  
    OP
       285 天前
    @gzlock 将窗口固定在指定的桌面,这个算啥专利啊,不可能,绝对不可能!
    BeyondReach
        21
    BeyondReach  
    OP
       285 天前
    @lancelock 我也在用 rectagle ,用它把窗口调成左半屏右半屏的功能,但是这些和我帖子里要解决的问题不一样
    BeyondReach
        22
    BeyondReach  
    OP
       285 天前
    @noahlias yabai 据说比上面高手 @GabrielleBellamy 提到的 Amethyst 复杂点,要编写配置文档,我先研究研究
    nidongpinyinme
        23
    nidongpinyinme  
       285 天前
    程序坞里在软件上右键->选项里面,不是有个分配给哪个桌面的选项吗,说的是这个吗
    neochen13
        24
    neochen13  
       285 天前
    使用 contexts 吧
    noahlias
        25
    noahlias  
       285 天前
    @BeyondReach 不复杂 官方文档简易明了
    RyougiShiki
        26
    RyougiShiki  
       285 天前
    双击标题栏最大化。mac 更想让你用全屏,一个屏一个软件保持专注和最大视野,这时就需要搭配三指左右滑动来切换工作区,我一般把 ide 之类的工具放单独工作区,主工作区放浏览器、聊天软件等各种软件、主工作区 alt tab 或三指向上从众多软件中找到目标。剩余的管理用 cmd H 隐藏窗口、cmd M 最小化来去掉不常用的。关键点,要大量使用触摸板和三指操作,mac 的体验跟自家硬件绑定。
    #9 设置里/桌面/关闭自动根据最近使用窗口排列桌面,这个功能是最近一两个大版本更新的,反而使顺序混乱,关掉就好。
    #12 相同场景,我的显示器会保持先接入的那台电脑的视频信号。
    nothingistrue
        27
    nothingistrue  
       285 天前   ❤️ 1
    @gzlock #11 第一,纯软件是申请不了专利的。第二,微软向来只要授权费不禁用。第三,靠交叉专利强制相互共享的很多,靠专利卖钱的很多,靠专利抢钱的也不少,靠专利逼死小公司/个人也很常见,但是靠专利禁售竞争对手,或者宁愿自我禁售也不给钱的大公司,真没几个。
    caocong
        28
    caocong  
       285 天前
    全屏和最大化是两个功能,win 上没有 mac 全屏这种功能,我用的 Parallels Toolbox 的窗口管理器还挺好用
    shoudeliao
        29
    shoudeliao  
       285 天前
    系统设置-桌面与程序坞-调度中心-根据最近的使用情况自动重新排列空间-取消勾选
    Dock-对应程序图标-右键-选项-分配给-显示器 1 上的桌面
    配合 Magnet
    满足我当前需求了,但是同一个程序能不能多个窗口分配给不同桌面我就没试过了
    shoudeliao
        30
    shoudeliao  
       285 天前
    @shoudeliao 补充,分配给 这个功能类似于 开启这个程序自动将程序移动到对应桌面
    shoudeliao
        31
    shoudeliao  
       285 天前
    @shoudeliao #29 还需要再配合调度中心的快捷键
    kawaiidora
        32
    kawaiidora  
       285 天前 via Android   ❤️ 2
    @gzlock Ubuntu 也能用,是因为微软比较宽容?
    qweruiop
        33
    qweruiop  
       285 天前
    yabai 解决所有问题。。。
    maninfog
        34
    maninfog  
       285 天前 via iPhone
    别装乱七八糟的了,直接 raycast
    whusnoopy
        35
    whusnoopy  
       285 天前
    rectangle 除了左半屏右半屏,也有「最大化」的快捷键设定,默认是 Opt+Cmd+Enter ,这个最大化就是 Windows 下的在当前桌面最大化,而不是新开一个桌面独占最大
    wowawesome
        36
    wowawesome  
       285 天前
    我用 Raycast 解决搜索和窗口快捷键
    agagega
        37
    agagega  
       285 天前 via iPhone
    如果你用触控板,可以试试 Swish 这个软件,快捷键+手势可以实现调整窗口大小和移动到某个桌面的操作。
    flyfish01
        38
    flyfish01  
       285 天前
    桌面 1 ,桌面 2 ,桌面 3 不是可以弄很多个吗?按一下 F3 还可以全局预览,在顶部左右遍有添加新桌面,那个才是真正的桌面 2 ,自己鼠标定义个左右滑屏幕的快捷键呗,另外新出的台前调度虽然不好用,不过也能解决的说的 ‘窗口 a 固定在桌面 1 ,窗口 b 和窗口 c 固定在桌面 2 ’ 的问题啊。。。楼上讲的那个软件也可以用, 说白了你还是用 win 的那套逻辑思维在用 mac ,windows 是将软件最大化只是窗口最大化,和 mac 的双击导航栏差不多,mac 的最大化指的是一个工作桌面只有这一个软件或者叫全屏幕
    rioshikelong121
        39
    rioshikelong121  
       285 天前
    please use Moom
    lancelock
        40
    lancelock  
       285 天前
    @BeyondReach 他也可以最大化啊,你帖子里不是说最大化困难吗?
    kawaiidora
        41
    kawaiidora  
       285 天前   ❤️ 1
    我觉得主要原因是“学微软是万万不能的”,台前调度属于占用屏幕空间切效果远不如任务栏的东西
    yulgang
        42
    yulgang  
       285 天前
    macOS 的窗口管理逻辑确实很糟糕
    brucmao
        43
    brucmao  
       285 天前
    Jitouch 支持手势左右半屏,窗口最大化这种
    wsjjacky
        44
    wsjjacky  
       285 天前

    Better Touch Tool 谁用谁知道 ¯\_(ツ)_/¯
    parthenon2007
        45
    parthenon2007  
       285 天前   ❤️ 2
    再吐槽一个,macOS 原生不支持通过右键新建文件,却给用户洗脑,要通过 App 来创建文件。每次现在 App 里创建文件,然后再选保存目录,真的烦死。
    a1b2c3T
        46
    a1b2c3T  
       285 天前 via iPhone
    @1014982466 之前用了段时间 mac ,一直没搞明白那个文件管理是个什么机制,感觉还不如 ios 自带的那个文件管理…还有之前看别人吹那个触摸板手势,我感觉也不如 windows 的好用,估计也是我用习惯了吧
    cander0815
        47
    cander0815  
       285 天前
    在 设置 -> 调度中心 -> 根据最近的使用情况自动重新排列空间 这个关了,就不会桌面来回自己改变自己的顺序了
    BeyondReach
        48
    BeyondReach  
    OP
       285 天前
    @cander0815 这个选项我是关着的
    BeyondReach
        49
    BeyondReach  
    OP
       284 天前
    @GabrielleBellamy 1Piece 中可以为 Maximize 提供快捷键的方式正是我需要的,下面网友们提到的 Rectangle 也可以为窗口最大化设置快捷键

    现在有一个小问题,之前 Mac 中的全屏快捷键 ctrl+win+F ,是可以在全屏和原始状态之间进行切换的,这样我只需要绑定一个鼠标上的功能键为 ctrl+win+F ,就可以对窗口状态进行切换

    1Piece 中可以为 Maximize 并没有这个切换的功能,稍微有那么一丢丢不方便
    BeyondReach
        50
    BeyondReach  
    OP
       284 天前
    @flyfish01 可能你的理解和我的理解不太一样

    我的意思是:窗口全屏之后就会自己新建一个桌面打开,如果在桌面 1 、桌面 2 上的窗口随机进行全屏和复原的操作,窗口所在的桌面就会发生变化,我想避免这种情况的发生。
    BeyondReach
        51
    BeyondReach  
    OP
       284 天前
    @shoudeliao #30 “分配给桌面”这个功能也是解决我的问题的一个方法

    我目前用 rectangle ,功能和 Magnet 差不多
    BeyondReach
        52
    BeyondReach  
    OP
       284 天前
    @qweruiop 有时我放在某个桌面的窗口会很多,yabai 平铺式的展示窗口的方法不太适合这样的桌面呢
    BeyondReach
        53
    BeyondReach  
    OP
       284 天前
    @whusnoopy 多谢了,使用“最大化”代替“全屏”应该是解决我的问题的关键

    现在有一个小问题,之前 Mac 中的全屏快捷键 ctrl+win+F ,是可以在全屏和原始状态之间进行切换的,这样我只需要绑定一个鼠标上的功能键为 ctrl+win+F ,就可以对窗口状态进行切换

    rectangle 中可以为 Maximize 设置快捷键,但是这个快捷键并没有切换的功能,稍微有那么一丢丢不方便
    BeyondReach
        54
    BeyondReach  
    OP
       284 天前
    @RyougiShiki 我也是这个思路来创建桌面的。

    我一直搞不清楚 cmd H 隐藏窗口、cmd M 最小化的 区别

    我使用非苹果鼠标,不过通过 Mac Mouse Fix 这个软件,可以设置按住中键左右滑动来切换桌面,也相当方便了
    GabrielleBellamy
        55
    GabrielleBellamy  
       284 天前
    @BeyondReach 这样🤔全屏我很少用到,我用的是 BetterTouchTool 在触控板上从左侧二指右滑,使当前聚焦页面全屏。
    whusnoopy
        56
    whusnoopy  
       284 天前
    @BeyondReach #53

    搜到一个可能可以解决你问题的答案,刚在 macOS 14.4 测试可用

    原答案 https://superuser.com/a/1648700

    步骤:

    1. 打开「系统设置」
    2. 打开「键盘」(最下面倒数第四个)
    3. 打开「键盘快捷键」
    4. 左边选择「 App 快捷键」
    5. 点「+」号新增快捷键
    6. 选择「所有应用程序」(默认就是这个)
    7. 「菜单标题」字段里输入「 Zoom 」
    8. 在「键盘快捷键」里录入自己要的快捷键(比如我用 Ctrl+Opt+Cmd+Enter 做的测试)
    9. 完成。按你说的,把鼠标的某个功能键绑定为这个快捷键就行
    BeyondReach
        57
    BeyondReach  
    OP
       284 天前
    @whusnoopy #56

    多谢多谢!!

    解决我问题的关键就是这个“Zoom”-缩放窗口的操作!!!

    我在 @wsjjacky 的回复里,了解到 BTT 这个神级软件。用这个软件设置鼠标功能键绑定“缩放光标下的窗口”功能,也就是“Zoom”这个功能后,就可以用鼠标的一个功能键,让窗口在最大化和之前设置的状态(比如左半屏)之间循环切换了
    BeyondReach
        58
    BeyondReach  
    OP
       284 天前
    @wsjjacky

    感谢,试了一下,BTT 确实是这个神级软件

    根据你的提醒,我尝试了用这个软件设置鼠标功能键绑定“缩放光标下的窗口”功能后,就可以用鼠标的一个功能键,让窗口在最大化和之前设置的状态(比如左半屏)之间循环切换了
    BeyondReach
        59
    BeyondReach  
    OP
       284 天前
    @whusnoopy #56 不好意思,我试了一下你提到的方法,好像“zoom”只能将窗口居中,并以屏幕的 80%左右的大小显示,并不能实现窗口最大化的效果。

    不知道你的机子上是不是也是这样?
    SydFloyd
        60
    SydFloyd  
       283 天前
    这是我最用不惯的一点,打不了游戏我买之前就知道,窗口管理逻辑太他妈难用,dock 也不好用,hide 和 minmize 还不一样,真的不如 windows 易用
    wsjjacky
        61
    wsjjacky  
       283 天前
    @BeyondReach 这是一个用了就回不去的软件,有非常多的玩法,可以充分发掘鼠标、键盘和触控板的潜能。
    bravecarrot
        62
    bravecarrot  
       283 天前 via iPhone
    这个确实挺垃圾的 我已经习惯了
    godpeo
        63
    godpeo  
       282 天前 via iPhone
    @wsjjacky mark
    c1wx
        64
    c1wx  
       280 天前
    @BeyondReach #57 不用这么复杂,rectangle 支持设置快捷键恢复到上一个窗口页面大小,在快捷键设置页中设置`others - restore`就行了。
    c1wx
        65
    c1wx  
       280 天前
    @parthenon2007 #45 你下载 Qmenu 试试,或者直接用 Qspace 。
    houshuu
        66
    houshuu  
       280 天前 via iPhone
    raycast 有类似于窗口管理器的功能,比如左边 1/2 ,中间 3/4 什么的。yabai 可能更好,但大部分公司应该都不允许把系统保护关闭吧
    parthenon2007
        67
    parthenon2007  
       280 天前
    @c1wx #65 谢谢推荐,我现在凑活着用 Qspace ,用田字格布局时,布局有时会乱掉,很烦。
    zealotpuppy
        68
    zealotpuppy  
       280 天前   ❤️ 1
    @gzlock 不可能,因为 linux 的桌面管理器都比 mac 的好用
    msdurex
        69
    msdurex  
       279 天前
    按住 Option 按钮 点击绿色全屏按钮,你就会发是你要的“充满整个屏幕”
    brucmao
        70
    brucmao  
       233 天前
    @BeyondReach #58 请问怎么设置鼠标一个功能键在最大化和之前状态循环切换呢,是设置高级条件么?
    brucmao
        71
    brucmao  
       233 天前
    @brucmao #70 明白了,只需要单独绑定“缩放光标下访的窗口”就可以了,不需要再绑定最大化,另外我用的 mx master 3s ,BTT 不能识别功能键,只能用 logi options+ 给功能键分配一个快捷键,然后在 BTT 绑定这个快捷键
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3068 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:11 · PVG 21:11 · LAX 05:11 · JFK 08:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.