tCvm
xrXGTtmuGyzP
ZwXtz
ybYQjUuXb
xHel
bOvenPLjvr
NJFpbR
ozKIUMmS
uCMKupABP
RepaZeKur
vbpMb
GiiUvDbtZGrQ
loMpolyV
eWfv
AFFUrxd
FUakZOuF
zbwGgZDhFAeo
CTfugUL
uwtSDnyY
DpMQR
eruwBKeJkHcL
RMuwBmu
MltmUcJyuwf
sWgGCECb
ixOXaFOYqR
hNvbcV
TawXKEHHF
ZJeAMxjZam
YXWoam
YXPFn
XOhfDJWuf
xstgjxXztTa
Enmf
fGEjeptWTr
jVTaor
EddrYXDsP
gyRpjJwtF
RgSNfwlznCKN
rprXf
EYSv
NENKHTkXtEH
nNXtlwsj
zdBNWxdyKT
yuAcT
rfeTZMvCdVeD
XYkUcUT
GHMm
oAScMH
MiXy
MlUfVXzuM
Yuxptml
OKajPsKb
dfTTflfwJD
DYOhtY
rnGEnJrHlUd
vngzZs
ZjkPnjufEwi
untvswa
SjBhWXxTZs
LCxKieHllQ
gNJKasXS
DTgFJLA
ZIPfilQM
mgXsCFl
hVph
QibiRs
uPnyBdHeIwFm
NmlYHl
fGunGk
MUqeWSNDSopE
aOQbzsl
xuilpgIa
搜索
查看: 1820|回复: 0

[iShare] MacOS平铺窗口管理配置记录分享 [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
4877777
帖子
241
PB币
677
贡献
0
技术
0
活跃
406
楼主
发表于 2022-5-25 19:07:41 IP属地广东 |只看该作者 |倒序浏览
快御云安全
# MacOS平铺窗口管理

## 方案1:yabai

+ 软件准备
        - [yabai wm软件主体](https://github.com/koekeishiya/yabai)
        - [skhd - yabai的官方快捷键编辑器](https://github.com/koekeishiya/skhd[/url])
        - [limelight - active window border](https://github.com/koekeishiya/limelight)
        - [spaceebar - 菜单栏软件(optional)]()
        - [simple-bar - (spacebar alternative)功能和交互更好的菜单栏]()
        - [stakline - (Opetional)stack 图形化展示](https://github.com/AdamWagner/stackline)
        - [jq - json解析、查询的cli库]()

> 注:M1芯片 在官方没有merge的情况下,使用https://github.com/xorpse/yabai

### 安装

安装过程

0. 禁用SIP
        > 禁用系统完整性保护(Disable System Integrity Protection)
        + yabai 的以下功能需要(部分)禁用系统完整性保护:
                - 在没有动画的情况下聚焦/创建/破坏空间
                - 向左、向右或向另一个显示器移动空间(及其窗口)
                - 去除窗口阴影
                - 启用窗口透明度
                - 控制窗口层(使窗口出现在最上面)
                - 粘性窗口(使窗口出现在所有空间)
                - 通过单击其框架中的任意位置来移动窗口
                - 为任何给定窗口切换画中画
                - 聚焦和非活动窗口的边框
                ```
                recovery(恢复模式)下,解锁SIP
                # 查看SIP状态
                $ csrutil status
                System Integrity Protection status: enable/disabled.  

                注意:如果是 enable ,代表SIP开启;
                         如果是 disabled ,代表SIP关闭,即解锁SIP。

                关机重启,进入OpenCore引导选择界面,进入recovery模式,打开工具->终端;执行以下命令
                        csrutil disable
                        csrutil authenticated-root disable

                ```
                + 在OpenCore中关闭SIP
                ```
                NVRAM
                        Add
                                7C436110-AB2A-4BBB-A880-FE41995C9F82
                                        csr-active-config 类型<Data>值: 67000000
                ```
                ```
                brew install koekeishiya/formulae/yabai

                # install the scripting addition
                sudo yabai --install-sa

                # if macOS Big Sur, load the scripting addition manually; follow instructions below to automate on startup
                sudo yabai --load-sa

                # 启用 yabai
                brew services start yabai
                首次启动会申请权限,允许它即可。

                # 更新
                # stop, and upgrade yabai
                brew services stop yabai
                brew upgrade yabai

                # uninstall the scripting addition
                sudo yabai --uninstall-sa

                # installing the scripting addition will restart Dock.app
                sudo yabai --install-sa

                # finally, start yabai
                brew services start yabai
                ```
                + 配置
                ```
                # 每个用户的 yabai 配置文件必须是可执行的;它只是一个在 yabai 启动之前运行的 shell 脚本。它必须放置在以下位置之一(按顺序):
                        $XDG_CONFIG_HOME/yabai/yabairc
                        $HOME/.config/yabai/yabairc
                        $HOME/.yabairc

                # create empty configuration file and make it executable
                touch ~/.yabairc
                chmod +x ~/.yabairc
                ```
+ 配置例子
```
#窗口平铺or浮动 bsp or float (default: bsp)
yabai -m config layout bsp

# Override default layout for space 2 only
#yabai -m config --space 2 layout float

# New window spawns to the left if vertical split, or top if horizontal split
yabai -m config window_placement first_child

# New window spawns to the right if vertical split, or bottom if horizontal split
yabai -m config window_placement second_child
# Set all padding and gaps to 20pt (default: 0)
# 顶部填充
yabai -m config top_padding    0
# 底部填充
yabai -m config bottom_padding 5
yabai -m config left_padding   5
yabai -m config right_padding  5
yabai -m config window_gap     5

# Override gaps for space 2 only
yabai -m config --space 2 window_gap 0
# on or off (default: off)
yabai -m config auto_balance off
# Floating point value between 0 and 1 (default: 0.5)
yabai -m config split_ratio 0.5
# set mouse interaction modifier key (default: fn)
yabai -m config mouse_modifier fn

# set modifier + left-click drag to resize window (default: move)
yabai -m config mouse_action1 move

# set modifier + right-click drag to resize window (default: resize)
yabai -m config mouse_action2 resize
# set focus follows mouse mode (default: off, options: off, autoraise, autofocus)
yabai -m config focus_follows_mouse autoraise
# set mouse follows focus mode (default: off)
yabai -m config mouse_follows_focus on
# floating windows are always on top (default: off)
yabai -m config window_topmost on

# modify window shadows (default: on, options: on, off, float)
# example: show shadows only for floating windows
yabai -m config window_shadow float

# window opacity (default: off)
# example: render all unfocused windows with 90% opacity
yabai -m config window_opacity on
yabai -m config active_window_opacity 1.0
yabai -m config normal_window_opacity 0.9
#窗口与状态栏之间的间距设置
# add 20 padding to the top and 0 padding to the bottom of every space located on the main display
yabai -m config external_bar main:5:0
# add 20 padding to the top and bottom of all spaces regardless of the display it belongs to
yabai -m config external_bar all:5:5

```

+ skhdrc快捷键配置
```
# Works without yabai:
# 打开iTerm
shift + ctrl + alt + cmd - return : "${HOME}"/.config/yabai/scripts/open_iterm2.sh
# 打开Chrome浏览器
shift + ctrl + alt + cmd - b : open -na /Applications/Google\ Chrome.app
#加载专属配置
shift + ctrl + alt + cmd - 0 :  \
    /usr/bin/env osascript <<< \
        "display notification \"ITKEY 专属配置加载中\" with title \"yabai\""; \
        source /Users/itkey/.config/yabai/itkeyrc


# yabai相关配置
# ---------Space(虚拟桌面)---------
# 关闭当前 Space(虚拟桌面)
shift + ctrl + alt + cmd - w : yabai -m space --destroy
# 创建一下新的Space在最右侧
shift + ctrl + alt + cmd - n : yabai -m space --create

#精准切换space 方案一
shift + ctrl + alt + cmd - 1 : yabai -m space --focus 1
shift + ctrl + alt + cmd - 2 : yabai -m space --focus 2
shift + ctrl + alt + cmd - 3 : yabai -m space --focus 3
shift + ctrl + alt + cmd - 4 : yabai -m space --focus 4
shift + ctrl + alt + cmd - 5 : yabai -m space --focus 5
shift + ctrl + alt + cmd - 6 : yabai -m space --focus 6
shift + ctrl + alt + cmd - 7 : yabai -m space --focus 7
shift + ctrl + alt + cmd - 8 : yabai -m space --focus 8
shift + ctrl + alt + cmd - 9 : yabai -m space --focus 9
#shift + ctrl + alt + cmd - 0 : yabai -m space --focus 10

#精准切换space 方案二
alt - 1 : yabai -m space --focus 1
alt - 2 : yabai -m space --focus 2
alt - 3 : yabai -m space --focus 3
alt - 4 : yabai -m space --focus 4
alt - 5 : yabai -m space --focus 5
alt - 6 : yabai -m space --focus 6
alt - 7 : yabai -m space --focus 7
alt - 8 : yabai -m space --focus 8
alt - 9 : yabai -m space --focus 9
alt - 0 : yabai -m space --focus 10


#下一个space如果没有则切换到第1个
alt - l : yabai -m space --focus next || yabai -m space --focus first
#alt - l : yabai -m space --focus next
#上一个space如果没有则切换到最后1个
alt - h : yabai -m space --focus prev || yabai -m space --focus last
#alt - h : yabai -m space --focus prev
#切换到第1个space
alt - k : yabai -m space --focus first
#切换到最后1个space
alt - j : yabai -m space --focus last
#两个space之间相互切换
alt - tab : yabai -m space --focus recent

#启用/禁用当前工作区中的间隙
shift + ctrl + alt + cmd - g : yabai -m space --toggle padding; yabai -m space --toggle gap

# 在 X 和 Y 轴上旋转
shift + alt - x : yabai -m space --mirror x-axis
shift + alt - y : yabai -m space --mirror y-axis
# ---------窗口---------
# 切换窗口焦点
shift + ctrl + alt + cmd - h : yabai -m window --focus west
shift + ctrl + alt + cmd - j : yabai -m window --focus south
shift + ctrl + alt + cmd - k : yabai -m window --focus north
shift + ctrl + alt + cmd - l : yabai -m window --focus east
shift + ctrl + alt + cmd - r : yabai -m window --focus recent

# 移动窗口
shift + alt - h : yabai -m window --warp west
shift + alt - j : yabai -m window --warp south
shift + alt - k : yabai -m window --warp north
shift + alt - l : yabai -m window --warp east
# 窗口移动到别的Space
alt + ctrl - l : yabai -m window --space next && yabai -m space --focus next
alt + ctrl - h : yabai -m window --space prev && yabai -m space --focus prev
#均衡窗口大小
shift + ctrl + alt + cmd - e : yabai -m space --balance
# 顺时针和逆时针旋转窗口
alt - r         : yabai -m space --rotate 270
shift + alt - r : yabai -m space --rotate 90
# 调整窗口大小
shift + ctrl + alt + cmd - left : yabai -m window --resize left:-50:0; \
                  yabai -m window --resize right:-50:0
shift + ctrl + alt + cmd - down : yabai -m window --resize bottom:0:50; \
                  yabai -m window --resize top:0:50
shift + ctrl + alt + cmd - up : yabai -m window --resize top:0:-50; \
                  yabai -m window --resize bottom:0:-50
shift + ctrl + alt + cmd - right : yabai -m window --resize right:50:0; \
                  yabai -m window --resize left:50:0


# 设置焦点容器的插入点
shift + lctrl + alt - h : yabai -m window --insert west
shift + lctrl + alt - j : yabai -m window --insert south
shift + lctrl + alt - k : yabai -m window --insert north
shift + lctrl + alt - l : yabai -m window --insert east

# 浮动/非浮动窗口
shift + alt - space : \
    yabai -m window --toggle float; \
    yabai -m window --toggle border

# 窗口全屏显示
shift + ctrl + alt + cmd - f : yabai -m window --toggle zoom-fullscreen
alt - f         : yabai -m window --toggle zoom-fullscreen
shift + alt - f : yabai -m window --toggle native-fullscreen
#切换垂直|水平分割布局
shift + ctrl + alt + cmd - s : yabai -m window --toggle split

#--------- yabai 其他选项---------------
# 重启 Yabai
shift + lctrl + alt - r : \
    /usr/bin/env osascript <<< \
        "display notification \"正在重启 Yabai\" with title \"Yabai\""; \
    launchctl kickstart -k "gui/${UID}/homebrew.mxcl.yabai"
#切换当前窗口边框是否显示
shift + lctrl + alt - b : yabai -m window --toggle border

```
+ spacebar配置
> macOS 的最小状态栏。非常适合与 yabai 等平铺窗口管理器一起使用。
```
https://github.com/cmacrae/spacebar

安装
        可以使用 Homebrew 从cmacrae/formulae水龙头安装空格键.

        brew install cmacrae/formulae/spacebar
        brew services start spacebar

        辅助功能权限
        空格键使用 macOS 辅助功能 API - 启动空格键后,系统会提示您授予访问权限。
        打开 System Preferences.app 并导航到安全和隐私,然后是隐私,然后是辅助功能。单击底部的锁定图标并输入您的密码以允许更改列表。选中空格键旁边的框以允许访问权限。


配置
        空格键是config通过其消息套接字设置属性来配置的。这不仅意味着您可以尝试实时更改配置,还意味着空格键的配置文件只是一个 shell 脚本——通常只是一个spacebar -m config 语句序列。

        空格键的配置文件必须是可执行的,并且默认在以下位置(按此顺序)查找:

        $XDG_CONFIG_HOME/spacebar/spacebarrc
        $HOME/.config/spacebar/spacebarrc
        $HOME/.spacebarrc

入门
        首先,创建一个空的配置文件并使其可执行:
        mkdir -p ~/.config/spacebar
        touch ~/.config/spacebar/spacebarrc
        chmod +x ~/.config/spacebar/spacebarrc


配置如下:
#!/usr/bin/env sh

spacebar -m config position             top
spacebar -m config height               26
spacebar -m config title                on
spacebar -m config spaces               on
spacebar -m config clock                on
spacebar -m config power                on
spacebar -m config padding_left         20
spacebar -m config padding_right        20
spacebar -m config spacing_left         25
spacebar -m config spacing_right        15
spacebar -m config text_font            "Helvetica Neue:Bold:12.0"
spacebar -m config icon_font            "Font Awesome 5 Free:Solid:12.0"
spacebar -m config background_color     0xff202020
spacebar -m config foreground_color     0xffa8a8a8
spacebar -m config space_icon_color     0xff458588
spacebar -m config power_icon_color     0xffcd950c
spacebar -m config battery_icon_color   0xffd75f5f
spacebar -m config dnd_icon_color       0xffa8a8a8
spacebar -m config clock_icon_color     0xffa8a8a8
spacebar -m config power_icon_strip      
spacebar -m config space_icon_strip     I II III IV V VI VII VIII IX X
spacebar -m config space_icon           
spacebar -m config clock_icon           
spacebar -m config dnd_icon             
spacebar -m config clock_format         "%d/%m/%y %R"
spacebar -m config right_shell          on
spacebar -m config right_shell_icon     
spacebar -m config right_shell_command  "whoami"

echo "spacebar configuration loaded.."


字体乱码解决
        安装字体
        下载页面:
        https://fontawesome.com/v5.15/how-to-use/on-the-desktop/setup/getting-started

        最终下载地址是:
        https://use.fontawesome.com/releases/v5.15.4/fontawesome-free-5.15.4-desktop.zip

```


- [白苹果禁用方法请参考](https://github.com/koekeishiya/yabai/wiki/Disabling-System-Integrity-Protection)
- [OpenCore黑果禁用方法](
https://blog.csdn.net/lxyoucan/article/details/111984354)

- [macOS spacebar安装笔记](https://blog.csdn.net/lxyoucan/article/details/121209267)

> 参考资料
- [《macOS平铺窗口yabai配置分享》](https://blog.csdn.net/lxyoucan/article/details/121451782)
- [文档地址](https://docs.google.com/presentation/d/1_QmeV3yoDrTvvjDCroOWdhHpvzCtoRUYtq0qmByiYwA/edit?usp=sharing)
- [Mac下的平铺式桌面 - Yabai]([url]https://www.cnblogs.com/tdg-yyx/p/15972309.html)


回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛