Coder Social home page Coder Social logo

amethyst's Introduction

Amethyst

Build Status

Tiling window manager for OS X similar to xmonad. Was originally written as an alternative to fjolnir's awesome xnomad but written in pure Objective-C. It's expanded to include some more features like Spaces support not reliant on fragile private APIs.

Screenshot

Credits

Credit goes to fjolnir for the bulk of the initial logic and structure.

Getting Amethyst

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.9. The last version that supports 10.8 can be found here.

Building

  1. Install the latest version of XCode
  2. Clone the project, then cd to the Amethyst directory.
  3. Install xctool
    • brew update && brew install xctool
    • you may need to accept all XCode licenses, e.g. sudo xcodebuild -license
  4. Install cocoapods
    • gem install cocoapods
    • you may need to exec zsh or similar for this command to be found, if using rbenv.
  5. rake install
  6. cp Amethyst/default.amethyst ~/.amethyst

Using Amethyst

The Enable access for assistive devices option on the Accessibility preferences pane must be enabled for Amethyst to function.

Enable access for assistive devices

Keyboard Shortcuts

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 — change layout
  • mod1 + w - focus 1st screen
  • mod1 + e - focus 2nd screen
  • mod1 + r - focus 3rd screen
  • mod2 + w - move focused window to 1st screen
  • mod2 + e - move focused window to 2nd screen
  • mod2 + r - move focused window to 3rd screen
  • mod2 + [n] - move focused window to nth space
  • mod1 + h - shrink the main pane
  • mod1 + l - expand the main pane
  • mod1 + , - increase the number of windows in the main pane
  • mod1 + . - decrease the number of windows in the main pane
  • mod1 + j - focus the next window counterclockwise
  • mod1 + k - focus the next window clockwise
  • mod2 + j - move the focused window one space counterclockwise
  • mod2 + k - move the focused window one space clockwise
  • mod1 + return - swap the focused window with the main window
  • mod1 + t - toggle whether or not the focused window is floating

Setting Up Spaces Support

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 nth space if the shortcut ctrl + n is enabled.

Mission Control keyboard shortcuts

Customization

Amethyst can be customized by creating a json file called .amethyst in your home directory. The structure and valid keys and whatnot are all defined in Amethyst/default.amethyst.

amethyst's People

Contributors

dhgwilliam avatar ianyh avatar leonardt avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.