You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Expand README with Touch Bar customization details
Added detailed Touch Bar customization section including built-in widgets, pinning applications and folders, custom command widgets, layout rearrangement, and current limits.
Open the project in Xcode, select the `Core-Monitor` scheme, and build. The `smc-helper` is a separate target. You can build and run Core Monitor without it — fan control simply won't be available.
115
115
116
+
## Touch Bar customization
117
+
118
+
Core Monitor includes a full Touch Bar layout editor in the app's **Touch Bar** section. The editor is no longer limited to toggling a fixed set of built-in widgets. A layout can now mix:
119
+
120
+
- built-in widgets such as Status, Weather, CPU, Dock, Stats, and Network
121
+
- pinned applications
122
+
- pinned folders
123
+
- custom command widgets
124
+
125
+
Every item in the active layout is stored in order and rendered live in the Touch Bar preview before you apply or rearrange anything else.
126
+
127
+
### Built-in widgets
128
+
129
+
Built-in widgets are the existing Core Monitor Touch Bar modules. You can enable or disable them from the built-in widget list and then reorder them from the **Active Items** section.
130
+
131
+
These built-ins keep their normal live behavior:
132
+
133
+
- Weather continues to use WeatherKit
134
+
- Status continues to show Wi-Fi, battery, and clock data
135
+
- CPU/Stats widgets continue to use the current system snapshot
136
+
- Dock continues to reflect the compact launcher strip
137
+
138
+
### Pinning applications
139
+
140
+
Use **Pin Applications** in the Touch Bar customization panel to add one or more `.app` bundles directly to the Touch Bar.
141
+
142
+
How it works:
143
+
144
+
- the picker accepts macOS application bundles
145
+
- each selected app is stored by path, display name, and bundle identifier when available
146
+
- pinned apps render as compact icon launchers in the Touch Bar
147
+
- tapping a pinned app opens that application through `NSWorkspace`
148
+
149
+
Practical notes:
150
+
151
+
- pinned apps are meant to be fast launch targets, not full live widgets
152
+
- app icons are pulled from the app bundle on disk each time the item is rebuilt
153
+
- if you move or rename a pinned app after saving it, the stored path may go stale and that launcher may stop working until you re-pin it
154
+
- if you pin many apps, the estimated width meter in the customization panel will warn when your layout is wider than a full Touch Bar
155
+
156
+
### Pinning folders
157
+
158
+
Use **Pin Folders** to add Finder locations to the Touch Bar.
159
+
160
+
How it works:
161
+
162
+
- the picker accepts directories only
163
+
- each selected folder is stored by path and display name
164
+
- pinned folders render as compact launcher buttons just like pinned apps
165
+
- tapping a pinned folder opens it in Finder through `NSWorkspace`
166
+
167
+
Good use cases:
168
+
169
+
- a project root you open repeatedly
170
+
- Downloads, Screenshots, or a working assets folder
171
+
- a scripts/tools directory used during development
172
+
173
+
Folder pinning follows the same persistence rules as app pinning: if the path changes, re-pin it.
174
+
175
+
### Custom command widgets
176
+
177
+
The **Custom Widget** form lets you create a simple Touch Bar action backed by your own shell command.
178
+
179
+
Each custom widget stores:
180
+
181
+
- a visible title
182
+
- an SF Symbol name
183
+
- a shell command
184
+
- a target width
185
+
186
+
Current behavior:
187
+
188
+
- the widget renders as a compact labeled button in the Touch Bar
189
+
- tapping it launches `/bin/zsh -lc "<your command>"`
190
+
- this is designed for quick actions, scripts, and automations rather than long-running UI
191
+
192
+
Examples:
193
+
194
+
```bash
195
+
open -a Terminal
196
+
```
197
+
198
+
```bash
199
+
open ~/Downloads
200
+
```
201
+
202
+
```bash
203
+
shortcuts run "Build Project"
204
+
```
205
+
206
+
```bash
207
+
osascript -e 'display notification "Build complete" with title "Core Monitor"'
208
+
```
209
+
210
+
Important caveats:
211
+
212
+
- commands run with the app's user permissions
213
+
- command output is not embedded back into the Touch Bar
214
+
- if a command depends on shell setup files, test it directly in `zsh -lc` form first
215
+
- keep commands short and deterministic; the current implementation is an action launcher, not a terminal emulator
216
+
217
+
### Rearranging the layout
218
+
219
+
The **Active Items** list is the source of truth for Touch Bar order.
220
+
221
+
From that list you can:
222
+
223
+
- move any item up
224
+
- move any item down
225
+
- remove any item
226
+
227
+
This applies equally to:
228
+
229
+
- built-in widgets
230
+
- pinned apps
231
+
- pinned folders
232
+
- custom command widgets
233
+
234
+
The live preview strip above the editor reflects the current order and item widths immediately.
235
+
236
+
### Presets and persistence
237
+
238
+
Presets still exist, but they now apply as structured item layouts instead of the older widget-only stack.
239
+
240
+
Your Touch Bar layout is persisted in user defaults and now migrates older widget-only configurations forward into the richer item model automatically. Existing users should keep their built-in widget layouts, and then add pinned apps, folders, or custom widgets on top.
241
+
242
+
### Current limits
243
+
244
+
The new customization system is intentionally practical rather than unlimited. Right now:
245
+
246
+
- reordering is button-driven, not drag-and-drop
247
+
- pinned apps and folders are launcher buttons, not live mini-views
248
+
- custom widgets launch commands but do not yet show dynamic script output
249
+
- very wide layouts can still exceed the physical Touch Bar width, so use the width meter as the guardrail
0 commit comments