Introduction to Aerospace

Aerospace is a tiling window manager for MacOS inspired by i3. It’s currently in public beta, and I have been using it for the last few weeks, and really come to like it. This guide will help you set up and configure Aerospace, with special attention to non-US keyboard layouts.

Keyboard Layout Challenges

One of the first issues I ran into was that the default keymappings did not play well with a norwegian keyboard layout that I’m running. Quite a few of the default keymappings where in direct conflict with common symbols like:

  • Vertical bar (|)
  • Curly braces ({})
  • Square brackets ([])
  • Dollar sign ($) These symbols are essential for programming and shell scripting, so maintaining easy access to them is crucial.

Custom Configuration Solution

To address these keyboard mapping conflicts, I’ve created a configuration file that works well with non-US layouts. You can find the complete configuration in this gist.

Key Configuration Principles

The configuration follows these main principles:

  1. Keeping essential programming symbols easily accessible
  2. Maintaining familiar i3-like shortcuts where possible
  3. Adapting to non-US keyboard layouts without compromising functionality

Common Operations

Here are some of the most frequently used operations and their new keybindings:

  • Window navigation: Alt + hjkl (vim-style movement)
  • Workspace switching: Alt + numbers
  • Window resizing: Alt + Shift + arrow keys
  • Layout toggling: Alt + Space
  • Window closing: Alt + Shift + q

Installation with Nix and home-manager

While there isn’t currently a dedicated programs definition for Aerospace in home-manager, you can easily install it using home.packages:

home.packages = with pkgs; [
    aerospace
    # ... other packages
];

Additional Configuration Tips

Auto-start Setup

To ensure Aerospace starts automatically with your system, you can configure it in your home-manager setup:

launchd.user.agents.aerospace = {
    enable = true;
    config = {
        ProgramArguments = [ "${pkgs.aerospace}/bin/aerospace" ];
        KeepAlive = true;
        RunAtLoad = true;
    };
};

Integration with Status Bars

Aerospace works well with various status bars. I recommend using it with:

  • Übersicht for custom widgets
  • Simple Bar for a clean, minimal look
  • Native macOS menu bar (hidden by default)

Troubleshooting Common Issues

  1. Keyboard conflicts: Check for conflicting system shortcuts in System Preferences
  2. Window recognition: Some apps may need special rules in the config
  3. Multi-monitor setup: Configure workspace assignments for each display

Conclusion

Aerospace brings the power of tiling window management to macOS, and with proper configuration, it works excellently with non-US keyboard layouts. The above configuration provides a solid foundation for productive window management while maintaining access to essential programming symbols.