How To Use A Tiling Window Manager On MacOs | Yabai Ultimate Guide
Вставка
- Опубліковано 29 тра 2024
- In this video, I share everything you need to know to setup and use the Yabai tiling window manager on macOS. Tiling window managers are really popular on Linux environments, but with apps like Yabai and Amethyst, you can bring this functionality to macOS as well. This video is meant to be a complete guide on using and setting this up so that you can get started quickly and add this tool to your workflow to level up your window management! Hope you enjoy the video!
✍🏽 Blog Post for Reference: www.josean.com/posts/yabai-setup
🚀 My Dot Files: github.com/josean-dev/dev-env...
Help Support Me And The Channel: www.buymeacoffee.com/joseanma... 🙏🏽
Terminal Setup Video: • How To Make Your Borin...
⏰ Timestamps
00:00 - Introduction
01:20 - Built-in MacOs Settings/Shortcuts
05:04 - Installing Homebrew
06:06 - Installing Yabai & Skhd
06:21 - Configuring Yabai
10:12 - Starting Yabai
12:28 - Starting Skhd
12:55 - Configuring Skhd (Keyboard Shortcuts)
21:13 - Exploring Further
21:38 - Conclusion - Наука та технологія
Amazing video like always!!🙇👏 for anyone that may encounter in the same error (v 5.0.4 ) :
Error: Formula `yabai` has not implemented #plist, #service or installed a locatable service file
instead of
brew services start yabai
brew services restart yabai
use
yabai --start-service
yabai --restart-service
Same with skhd.
Thanks!!!!
Thanks for pointing this out! Looks like this has changed from when I originally released the video.
For Error: The `yabai` formula has not implemented #plist, #service or installed a locatable service file.
replace "brew services start yabai" with
with "yabai --start-service".
@@malekmansouri6673 worked, thanks.
I'm on v5.0.6. I followed this instruction, and yabai starts, but nothing happens, the windows still aren't tiled. I copied both dotfiles. How can I figure out what is going wrong?
Just a heads up for people watching this in 2024. yabai / shkd no longer use brew to start their respective services. The commands to run should be "yabai --start-service" and "shkd --start-service" instead. Hope this helps.
you sir, are a hero!
I disabled SIP but still workspace shortcuts doesn't work for me, does anyone know why?
@@3ckortreat same here. somebody please help us
@@adytiaisanda there is a command you need to write in terminal, -sa something it solved for me
skhd -install-service installs a launchctl service. It might not start. Copy the entire path to the service then remove it. Load it by running launchctl load and launchctl start
As you’re interested in productivity, you might prefer getting used to ‘ctrl+L’ to clear the terminal instead of typing ‘clear’ (it will also keep the scroll back for you which might be handy)
I was about to leave the exact same comment. I will add that in addition to this, I have this alias:
alias cls="clear; printf '\e[3J'"
which clears scrollback as well, which is handy if you have a really long compile error and you don't want to hunt for the top of it.
Awesome, thanks for the tip!
@@mikefdorstyou can also do command-k to clear and clear the scroll back
@@heartdyedpurple As I understand in iTerm2 cmd-k is used to clear the buffer
or just allias to "c"
Such a great, detailed video. I've been using yabai for a while, but with a suuuuuuuuuuuper basic setup with no hotkeys for anything. This has taken my setup to the next level. Thanks!
Great video. im a long time linux user, and I definitely appreciate how you explicit you are about the configurations. Been a mess to figure out how to configure window managers, etc. But you make it clear!
I used Yabai shortly after it came out, but then put it down a couple of years ago. Your video inspired me to pick it back up again. Thanks!
I was just looking into tiling managers for Mac after seeing a lot of people use i3. Tried Amethyst but didn't like I couldn't control it programmically. Thank you for showing me Yabai. It solved my main issues with MacOS spaces which won't focus on a display when using the shortcuts if it already is visible.
After trying several configurations for key maps with Yabai, I was able to make a Vim style keybinding which allows for different namespaces using SKHD modes. This allowed me to keep my leader keys similar (space for nvim, ctrl + space for tmux, and alt + space for yabai). So far it has worked great. Now I can do (alt + space > f > j) to "focus down" or (alt + space > g > t) to "goto terminal".
Using Yabai's ability to label spaces has also been beneficial in making my config more clear.
I am using yabai for a long time, but this video was first to inspire me to revise my config and add some more advanced thicks. Thanks!
I felt a bit lost with this all config at first when i was checking the original repo. but with this video now i have my setup complete and great.
thank you a lot for this great video you are a life saver I love you subscribed
Best video for Yabai setup, hands down. My whole environment on my mac is now almost identical to yours haha! Thank you for the amazing and helpful content!
A tiling window manager and the related shortcuts was the last piece for me to be as productive with a mac, thanks!
Super clear explanation, good pacing, easy to follow along. Thanks!
Thanks for this video, I based my config on yours before modifying some bits. Couldn't enjoy yabai on Sonoma Beta for a while due to some patch that needed to be introduced, but now I absolutely love my lunarvim/neovim + yabai + sketchybar config - the combo brings so much freshness to macOS and puts me in zen mode while coding, through the combo of vim and keyboard shortcuts in yabai.
Sweet! Really happy to hear that.I've been enjoying it a lot too. I'm thinking about putting a video together about sketchy bar once I get around to trying it and setting it up.
Excellent video, thanks for sharing your knowledge, it helped me a lot to get out of my frustration with the chaotic experience that Mac OS offers in this topic. Not all of us have a vocation to explain, you are blessed to have it.
This is an excellent video. Thank you so much for making it and introducing me to this fantastic technology!
This is brilliant! I've been using Yabai for a while now but I've still not gotten around to configuring it the way I want to. So this video will help me a lot with that. Thanks!
Happy to hear that!
I just found yabai when configuring my MBP for Rust development. This video is by far, the best resource I could find for an introduction to yabai and skid. Thanks for sharing! Subbed🔔Ding!
Amazing video! Thanks a lot, I've learnt carefully and set my configurations, it works perfectly like what I want now! 😄
This is pretty cool. I was using tidy windows since an eternity, but Yabai is even better. Thanks!1!
Super clear, great production quality, thanks!
Excellent! I am currently using Amethyst but this setup you showed seems way more flexible. Thank you!
Awesome! I tried Amethyst too, but ended up liking this better!
Thanks so much for making this, and even at perfect timing. I've been using Amethyst for a while now, but they are so buggy lately that I wanted to try Yabai. Will definitely try it out now!
@@sspaeti Awesome! Same here, Amethyst was a bit too buggy for me and this was working a lot better and is a lot more flexible as well.
@@joseanmartinez I am using Yabai but I am always asking myself if I should try Amethyst. A video comparing the two would be awesome so I don`t have to go into the task of install and configure Amethyst just to compare. thanks
Excellent, excellent video... you explain things very well 10/10!
Man your content it's awesome, this week I received my MacBook Pro with m2 pro by the new company I started works, it's the first time work with Mac, and I'm fascinated with this type of programs and the entire develops ecosystem.
Loved the video. Amazing content. Thank you Josean 😃
Glad I found this video. Coming from linux using i3wm for the past few years. Was hoping there was a decent tiling window manager. It's even looking like I can keep the same keybindings too.
Thanks a lot! This is the basis tutorial of every tilling wm! Great :)
Thanks, i 'been using this configuration as programmer with a mac who missed their old i3 linux days and it's been great.
Awesome! Happy to hear that, thanks for the feedback!
"The quality has been consistently stable, I really like it." I am really looking forward to your next work.
Really very educating and inspirational!! Thank you!
That was really handy to see it in action. Thanks for that nice intro!
Happy to hear that, thanks!
one of the great tools, well done! Thanks for sharing.
Thank you for the info. I have bee looking for a tool like yabai. You saved my time because I already started to think about coding such tool :)
amazing video with detailed explanations. Thanks
thank you so much for this vide, it really help 🚀the productivity
Great video and helpful, i really like the way how u explain, that's way i subscribe now, keep up!
Really good content! Thanks for sharing!
Thank you for this video, really easy to follow as always.
Awesome! Thanks for the feedback!
Awesome video man, thanks a lot!
This is great, thank you so much 👍 This will take a while for me to get used to 🤯
Happy to hear you enjoyed the video! I'm still getting used to it too!
Thank you for sharing your great setup (y).
For those who concerns disable `System Integrity Protection`: You may not need it. We can workaround, e.g. "Move current window to Space 1, and switch to Space 1 as well."
hyper - y : yabai -m window --space 1 && osascript -e "tell application \"System Events\" to keystroke \"h\" using {command down, control down, option down, shift down}"
10/10 video! Tyvm, instant sub
Thanks for the video, it was interesting for me.
Great video! Thank you 🙏
Great video! Thank you a lot
One of the things I miss about my old Linux setup is i3-gaps, and since I switched to Macbook 2 years ago It still feels so slow just moving around, too many unnecessary animations. I've tried magnet and amethyst and is not the same It's like the tiling system of Gnome on Linux. Seeing this video I got my hopes again of getting my setup just like I used to have. I will definitely will try this, thanks!!
Awesome!
Did this work well for you?
Also you found any alternative to i3-gaps?
This video was insanely useful - thank you
Happy to hear that! Thanks!
Very useful video, thanks a lot
I just installed it and I'm loving how good Yabai is
Awesome!
Thanks for the great tutorial 👍
Great video. My work system is a MacBook Pro and I use Arch with Sway on my personal laptop. The systems are so different that the change feels jarring when swapping from one to the other. This should help!
Awesome!
Same here! Glad I found this video, since he does such a good job of explaining every detail of the installation
Even myself as a keyboard-only fanatic love the app Swish for window management
excellent video. thank you!
wow man thank you so much for this, this tool is crazy
Awesome, thanks for the feedback!
This video is good, thank you very much
Great tips. My favorites were the reduce motion and the hyper key
Nice, thank you so much!
Excellent video 🧡
for anyone wanting to disable SIP...it was here and then not depending on your version of mac os, if you upgraded, etc. sonoma has the utility back.... recovery mode->utilities->terminal->/usr/bin/csrutil disable... reboot.
do the needful.
go back in recovery and enable it: csrutil enable...reboot
not entirely sure what is/is not missing without doing this but for those curious, that's how :)
Great video, I'm using similar settings as you, I just add stackline that I can stack windows. If you are using many windows open handy.
Awesome, thanks!
Really like your tutorials. I followed the one on iTerm2 and find it really useful. Do you have a video on your product workflow of these tutorials, i.e what tool you use for screen recording and do you do much post editing etc? If you can do a video on this that would be great.
That’s really helpful!😊
Happy to hear that, thanks!
Thank you brother
I use Moom for managing windows. Pretty efficient
hey! how are you?
I like your videos very much, please don't disappear from youtube :)
Hey! Really appreciate that. I’ve been pretty busy with work, hoping to get back to making videos soon.
reduce motion setting is gold
Your keyboard sounds very satisfying 😀
I love this! The keybindings are very sensible.
How do you integrate with the creation of new tabs in your terminal emulator? Do you even use that or do you just open a new terminal instance altogether?
Great! Thanks
thank you!
Thanks for great tutorial and showcase. Could you please tell is it possible to enable/disable yabai only for some virtual desktop?
Wish these sorts existed when I was getting started.
I love it!, but is another step in the looong way to setup everything (brew,tmux,neovim,zsh,karabiner, many others and now yabai and shkd) , but when you got it. It rocks !
Definitely! It’s really up to you how far you choose to take things, but it’s pretty cool to be able to if you want to. Thanks!
Can look into using ansible to automate some of this
Thanks for the vid. Clear and informative. Having recently installed Void/swaywm multi-booting on my Macbook inspired me to look at yabai, thence here. I understand the appeal of a tiling wm on a large enough screen, but I don't code, my query is: what advantages does macOS have over BSD/Linux that keeps devs/coders on macOS?
this is literally i3WM + tmux + nvim setup on my linux :)
exciting its on macOS :)
Thanks for an awesome video, I am about to het my first MacBook at woork soon and were afraide that the windows handeling on Mac would be the same as it were 10 years ago :O
But this tight here looks verry promesing.
One question thoguh, i use Hyper/Hyper shift as my Caps Lock key right now, both on Windows and Linux.
And you say that it is possible to create the same for Mac and that i can use that for all the sgortcuts shown/configured in this video?
Very nice tutorial.
As information for all who encounter the same problem:
With the shortcuts from the video, the @ sign no longer works as usual with the shortcut "Opt + l".
Just put the shortcut from the video on another key.
Hey! Thanks for the feedback! Happy to hear you found the tutorial helpful. Not sure about the "@" sign, but the "alt" modifier key shortcuts configured with skhd are for the "option" key on the mac's keyboard.
@@joseanmartinez The problem exists under keyboards with a QWERTZ layout. On these keyboards the @ character is created with the combination option or alt + l.
Therefore, a conflict arises with the shortcuts from the video on a keyboard with a QWERTZ layout.
I just wanted to share this insight in the comments in case more people encounter the same problem.
@@jbmeizo4953 Ah I didn't know that! Makes sense, thanks for pointing that out!
I was having this issue a little. instead of changing focus from window to window, it was just typing '@' in my terminal. currently don't have change focus by window working, any tips?
@@DanielGonzalez-dx9jo Is your syntax correct and have you tried to restart Yabai?
another tip for multiple display users:
i prefer pressing H or L several times to switch between the desktops, cuz i rarely use more than 2 displays, and to implement this behaviour in yabai you can do
alt - h: yabai -m window --focus west || (yabai -m display --focus west && yabai -m window --focus east)
in your skhdrc (obv copy it for other keys too)
idk if there's a better way cuz with this bind there's a lag when switching between displays, because it needs to wait for an error (could not locate a eastward managed window or smth like that) so it takes about 0.3 seconds longer
I've just switched from a Linux system running Pop! To a macbook air and I was wondering how to do this yesterday, it's like you read my mind.
try PopOs
Awesome! Glad I could help.
@@gonove97 I believe you can't run that natively on Apple Silicon Macbooks as of right now.
Amazing video, as always! Do you know if yabai allows you to customize window borders so it's easier to spot the focused window? Cheers!
awesome video
Bro it's sooo cool
your setup videos are top notch brother!
Thank you.
Appreciate the feedback, glad you enjoyed the video!
awesome!
Great video and fan of your page. I was wondering if its possible for settings to reset after a computer restart. I ask because my tiles are re-sizing anymore.
Definitely useful and informative video …. And terrifying :) not sure I’d remember a 1/6 of those keyboard shortcuts
Thanks for this video your explanation es super. What app are you using to display your keys at screen?
do you use linux VMs with your mac? how do you cope this setup with possible overlapping shortcuts in a linux vm tile manager?
Great job sharing the video! 🎉 13:10 I have a question about setting up a tiling window manager with iTerm2 on my MacBook Pro (M1). I was able to successfully set up skhdrc for my browser, email, and default terminal, but when I try to use iTerm2 and, for example, press `shift+option y`, a weird symbol appears on my screen and it doesn't have any effect. Do you have any tips for setting up iTerm2 with a tiling window manager?
This could be because you have secure keyboard entry enabled. Try Unselecting it from iTerm2 menu.
I was just checking out yabai as well - Great video and nice production value! My question after looking at the docs and watching your video - What's the `alt` key on a macos keyboard?
Hey! Thanks for the feedback! “Alt” on mac is the equivalent to the “Option” key.
With the configuration described in the video, I had an issue as Option + click was not working anymore in Finder (and probably other applications) : I changed to `yabai -m config mouse_modifier fn` in yabairc file. It now uses the fn key instead of Option.
amazing video! May I ask what app you are using to display the keystrokes🤔? It looks nite!
Excelente video, muchas gracias. me gusta usar tmux/neovim de igual manera, y me llama la antencion como usan i3 en linux, esto se le parece mucho, esta muy padre esta herramienta para mac. tambien me gusta usar el kinesis advantage2, es muy comod y un mx ergo mouse. estan muy buenos tus otros videos tambien. he ido alguans veces a puerto rico, tengo algunos amigos por alla. estaria padre que hablaras un poco de tu trabajo actual, que herramientas usan. tutoriales de vim estan padres, pero me gustaria verlos mas en accion creando algun proyecto sencillo usando estas herramientas. talvez estaria interesante que hicieras algun en vivo en twitch tambien. saludos !
Hey man! Great video.. do you know if yabai can do similar thing like in i3 where the current active window can be centered when pressing a key and put it back when pressed again
Is it possible to add transition animation ?? (for wider or shorter tiling window)
Thank you, I hadn't used a desktop manager before. This is really great. I have one question: is it supposed to disable switching between applications on different desktops via cmd+tab? Eg if I'm using Chrome in desktop 1 and want to swtich to iTerm in desktop 2, I select iTerm via cmd+tab. Following that, the menu bar indicates that the I'm using iTerm, but the desktop doesn't change, it's still showing Chrome.
Ah I see what I did. In System Preferences > Mission Control, I disabled this option: 'When switching to an application, switch to a Space with open windows for the application". I re-enabled it and the cmd+tab is working as it was. Again, thank you for the video!
Good work, I also use yabai at Mac before, I use xmonad, stumpwm, I just want to know how to do with popup windows, what rule it is? I always want left windows hold half of screen, others on the right, also make focus window can swap with left windows, most of operation is on the left window, I will just view other windows as monitor windows. Another confused me that is there are many windows are hidden at background even on the same workspace, I use bsp layout. Thanks a lot
Nice one! Very few working tutorials on yabai. Will you switch to asahi linux once it's more ready, or what keeps you on macos?
Hey! Thanks! I’ve actually never made the switch to linux but am really interested in trying it out. Went from windows to mac and primarily went down the rabbit hole of neovim, tmux and now tiling window management. Once asahi linux is more ready I’ll definitely be trying it out!
Hi, I am running into an issue at the step where you start yabai. When I run this command: brew services start yabai , I get the following error message: Error: Formula `yabai` has not implemented #plist, #service or installed a locatable service file.
I googled the error but there are very few answers and none of them helped.
Do you have any idea how to fix it?
Thank you for the tutorial!
Ran into this same error after upgrading yabai and skhd. Brew would not allow me to start the service.
After some time troubleshooting, you need to run the commands:
1. yabai --start-service
2. skhd --start-service
I completely uninstalled yabai and skhd using homebrew and then reinstalled it after restarting. It worked afterwards, but the skhdrc config file was still set up to use Homebrew Services.
In your skhdrc config, you will want to replace the last three lines with:
1. ctrl + alt - q : yabai --stop-service
2. ctrl + alt - s : yabai --start-service
3. ctrl + alt - r : yabai --restart-service
Hopefully this works for you!
@@Milfaholic69420 Thank you so much. I ran into the same issue. :)
Awesome stuff, using your config and its amazing. ONE thing that messes up everything and the experience.. TEAMS mini window that pops up as soon as I change screens. Any solutions for that? I tried to add teams to manage=off but no success..
Brother, I want to know how you debug when you use nvim. I don't see a debug plugin like nvim-dap in your nvim settings. I'm curious about what you do when you need to debug?