An open API service indexing awesome lists of open source software.

https://github.com/mrmekon/touchtest

MacOS Touch Bar Control Strip daemon
https://github.com/mrmekon/touchtest

cli cocoa command-line control-strip controlstrip daemon macos objective-c touch-bar touchbar

Last synced: 2 months ago
JSON representation

MacOS Touch Bar Control Strip daemon

Awesome Lists containing this project

README

          

# TouchTest - MacOS Touch Bar Control Strip daemon

Example of adding an icon to the Control Strip region of the Mac Touch Bar using
a headless/UI-less background app. Icon is always displayed, regardless of which
app is in the foreground.

Uses a private API, not suitable for the App Store.

No XCode project, no Nib/Xib, builds from command-line. Just the minimum
necessary to add an always-available button to the Control Strip.

Inspired by: https://github.com/a2/touch-baer

## Usage

### Build
```
$ make
```

### Build and launch
```
$ make run
```

### Kill running daemon
```
$ make kill
```

### Cleanup
```
$ make clean
```

### Design Notes

Links against private framework DFRFoundation.

Uses two DFRFoundation functions: ```DFRElementSetControlStripPresenceForIdentifier``` and ```DFRSystemModalShowsCloseBoxWhenFrontMost```

Uses private NSTouchBarItem method: ```+(void)addSystemTrayItem:(NSTouchBarItem *)item;```

Uses private NSTouchBar method: ```+(void)presentSystemModalFunctionBar:(NSTouchBar *)touchBar systemTrayItemIdentifier:(NSString *)identifier;```

Simply creates a windowless NSApplication and an NSApplicationDelegate implementing the private functions.

**MUST** execute from a mac _.app_ bundle. The TouchBar service doesn't seem to communicate with a binary when launched outside of a bundle. I did not investigate why.