简介

yabai 是一个窗口管理实用程序,旨在作为 macOS 内置窗口管理器的扩展工作。yabai 允许您使用直观的命令行界面自由控制窗口、空间和显示,并可选择使用设置用户定义的键盘快捷键↗ skhd和其他第三方软件。

yabai的主要功能是平铺窗口管理;使用二进制空间分区算法自动修改窗口布局,让您专注于窗口的内容而不会分心。yabai 的其他功能包括焦点跟随鼠标、禁用切换空间的动画、创建超过 16 个空间限制的空间等等。

github主页:
https://github.com/koekeishiya/yabai

安装

安装方法,官方 的wiki中写的非常的清楚。建议直接看官方的wiki:
https://github.com/koekeishiya/yabai/wiki

以下是我安装时候随手记的笔记,没有专门进行整理,仅供参考。
https://blog.csdn.net/lxyoucan/article/details/121202575

配置

yabai配置

为了让其他人使用我电脑,能够适应。所以默认我是不使用bsp layout的。只有我自己用电脑的时候我才会加载这个配置。
这些配置是我专门提出来的,当我自己用电脑的时候,会手动加载这些配置。(我是按CapsLk + 0加载)

路径~/.config/yabai/yabairc

#!/usr/bin/env bashset -x# ====== Variables =============================declare -A gaps
declare -A colorgaps["top"]="4"
gaps["bottom"]="24"
gaps["left"]="4"
gaps["right"]="4"
gaps["inner"]="4"color["focused"]="0xffd75f5f"
color["normal"]="0x00010101"
color["preselect"]="0xE02d74da"# Uncomment to refresh ubersicht widget on workspace change
# Make sure to replace WIDGET NAME for the name of the ubersicht widget
#ubersicht_spaces_refresh_command="osascript -e 'tell application id \"tracesOf.Uebersicht\" to refresh widget id \"WIDGET NAME\"'"# ===== Loading Scripting Additions ============# See: https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(latest-release)#macos-big-sur---automatically-load-scripting-addition-on-startup
sudo yabai --load-sa
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"# ===== Tiling setting =========================# bsp / float 为了方便其他人用电脑默认是float,我自己用时会切换到bsp
yabai -m config layout                      floatyabai -m config top_padding                 "${gaps["top"]}"
yabai -m config bottom_padding              "${gaps["bottom"]}"
yabai -m config left_padding                "${gaps["left"]}"
yabai -m config right_padding               "${gaps["right"]}"
yabai -m config window_gap                  "${gaps["inner"]}"# 状态栏间距
yabai -m config external_bar all:28:0yabai -m config mouse_follows_focus         off
yabai -m config focus_follows_mouse         offyabai -m config window_topmost              off
yabai -m config window_opacity              on
yabai -m config window_shadow               float#窗口边距设置
yabai -m config window_border               off
yabai -m config window_border_width         3
#yabai -m config active_window_border_color  "${color["focused"]}"
yabai -m config active_window_border_color  '0xffd75f5f'
#yabai -m config normal_window_border_color  "${color["normal"]}"
yabai -m config insert_feedback_color       "${color["preselect"]}"yabai -m config active_window_opacity       1.0
yabai -m config normal_window_opacity       0.90
yabai -m config split_ratio                 0.50yabai -m config auto_balance                offyabai -m config mouse_modifier              fn
yabai -m config mouse_action1               move
yabai -m config mouse_action2               resize# ===== Rules ==================================
#系统偏好设置 浮动
yabai -m rule --add app="^系统偏好设置$" manage=off
#yabai -m rule --add app="^QQ$" manage=off
#yabai -m rule --add app="^Simulator$" manage=off
yabai -m rule --add app="^提醒事项$" manage=off
yabai -m rule --add app="^关于本机$" manage=off
# ===== Signals ================================yabai -m signal --add event=application_front_switched action="${ubersicht_spaces_refresh_command}"
yabai -m signal --add event=display_changed action="${ubersicht_spaces_refresh_command}"
yabai -m signal --add event=space_changed action="${ubersicht_spaces_refresh_command}"
yabai -m signal --add event=window_created action="${ubersicht_spaces_refresh_command}"
yabai -m signal --add event=window_destroyed action="${ubersicht_spaces_refresh_command}"
yabai -m signal --add event=window_focused action="${ubersicht_spaces_refresh_command}"
yabai -m signal --add event=window_title_changed action="${ubersicht_spaces_refresh_command}"set +x
printf "yabai: configuration loaded...\\n"

路径~/.config/yabai/itkeyrc
这些配置是我专门提出来的,当我自己用电脑的时候,会手动加载这些配置。(我是按CapsLk + 0加载)

#!/usr/bin/env bash
#因为我的电脑偶尔会有其他人临时用一下,直接使用bsp布局可能会导致别人不会用
#所以我还是手动开始布局管理功能吧
# bsp/float 为了方便其他人用电脑默认是float,我自己用时会切换到bsp
yabai -m config layout                      bsp
# on|off 显示|不显示边框
yabai -m config window_border               on
# 边框的宽度
yabai -m config window_border_width 6
#激活的边框颜色
yabai -m config active_window_border_color 0xff775759
#普通的边框颜色
yabai -m config normal_window_border_color 0xff555555
# 状态栏间距
#yabai -m config external_bar all:26:0
yabai -m config external_bar all:0:0

skhdrc快捷键配置

路径~/.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://blog.csdn.net/lxyoucan/article/details/121209267

路径 ~/.config/spacebar/spacebarrc

#!/usr/bin/env shspacebar -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     一 二 三 四 五 六 七 八 九 十
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 clock_format         "%m月%d日 %R"
spacebar -m config right_shell          off
spacebar -m config right_shell_icon     
spacebar -m config right_shell_command  "whoami"echo "spacebar configuration loaded.."

参考

配置参考了一些大佬的分享。因为时间有点久了,有部分地址不记得了。我把记得的列到了下面。
https://github.com/koekeishiya/yabai
https://github.com/koekeishiya/skhd
https://github.com/julian-heng/yabai-config

macOS平铺窗口yabai配置分享相关推荐

  1. macOS平铺窗口神器yabai安装笔记

    简介 yabai 是一个窗口管理实用程序,旨在作为 macOS 内置窗口管理器的扩展工作.yabai 允许您使用直观的命令行界面自由控制窗口.空间和显示,并可选择使用设置用户定义的键盘快捷键↗ skh ...

  2. wpf窗口向左向上_PaperWM:GNOME 下的平铺窗口管理

    我使用 Gnome 已有很长时间了,但是我仍然有点想念平铺窗口管理器.六个月前,一个朋友告诉我有关 PaperWM 的消息,它使你可以在 Gnome 中平铺窗口!我立即安装了它,并从那时起我一直在使用 ...

  3. linux 选择 平铺 窗口,【如何配置linux 平铺式窗口管理器i3wm?】-看准网

    匿名用户 首先上个标准的neofetchblank desktopblank terminalwith ncmpcpp.有些刚需应用,还是virtualbox方便点.主要参考 eoli3n/dotfi ...

  4. linux平铺窗口管理器,5个大的平铺窗口管理器为Linux | MOS86

    Desktop环境是伟大的,但他们有些人可以那平铺窗口管理员通常是所有窗口管理器中最受青睐的.他们平铺WMs不只需安装并开始完成任务. 如果你 1.i3 i3是一个动态的平铺窗口管理器.它具有干净和完 ...

  5. ArchLinux开发环境第2辑——高效平铺式桌面i3个性化配置与美化

    "未来将属于两种人:思想的人和劳动的人.实际上,这两种人是一种人,因为思想也是劳动." --维克多·雨果 贴上效果图: ^ konsole ^ VS Code - OSS i3是一 ...

  6. android终端模拟器 yum,分享|Terminix:一个很赞的基于 GTK3 的平铺式 Linux 终端模拟器...

    现在,你可以很容易的找到大量的 Linux 终端模拟器,每一个都可以给用户留下深刻的印象. 但是,很多时候,我们会很难根据我们的喜好来找到一款心仪的日常使用的终端模拟器.这篇文章中,我们将会推荐一款叫 ...

  7. 本科团队例会分享1 多米诺与托米诺平铺问题 c语言

    多米诺与托米诺平铺 题目 题目来源 题目描述 我的解法与讲解(动态规划) 二维数组解 优化 空间优化 最优解 题目 题目来源 leetcode第790题. 题目描述 有两种形状的瓷砖:一种是 2 x ...

  8. Dvtm -- 平铺式终端

    Dvtm -- 平铺式终端_Linux伊甸园开源社区-24小时滚动更新开源资讯,全年无休! Dvtm -- 平铺式终端 关注我们: 如果你使用过 Dwn 或 Awesome 这种平铺式窗口管理器,一定 ...

  9. archlinux什么桌面好_ArchLinux搭建高效便捷的平铺式桌面

    一不注意竟然已经三个多月没写文章了,十一月份总算找到感觉比较满意的实习工作了,同时把近视给弄好了,已经有十多年没有这么清晰地看过这个世界了:-D 前言 关于ArchLinux请自己谷歌度娘,由于整个工 ...

最新文章

  1. Day4--Scrapy基本使用
  2. Linux下WRF Domain Wizard使用教程(PART2: 使用教程及 遇到的种种BUG)
  3. 如何编写代码使jsp程序错误在输入框上面显示_252尚学堂百战程序员049天
  4. 中英数字混合的字符串截取
  5. Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)
  6. 如何在腾讯云上安装Cloud Foundry
  7. 别让数据坑了你!用置信学习找出错误标注(附开源实现)
  8. 面试准备——Java回顾:高级编程(多线程、常用类、集合、泛型、IO流、反射、动态代理、新特性)
  9. Angular讲义 ---作用域
  10. translclude
  11. unity动画实现物体颜色闪烁
  12. 计算机游戏蜘蛛纸牌如何还原,经典PC纸牌游戏空当接龙、蜘蛛纸牌等登陆iOS/Android...
  13. 重新挂载磁盘mysql重新建表_Linux重新挂载磁盘
  14. 计算机boot指令,BCDBoot 命令行选项
  15. 工具系列——COMSOL Multiphysics 5.5安装教程
  16. 借用 AWS 服务 CodePipeling + ECS 实现蓝绿发布 (awscli)
  17. 软件测试流程图Bug管理流程图
  18. cobar mysql5.6_Cobar init error
  19. 静态工厂方法优缺点个人理解
  20. 数学常用语的英文表示

热门文章

  1. CTF命令执行及绕过技巧
  2. python3连接db2数据库 ibm_db_python用ibm_db模块操作db2
  3. 【毕设课设】【毕设课设】JAVA web健身房管理系统(源码+文档+数据库)
  4. JRE极限精简探求手册 1 ——精简一个Swing的即时战略游戏
  5. 按书的问题范围scale尺寸进行书箱分类存储
  6. C语言从入门到精通——数据类型
  7. 如何设计网站的登录和注册功能
  8. Windows10企业版下载与安装教程
  9. 通过js将26个英文字母按顺序依次排列
  10. 情商 EQ 儿童情商