Skip to content

Commit b7869a8

Browse files
authored
Add AeroSpace completions (#1080)
First attempt at a full custom completion! Got all the base commands set and documented. Most arguments are fleshed out, but I haven't figured out a good solution for subcommands that have exclusive arguments, or how to progressively show subcommands with their own set of externs. I've put the completed-but-not-implemented work in a separate file, to be incorporated later as I figure out the process to do so. --------- Co-authored-by: Joshua Nussbaum <[email protected]>
1 parent 548b6bb commit b7869a8

File tree

2 files changed

+614
-0
lines changed

2 files changed

+614
-0
lines changed
Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
# AeroSpace
2+
3+
AeroSpace is an i3-like tiling window manager for macOS
4+
5+
6+
## Current status
7+
8+
All basic commands are expressed with descriptions, as are most flags.
9+
Most command arguments have completions, but are not fully documented.
10+
11+
Completions that have yet to be added but are written are embedded in the code block below:
12+
13+
```nu
14+
# TODO: figure out how to get subcommands and flags to show up in a way that feels normal with base extern
15+
# currently, they show up in the completion list and clog up the results
16+
17+
18+
export extern "aerospace config --major-keys" [
19+
--help(-h) # Print help
20+
]
21+
22+
export extern "aerospace config --all-keys" [
23+
--help(-h) # Print help
24+
]
25+
26+
export extern "aerospace config --config-path" [
27+
--help(-h) # Print help
28+
]
29+
30+
export extern "aerospace config --get" [
31+
command:string@"nu-complete aerospace-config-list-all-keys"
32+
--json # Print result in JSON format
33+
--keys # Print keys of the complicated object (map or array)
34+
]
35+
36+
37+
export extern "aerospace enable toggle" [
38+
--help(-h) # Print help
39+
]
40+
41+
export extern "aerospace enable on" [
42+
--help(-h) # Print help
43+
--fail-if-noop # Exit with non-zero exit code if already in the requested mode
44+
]
45+
46+
export extern "aerospace enable off" [
47+
--help(-h) # Print help
48+
--fail-if-noop # Exit with non-zero exit code if already in the requested mode
49+
]
50+
51+
52+
53+
export extern "aerospace focus left" [
54+
--help(-h) # Print help
55+
--ignore-floating #ignore floating windows
56+
--boundaries:string@"nu-complete aerospace-focus-boundaries" # Defines focus boundaries
57+
--boundaries-action:string@"nu-complete aerospace-focus-boundaries-action" # Defines the behavior when requested to cross the <boundary>.
58+
]
59+
60+
export extern "aerospace focus down" [
61+
--help(-h) # Print help
62+
--ignore-floating #ignore floating windows
63+
--boundaries:string@"nu-complete aerospace-focus-boundaries" # Defines focus boundaries
64+
--boundaries-action:string@"nu-complete aerospace-focus-boundaries-action" # Defines the behavior when requested to cross the <boundary>.
65+
]
66+
67+
export extern "aerospace focus up" [
68+
--help(-h) # Print help
69+
--ignore-floating #ignore floating windows
70+
--boundaries:string@"nu-complete aerospace-focus-boundaries" # Defines focus boundaries
71+
--boundaries-action:string@"nu-complete aerospace-focus-boundaries-action" # Defines the behavior when requested to cross the <boundary>.
72+
]
73+
74+
export extern "aerospace focus right" [
75+
--help(-h) # Print help
76+
--ignore-floating #ignore floating windows
77+
--boundaries:string@"nu-complete aerospace-focus-boundaries" # Defines focus boundaries
78+
--boundaries-action:string@"nu-complete aerospace-focus-boundaries-action" # Defines the behavior when requested to cross the <boundary>.
79+
]
80+
81+
82+
export extern "aerospace focus-monitor left" [
83+
--help(-h) # Print help
84+
--wrap-around # Make it possible to wrap around focus
85+
]
86+
87+
export extern "aerospace focus-monitor down" [
88+
--help(-h) # Print help
89+
--wrap-around # Make it possible to wrap around focus
90+
]
91+
92+
export extern "aerospace focus-monitor up" [
93+
--help(-h) # Print help
94+
--wrap-around # Make it possible to wrap around focus
95+
]
96+
97+
export extern "aerospace focus-monitor right" [
98+
--help(-h) # Print help
99+
--wrap-around # Make it possible to wrap around focus
100+
]
101+
102+
export extern "aerospace focus-monitor next" [
103+
--help(-h) # Print help
104+
--wrap-around # Make it possible to wrap around focus
105+
]
106+
107+
export extern "aerospace focus-monitor prev" [
108+
--help(-h) # Print help
109+
--wrap-around # Make it possible to wrap around focus
110+
]
111+
112+
export extern "aerospace fullscreen on" [
113+
--help(-h) # Print help
114+
--no-outer-gaps # Remove the outer gaps when in fullscreen mode
115+
--window-id:int@"nu-complete aerospace-list-all-windows" # Act on the specified window instead of the focues window
116+
--fail-if-noop # Exit with non-zero exit code if already fullscreen
117+
]
118+
119+
export extern "aerospace fullscreen off" [
120+
--help(-h) # Print help
121+
--no-outer-gaps # Remove the outer gaps when in fullscreen mode
122+
--window-id:int@"nu-complete aerospace-list-all-windows" # Act on the specified window instead of the focues window
123+
--fail-if-noop # Exit with non-zero exit code if already not fullscreen
124+
]
125+
126+
127+
export extern "aerospace macos-native-fullscreen on" [
128+
--help(-h) # Print help
129+
--window-id:int@"nu-complete aerospace-list-all-windows" # Act on the specified window instead of the focused window
130+
--fail-if-noop # Exit with non-zero exit code if already fullscreen
131+
]
132+
133+
export extern "aerospace macos-native-fullscreen off" [
134+
--help(-h) # Print help
135+
--window-id:int@"nu-complete aerospace-list-all-windows" # Act on the specified window instead of the focused window
136+
--fail-if-noop # Exit with non-zero exit code if already not fullscreen
137+
]
138+
139+
140+
export extern "aerospace move-mouse window-lazy-center" [
141+
--help(-h) # Print help
142+
--fail-if-noop # Exit with non-zero exit code if mouse is already at the requested position.
143+
]
144+
145+
export extern "aerospace move-mouse monitor-lazy-center" [
146+
--help(-h) # Print help
147+
--fail-if-noop # Exit with non-zero exit code if mouse is already at the requested position.
148+
]
149+
150+
def "nu-complete aerospace-move-node-to-monitor" [] {
151+
[
152+
"left,
153+
"down"
154+
"up",
155+
"right",
156+
"next",
157+
"prev",
158+
]
159+
}
160+
161+
export extern "aerospace volume set" [
162+
--help(-h) # Print help
163+
command:int@"nu-complete aerospace-volume-set"
164+
]
165+
166+
```

0 commit comments

Comments
 (0)