aerospace-marks

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 30, 2025 License: MIT Imports: 5 Imported by: 0

README

aerospace-marks

An window marks extension for AeroSpace WM add custom marks to windows and use them to set focus or summon to the current workspace.

Beta: I use this daily, but it's still a work in progress. Please report any issues or ideas in the issues section.

It’s heavily inspired by sway marks, but follows the aerospace style of commands:

mark --add|--replace [--toggle] <identifier>

Marks are arbitrary labels that can be used to identify certain
windows and then jump to them at a later time. Each identifier
can only be set on a single window at a time since they act as
a unique identifier. By default, mark sets identifier as the only
mark on a window. --add will instead add identifier to the list
of current marks for that window. If --toggle is specified mark will
remove identifier if it is already marked.
Why not use named workspaces?

TL;DR: Dynamic mappings to specific windows, not workspaces.

I wanted something more granular than workspaces — I want to jump to a specific window, given a context.

Sometimes my "video" context means YouTube, sometimes it’s a video player, sometimes a browser. I want to be able to jump to the right window, regardless of which workspace it's on.

Basic Usage

Allow one to mark the current focused window with the given identifier.

aerospace-marks mark [--add|--replace] [--toggle] <identifier>

And then focus to a window with the given mark.

aerospace-marks focus <identifier>

Or summon a marked window to the current workspace.

aerospace-marks summon <identifier>

Advanced Usage

See more in documentation

Config Usage
# ~/.config/aerospace/config.toml
[mode.main.binding] 
# Mark current window with a given identifier
cmd-shift-h = ["exec-and-forget aerospace-marks mark h"]
cmd-shift-j = ["exec-and-forget aerospace-marks mark j"]
cmd-shift-k = ["exec-and-forget aerospace-marks mark k"]
cmd-shift-l = ["exec-and-forget aerospace-marks mark l"]

cmd-shift-b = ["exec-and-forget aerospace-marks mark browser", "mode main"]

# Focus to a window with the given identifier
cmd-ctrl-h = ["exec-and-forget aerospace-marks focus h"]
cmd-ctrl-j = ["exec-and-forget aerospace-marks focus j"]
cmd-ctrl-k = ["exec-and-forget aerospace-marks focus k"]
cmd-ctrl-l = ["exec-and-forget aerospace-marks focus l"]

cmd-ctrl-b = ["exec-and-forget aerospace-marks focus browser", "mode main"]

Installation

Using Homebrew

If you have Homebrew installed, you can install aerospace-marks using the following command:

brew install cristianoliveira/tap/aerospace-marks
Using Nix

If you have Nix installed, you can build and install aerospace-marks using the following command:

nix profile install github:cristianoliveira/aerospace-marks

You can also run without installing it by using:

nix run github:cristianoliveira/aerospace-marks

This will build the default package defined in flake.nix.

Installing with Go

If you have Go installed, you can install aerospace-marks directly using:

go install github.com/cristianoliveira/aerospace-marks@latest

This will download and install the latest version of aerospace-marks to your $GOPATH/bin.

Post installation

After installing, you may need to include aerospace-marks in aerospace context.

Check where the binary is installed, run:

echo $(which aerospace-marks) | sed 's/\/aerospace-marks//g'

And in your config add:

[exec]
    inherit-env-vars = true

# OR

[exec.env-vars]
    # Replace 'aerospace-marks/install/path' with the actual path from the above command
    PATH = 'aerospace-marks/install/path/bin:${PATH}'
Building from Source

To build from source, ensure you have Go installed. Then, clone the repository and run:

git clone https://github.com/cristianoliveira/aerospace-marks.git
cd aerospace-marks
go build -o aerospace-marks

This will create an executable named aerospace-marks in the current directory.

Packages

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
cli
mocks/aerospacecli
Package aerospacecli_mock is a generated GoMock package.
Package aerospacecli_mock is a generated GoMock package.
mocks/storage
Package storage_mock is a generated GoMock package.
Package storage_mock is a generated GoMock package.
pkgs
aerospacecli module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL