The main functionality fenster provides is to have good full screen spaces, in the future it might provide more.
Fenster.Demo.mp4
yabai - You need yabai
to move spaces around which is critical for how Fenster works, in the future this might be something directly implemented
For yabai
to work with this feature, you need to Disable System Integrity Protection
Also need to setup https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(latest-release)#configure-scripting-addition correctly
// ~/.yabairc
yabai -m signal --add event=space_changed action="curl localhost:8090/prepare?oldSpace=\${YABAI_RECENT_SPACE_ID}&newSpace=\${YABAI_SPACE_ID}"
yabai -m signal --add event=mission_control_enter action="curl localhost:8090/mission/enter"
yabai -m signal --add event=mission_control_exit action="curl localhost:8090/mission/exit"
sudo yabai --load-sa
Go to https://github.com/CryogenicPlanet/fenster/releases and download the fenster
binary for your platform
Make sure it is in /usr/local/bin
or somewhere in your path
Setup callback
yabai -m signal --add event=space_changed action="curl localhost:8090/prepare?oldSpace=\${YABAI_RECENT_SPACE_ID}&newSpace=\${YABAI_SPACE_ID}"
yabai -m signal --add event=mission_control_enter action="curl localhost:8090/mission/enter"
yabai -m signal --add event=mission_control_exit action="curl localhost:8090/mission/exit"
# In the future will be
# fenster setup # not implement yet
Run the fenster server
fenster start
crontab -e
@reboot fenster start
This is really just written for me, so it may not make a lot of sense for you to use it.
Also the code here was written in like an hour and is really quite shit so don't judge me too much on it