Giter Site home page Giter Site logo

aerospace's Introduction

AeroSpace Build

AeroSpace is a tiling window manager for macOS.

Status

๐Ÿšง Work in progress. Not usable yet ๐Ÿšง

I will publish first release once I believe it's usable, so subscribe to releases on GitHub:

Key features

  • Manual tiling window manager
  • i3 inspired
  • AeroSpace employs its own emulation of virtual workspaces instead of relying on native macOS Spaces due to their considerable limitations
  • Plain text configuration (dotfiles friendly)
  • [PLANNED] CLI scriptable
  • Doesn't require disabling SIP (System Integrity Protection)
  • Proper multi-monitor support (i3-like paradigm)
  • Status menu icon displays current workspace name

How to build the project

You would need a Mac.

Firstly, install xcodegen. Then run in terminal:

./build-debug.sh

How to run the tests

./run-tests.sh

Todo

  • is dialog, is resizable, is modal?
  • select parent and kill several windows at once
  • select parent -> outline several windows?
    • OR: outline with "SLSSetWindowOpacity"
    • OR: "shake" windows
  • CLI interface
  • Check all todos in code
  • move vs swap
  • what is src/Assets.xcassets ?
  • license
  • unminimize apps automatically
  • minimized apps handling
  • macOS fullscreen apps handling
  • unhide apps automatically

Challenges

  • Window overlapping
  • "floating" window layout
  • windows' min/max sizes

Known Special windows to check

  • XCode welcome screen
  • Finder preview
  • Toolbox window
  • IntelliJ dialog windows (e.g. "Add to git")
  • IntelliJ project structure modal window
  • VLC full screen window (eh, I wish every fullscreen window in macOS worked like that)
  • iTerm drop down window

Limitations of macOS API

  • It's not possible to find to what monitor window is assigned
  • It's not possible to reliably know what monitor is currently active

aerospace's People

Contributors

nikitabobko avatar

Watchers

 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.