Skip to content

Commit

Permalink
feat: resize windows with yabai
Browse files Browse the repository at this point in the history
  • Loading branch information
rgomezcasas committed Oct 1, 2023
1 parent a812db3 commit ac3ad56
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 26 deletions.
83 changes: 65 additions & 18 deletions os/mac/karabiner-elements/karabiner.json
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@
"from" : {
"key_code" : "spacebar",
"modifiers" : {
"mandatory" : [ "left_command", "left_control", "left_option" ]
"mandatory" : [ "left_control" ]
}
},
"to" : [ {
Expand All @@ -380,7 +380,7 @@
"from" : {
"key_code" : "i",
"modifiers" : {
"mandatory" : [ "left_command", "left_control", "left_option" ]
"mandatory" : [ "left_control" ]
}
},
"to" : [ {
Expand Down Expand Up @@ -490,35 +490,35 @@
"description" : "[yabai] Focus windows",
"manipulators" : [ {
"from" : {
"key_code" : "j",
"key_code" : "h",
"modifiers" : {
"mandatory" : [ "left_option" ]
}
},
"to" : [ {
"shell_command" : "/opt/homebrew/bin/yabai -m window --focus south"
"shell_command" : "/opt/homebrew/bin/yabai -m window --focus west"
} ],
"type" : "basic"
}, {
"from" : {
"key_code" : "k",
"key_code" : "j",
"modifiers" : {
"mandatory" : [ "left_option" ]
}
},
"to" : [ {
"shell_command" : "/opt/homebrew/bin/yabai -m window --focus north"
"shell_command" : "/opt/homebrew/bin/yabai -m window --focus south"
} ],
"type" : "basic"
}, {
"from" : {
"key_code" : "h",
"key_code" : "k",
"modifiers" : {
"mandatory" : [ "left_option" ]
}
},
"to" : [ {
"shell_command" : "/opt/homebrew/bin/yabai -m window --focus west"
"shell_command" : "/opt/homebrew/bin/yabai -m window --focus north"
} ],
"type" : "basic"
}, {
Expand Down Expand Up @@ -645,35 +645,35 @@
"description" : "[yabai] Swap window",
"manipulators" : [ {
"from" : {
"key_code" : "j",
"key_code" : "h",
"modifiers" : {
"mandatory" : [ "left_option", "left_shift" ]
}
},
"to" : [ {
"shell_command" : "/opt/homebrew/bin/yabai -m window --swap south"
"shell_command" : "/opt/homebrew/bin/yabai -m window --swap west"
} ],
"type" : "basic"
}, {
"from" : {
"key_code" : "k",
"key_code" : "j",
"modifiers" : {
"mandatory" : [ "left_option", "left_shift" ]
}
},
"to" : [ {
"shell_command" : "/opt/homebrew/bin/yabai -m window --swap north"
"shell_command" : "/opt/homebrew/bin/yabai -m window --swap south"
} ],
"type" : "basic"
}, {
"from" : {
"key_code" : "h",
"key_code" : "k",
"modifiers" : {
"mandatory" : [ "left_option", "left_shift" ]
}
},
"to" : [ {
"shell_command" : "/opt/homebrew/bin/yabai -m window --swap west"
"shell_command" : "/opt/homebrew/bin/yabai -m window --swap north"
} ],
"type" : "basic"
}, {
Expand All @@ -691,6 +691,17 @@
}, {
"description" : "[yabai] Move window and split",
"manipulators" : [ {
"from" : {
"key_code" : "h",
"modifiers" : {
"mandatory" : [ "left_control", "left_option" ]
}
},
"to" : [ {
"shell_command" : "/opt/homebrew/bin/yabai -m window --warp west"
} ],
"type" : "basic"
}, {
"from" : {
"key_code" : "j",
"modifiers" : {
Expand All @@ -714,24 +725,60 @@
"type" : "basic"
}, {
"from" : {
"key_code" : "h",
"key_code" : "l",
"modifiers" : {
"mandatory" : [ "left_control", "left_option" ]
}
},
"to" : [ {
"shell_command" : "/opt/homebrew/bin/yabai -m window --warp west"
"shell_command" : "/opt/homebrew/bin/yabai -m window --warp east"
} ],
"type" : "basic"
} ]
}, {
"description" : "[yabai] Resize window",
"manipulators" : [ {
"from" : {
"key_code" : "h",
"modifiers" : {
"mandatory" : [ "left_command", "left_control", "left_option" ]
}
},
"to" : [ {
"shell_command" : "/opt/homebrew/bin/yabai -m window west --resize right:-20:0 2> /dev/null || /opt/homebrew/bin/yabai -m window --resize right:-20:0"
} ],
"type" : "basic"
}, {
"from" : {
"key_code" : "j",
"modifiers" : {
"mandatory" : [ "left_command", "left_control", "left_option" ]
}
},
"to" : [ {
"shell_command" : "/opt/homebrew/bin/yabai -m window north --resize bottom:0:20 2> /dev/null || /opt/homebrew/bin/yabai -m window --resize bottom:0:20"
} ],
"type" : "basic"
}, {
"from" : {
"key_code" : "k",
"modifiers" : {
"mandatory" : [ "left_command", "left_control", "left_option" ]
}
},
"to" : [ {
"shell_command" : "/opt/homebrew/bin/yabai -m window south --resize top:0:-20 2> /dev/null || /opt/homebrew/bin/yabai -m window --resize top:0:-20"
} ],
"type" : "basic"
}, {
"from" : {
"key_code" : "l",
"modifiers" : {
"mandatory" : [ "left_control", "left_option" ]
"mandatory" : [ "left_command", "left_control", "left_option" ]
}
},
"to" : [ {
"shell_command" : "/opt/homebrew/bin/yabai -m window --warp east"
"shell_command" : "/opt/homebrew/bin/yabai -m window east --resize left:20:0 2> /dev/null || /opt/homebrew/bin/yabai -m window --resize left:20:0"
} ],
"type" : "basic"
} ]
Expand Down
22 changes: 14 additions & 8 deletions os/mac/karabiner-goku/karabiner.edn
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,9 @@

;; ------------ Launchers ------------
{:des "[launch] iTerm"
:rules [[:!CTOspacebar [:open-app "iTerm"]]]}
:rules [[:!Tspacebar [:open-app "iTerm"]]]}
{:des "[launch] IntelliJ"
:rules [[:!CTOi [:open-app "IntelliJ IDEA Ultimate"]]]}
:rules [[:!Ti [:open-app "IntelliJ IDEA Ultimate"]]]}
{:des "[launch] Chrome"
:rules [[:!CTOc [:open-app "Google Chrome"]]]}
{:des "[launch] Slack"
Expand All @@ -120,9 +120,9 @@

;; ------------ Yabai ------------
{:des "[yabai] Focus windows"
:rules [[:!Oj "/opt/homebrew/bin/yabai -m window --focus south"]
:rules [[:!Oh "/opt/homebrew/bin/yabai -m window --focus west"]
[:!Oj "/opt/homebrew/bin/yabai -m window --focus south"]
[:!Ok "/opt/homebrew/bin/yabai -m window --focus north"]
[:!Oh "/opt/homebrew/bin/yabai -m window --focus west"]
[:!Ol "/opt/homebrew/bin/yabai -m window --focus east"]]}

{:des "[yabai] Focus displays"
Expand All @@ -141,17 +141,23 @@
[:!SOd "/opt/homebrew/bin/yabai -m space --toggle show-desktop"]]}

{:des "[yabai] Swap window"
:rules [[:!SOj "/opt/homebrew/bin/yabai -m window --swap south"]
:rules [[:!SOh "/opt/homebrew/bin/yabai -m window --swap west"]
[:!SOj "/opt/homebrew/bin/yabai -m window --swap south"]
[:!SOk "/opt/homebrew/bin/yabai -m window --swap north"]
[:!SOh "/opt/homebrew/bin/yabai -m window --swap west"]
[:!SOl "/opt/homebrew/bin/yabai -m window --swap east"]]}

{:des "[yabai] Move window and split"
:rules [[:!TOj "/opt/homebrew/bin/yabai -m window --warp south"]
:rules [[:!TOh "/opt/homebrew/bin/yabai -m window --warp west"]
[:!TOj "/opt/homebrew/bin/yabai -m window --warp south"]
[:!TOk "/opt/homebrew/bin/yabai -m window --warp north"]
[:!TOh "/opt/homebrew/bin/yabai -m window --warp west"]
[:!TOl "/opt/homebrew/bin/yabai -m window --warp east"]]}

{:des "[yabai] Resize window"
:rules [[:!CTOh "/opt/homebrew/bin/yabai -m window west --resize right:-20:0 2> /dev/null || /opt/homebrew/bin/yabai -m window --resize right:-20:0"]
[:!CTOj "/opt/homebrew/bin/yabai -m window north --resize bottom:0:20 2> /dev/null || /opt/homebrew/bin/yabai -m window --resize bottom:0:20"]
[:!CTOk "/opt/homebrew/bin/yabai -m window south --resize top:0:-20 2> /dev/null || /opt/homebrew/bin/yabai -m window --resize top:0:-20"]
[:!CTOl "/opt/homebrew/bin/yabai -m window east --resize left:20:0 2> /dev/null || /opt/homebrew/bin/yabai -m window --resize left:20:0"]]}

{:des "[yabai] Move window to another display"
:rules [[:!SOs "/opt/homebrew/bin/yabai -m window --display west; /opt/homebrew/bin/yabai -m display --focus west;"]
[:!SOg "/opt/homebrew/bin/yabai -m window --display east; /opt/homebrew/bin/yabai -m display --focus east;"]]}
Expand Down
2 changes: 2 additions & 0 deletions os/mac/yabai/yabairc
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,5 @@ yabai -m config window_gap 10
yabai -m rule --add app="^System Settings$" manage=off
yabai -m rule --add app="^Activity Monitor$" manage=off
yabai -m rule --add app="^Karabiner-Elements$" manage=off
yabai -m rule --add app="^Raycast$" manage=off
yabai -m rule --add app="^Keynote$" manage=off

0 comments on commit ac3ad56

Please sign in to comment.