Tiling window manager for OS X along the lines of xmonad and i3.
A quick screencast of basic functionality can be found here. (It's rough, and I'd love to see a better one if someone has the skills and inclination to make one.)
Amethyst is available for direct download here or using homebrew cask.
brew cask install amethyst
Note: that Amethyst now is only supported on OS X 10.10+.
Amethyst must be given permissions to use the accessibility APIs under the Privacy tab of the Security & Privacy preferences pane as shown below.
Amethyst uses two modifier combinations.
mod1
-option + shift
mod2
-ctrl + option + shift
And defines the following commands, mostly a mapping to xmonad key combinations.
mod1 + space
— cycle to next layoutmod2 + space
- cycle to previous layoutmod1 + w
- focus 1st screenmod1 + e
- focus 2nd screenmod1 + r
- focus 3rd screenmod2 + w
- move focused window to 1st screenmod2 + e
- move focused window to 2nd screenmod2 + r
- move focused window to 3rd screenmod2 + [n]
- move focused window to nth spacemod2 + left
- move focused window left one spacemod2 + right
- move focused window right one spacemod1 + h
- shrink the main panemod1 + l
- expand the main panemod1 + ,
- increase the number of windows in the main panemod1 + .
- decrease the number of windows in the main panemod1 + j
- focus the next window counterclockwisemod1 + k
- focus the next window clockwisemod2 + j
- move the focused window one space counterclockwisemod2 + k
- move the focused window one space clockwisemod1 + return
- swap the focused window with the main windowmod1 + t
- toggle whether or not the focused window is floatingmod2 + t
- toggle globally whether or not Amethyst tiles windowsmod1 + i
- display the current layout for each screen
Spaces are, unfortunately, not supported right out of the box. To enable it you
must activate Mission Control's keyboard shortcuts for switching to specific
Desktops, as Mac OS X calls them. This option is in the Keyboard Shortcuts tab
of the Keyboard preferences pane. The shortcuts will be of the form ctrl + [n]
. Amethyst is only able to send a window to the n
th space if the shortcut
ctrl + n
is enabled.
If you would like to see features or particular bugs fixed check out the Trello board here and vote on things. It'll give me a better sense of what people want so I can prioritize.
I love pull requests. If you'd like to contribute please branch off of the development
branch and open pull requests against it rather than master. Otherwise just try to stick to the general style of the code.
In order to build Amethyst locally, you'll need to also perform the following steps after cloning the repo:
- Install
carthage
andrbenv
.- These are not installed via the setup script so as to not casually pollute your global environment.
- Run
rake setup
, which installs dependencies from Carthage and CocoaPods.- Note that by default CocoaPods will be installed and run via
bundler
. This restricts the version to get around some bugs in the current CocoaPods beta.
- Note that by default CocoaPods will be installed and run via
If you have questions or feedback you have a plethora of options. You can email me, tweet at me, or get on gitter. That last one is new and kind of experimental. You can drop by #amethyst on Freenode, as well, but I am on there fairly infrequently.
Amethyst is free and always will be. That said, a couple of people have expressed their desire to donate money in appreciation. If you are so inclined I've set up two options:
- You can find a Patreon page here if you would like to pledge money regularly for releases.
- If you would like to do a one-time donation there's a PayPal button below. If there's some other method of donating that you would prefer open an issue and I'll try to add it!
If you are considering donating to me, you are more than welcome to. You should also consider donating that money to a charity in addition to or instead. Here's a very incomplete list of things that you might want to throw money at:
And a bunch of technology-oriented ones: