Package: macpywm
NAMEmacpywm - A simple but extensible window manager for macOS.SYNOPSISmacpywm command [args...]DESCRIPTIONThis manual page documentsmacpywm, a simple but extensible macOS
window manager written in Python.macpywmis a Python version ofxpywm(https://github.com/h-ohsaki/xpywm), an X11 window manager
written in Python.macpywmis built on top of the Yabai
(https://github.com/koekeishiya/yabai), tiling window management for
the Mac.  Specifially, all window management on macOSes are handled
with Yabai.macpywmonly providesxpywm-compatible functions
such as the programmed window layout, the tiled window layout, and
severalxpywm-compatible functions.macpywmsupports two types of window placement algorithms:
programmed mode and tiled mode.In the programmed mode, you can specify rules for inferring
appropriate window geometries.  By default, Emacs is placed at the
top-left corner of the screen with 50% window width and 100% window
height.  Web browsers (e.g., Safari) and office applications are
placed next to the Emacs with 50% window width and 100% window height.
The terminal window is placed at the bottom-right corner with 50%
window width and 70% window height.  If there exist more than two
terminal windows, the size of each terminal window is shrunk to 1/4 of
the screen, and placed in a non-overlapping way.In the titled mode, all windows are placed in a titled fashion so that
any window will have the same window width and height, and that any
window will not overlap with others, as like tile-based window
managers.  Moreover,macpywmtries to allocate larger area for
Emacs; i.e., if there are three windows, say, Emacs and two terminals,
Emacs will occupy the half of the screen, and each terminal will have
the quarter of the screen.OPTIONSNoneSCREENSHOTSINSTALLATIONSave two configuration files (.yabaircand.skhdrc) in your
home directory..yabairchttps://github.com/h-ohsaki/macpywm/blob/master/.yabairc.skhdrchttps://github.com/h-ohsaki/macpywm/blob/master/.skhdrcInstall yabai (https://github.com/koekeishiya/yabai) and skhd
(https://github.com/koekeishiya/skhd).$brewinstallkoekeishiya/formulae/yabai
$brewservicesstartyabai
$brewinstallkoekeishiya/formulae/skhd
$brewservicesstartskhdSee yabai wiki (https://github.com/koekeishiya/yabai/wiki) for the
installation details.Note that yabai and skhd configuration files (.yabaircand.skhdrc) must not be overwritten.Install macpywm from PyPI (https://pypi.org/project/macpywm/)$pip3installmacpywmCUSTOMIZATIONSince Python is one of interpreters, you can easily customize the
behavior ofmacpywmby directly modifying its variables,
functions, and methods.  For instance, if you want to customize the
rules for the programmed window placement, simply edit the definition
of the variable LAYOUT_RULES.BINDINGSCtrl + Mod1 + iFocus the next window.  Available windows are circulated in the order of
top-left, bottom-left, top-right, and bottom-right.Ctrl + Mod1 + 'Toggle the maximization of the current active window.Ctrl + Mod1 + ;Toggle the vertical maximization of the current active window.Ctrl + Mod1 + ,Layout all available windows in the programmed mode.Ctrl + Mod1 + .Layout all available windows in the tiled mode.Ctrl + Mod1 + zDestroy the current active window.Ctrl + Mod1 + yHide the current active window.Ctrl + Mod1 + 1Run a command "open -n -a /System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal".Ctrl + Mod1 + 2Run a command "open -a emacs --args -rv"Ctrl + Mod1 + 3Run a command "open -a /Applications/Safari.app/Contents/MacOS/Safari"AVAILABILITYThe latest version ofmacpywmis available at PyPI
(https://pypi.org/project/macpywm/) .AUTHORHiroyuki Ohsaki <ohsaki[atmark]lsnl.jp>