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:
- Keeping essential programming symbols easily accessible
- Maintaining familiar i3-like shortcuts where possible
- 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
- Keyboard conflicts: Check for conflicting system shortcuts in System Preferences
- Window recognition: Some apps may need special rules in the config
- 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.