mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-26 11:14:08 +00:00
feat: added yabai and configs for skhd & yabai
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
This commit is contained in:
96
config/skhd/skhdrc
Normal file
96
config/skhd/skhdrc
Normal file
@@ -0,0 +1,96 @@
|
||||
# skhd configuration file
|
||||
# https://github.com/koekeishiya/skhd
|
||||
|
||||
# Reserved keys
|
||||
# ---------------------------
|
||||
# shift + cmd
|
||||
# m = restart yabai
|
||||
# q = quit yabai
|
||||
# <cr> = open wezterm
|
||||
# alt
|
||||
# h = focus west
|
||||
# j = focus south
|
||||
# k = focus north
|
||||
# l = focus east
|
||||
# e = toggle split
|
||||
# y = toggle float, center window medium size
|
||||
# u = move window to left
|
||||
# i = move window to center
|
||||
# o = move window to right
|
||||
# ctrl + alt
|
||||
# h = resize window left
|
||||
# j = resize window down
|
||||
# k = resize window up
|
||||
# l = resize window right
|
||||
# alt + shift
|
||||
# t = toggle float, center window medium size
|
||||
# y = toggle float, center window large size
|
||||
# h = swap window left
|
||||
# j = swap window down
|
||||
# k = swap window up
|
||||
# l = swap window right
|
||||
|
||||
# Control applications
|
||||
## Yabai
|
||||
shift + cmd - m : yabai --restart-service # restart yabai
|
||||
shift + cmd - q : yabai --quit # quit yabai
|
||||
|
||||
## wezterm
|
||||
shift + cmd - return : wezterm
|
||||
|
||||
# Floating windows
|
||||
|
||||
# float / unfloat window and center on screen medium size
|
||||
alt - t : yabai -m window --toggle float;\
|
||||
yabai -m window --grid 9:16:1:1:14:7
|
||||
|
||||
# float / unfloat window and center on screen large size
|
||||
shift + alt - t : yabai -m window --toggle float;\
|
||||
yabai -m window --grid 90:160:5:5:150:80
|
||||
|
||||
# make floating window fill screen
|
||||
alt - y : yabai -m window --toggle float;\
|
||||
yabai -m window --grid 1:1:0:0:1:1
|
||||
|
||||
# toggle float window and center on screen medium size
|
||||
shift + alt - y : yabai -m window --toggle float \
|
||||
&& yabai -m window --resize \
|
||||
abs:$(($(yabai -m query --displays --display | jq .frame.w) / 2)):$(($(yabai -m query --displays --display | jq .frame.h) * 4 / 5)) \
|
||||
&& yabai -m window --move \
|
||||
abs:$(($(yabai -m query --displays --display | jq .frame.x) + $(($(yabai -m query --displays --display | jq .frame.w) / 4)))):$(($(yabai -m query --displays --display | jq .frame.y) + $(($(yabai -m query --displays --display | jq .frame.h) / 10))))
|
||||
|
||||
# toggle window split type
|
||||
alt - e : yabai -m window --toggle split
|
||||
|
||||
|
||||
# Focusing, resizing and moving windows
|
||||
|
||||
## focus window
|
||||
alt - h : yabai -m window --focus west
|
||||
alt - j : yabai -m window --focus south
|
||||
alt - k : yabai -m window --focus north
|
||||
alt - l : yabai -m window --focus east
|
||||
|
||||
## move windows to predefined places
|
||||
alt - y : yabai -m window --grid 1:4:1:0:2:1 # 2/4 centered
|
||||
alt - u : yabai -m window --grid 1:3:0:0:1:1 # 1/3 left
|
||||
alt - i : yabai -m window --grid 1:3:1:0:1:1 # 1/3 center
|
||||
alt - o : yabai -m window --grid 1:3:2:0:1:1 # 1/3 right
|
||||
ctrl + alt - h : yabai -m window --grid 1:2:0:0:1:1 # 1/2 left
|
||||
ctrl + alt - l : yabai -m window --grid 1:2:1:0:1:1 # 1/2 right
|
||||
|
||||
## swap windows
|
||||
shift + alt - h : yabai -m window --swap west
|
||||
shift + alt - j : yabai -m window --swap south
|
||||
shift + alt - k : yabai -m window --swap north
|
||||
shift + alt - l : yabai -m window --swap east
|
||||
|
||||
## resize windows
|
||||
ctrl + alt - h : yabai -m window --resize left:-50:0; \
|
||||
yabai -m window --resize right:-50:0
|
||||
ctrl + alt - j : yabai -m window --resize bottom:0:50; \
|
||||
yabai -m window --resize top:0:50
|
||||
ctrl + alt - k : yabai -m window --resize top:0:-50; \
|
||||
yabai -m window --resize bottom:0:-50
|
||||
ctrl + alt - l : yabai -m window --resize right:50:0; \
|
||||
yabai -m window --resize left:50:0
|
||||
33
config/yabai/yabairc
Executable file
33
config/yabai/yabairc
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env sh
|
||||
# yabai configuration file
|
||||
# https://github.com/koekeishiya/yabai
|
||||
|
||||
## load scripting additions
|
||||
# sudo yabai --load-sa
|
||||
# yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
|
||||
|
||||
# automatically balance windows when they are created or destroyed
|
||||
yabai -m config auto_balance on
|
||||
|
||||
# layout to use, default is bsp (binary space partitioning)
|
||||
# bsp or float (default: float)
|
||||
yabai -m config layout bsp
|
||||
|
||||
# padding between windows and screen edge
|
||||
yabai -m config top_padding 0
|
||||
yabai -m config bottom_padding 0
|
||||
yabai -m config left_padding 0
|
||||
yabai -m config right_padding 0
|
||||
yabai -m config window_gap 4
|
||||
|
||||
# apps to not manage (ignore)
|
||||
# TODO: add apps from aerospace config to here
|
||||
yabai -m rule --add app="System Settings" manage=off
|
||||
yabai -m rule --add app="^Logi Options$" manage=off
|
||||
yabai -m rule --add app="^Slack$" manage=off
|
||||
yabai -m rule --add app="1Password" manage=off
|
||||
yabai -m rule --add app="Fork" manage=off
|
||||
yabai -m rule --add app="^Microsoft Teams$" manage=off
|
||||
|
||||
# apply rules
|
||||
yabai -m rule --apply
|
||||
BIN
local/bin/yabai
Executable file
BIN
local/bin/yabai
Executable file
Binary file not shown.
1313
local/man/yabai.1
Normal file
1313
local/man/yabai.1
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user