All Projects → mrmekon → touchtest

mrmekon / touchtest

Licence: Apache-2.0 license
MacOS Touch Bar Control Strip daemon

Programming Languages

objective c
16641 projects - #2 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to touchtest

Pock
Widgets manager for MacBook Touch Bar
Stars: ✭ 9,591 (+43495.45%)
Mutual labels:  touchbar, control-strip
ACKLocalization
Localize your Cocoa apps from Google Spreadsheet
Stars: ✭ 18 (-18.18%)
Mutual labels:  cocoa
athenz-authorizer
athenz policy management library for golang
Stars: ✭ 15 (-31.82%)
Mutual labels:  daemon
Qocoa
☕️ Qt wrappers for macOS Cocoa widgets.
Stars: ✭ 46 (+109.09%)
Mutual labels:  cocoa
ldview
Real-time 3D viewer for displaying LDraw models
Stars: ✭ 65 (+195.45%)
Mutual labels:  cocoa
WSD-python
Web Services for Devices (WSD) tools and utilities for cross platform support
Stars: ✭ 22 (+0%)
Mutual labels:  daemon
notification-thing
Python-based implementation of Desktop Notifications Specification (notification-daemon)
Stars: ✭ 24 (+9.09%)
Mutual labels:  daemon
ProxySwitcher
Easily enable / disable WiFi proxy on a jailbroken iOS device
Stars: ✭ 55 (+150%)
Mutual labels:  daemon
icmpmon
A simple ICMP monitor with web interface.
Stars: ✭ 33 (+50%)
Mutual labels:  daemon
short-touch
Application to easily generate short cut buttons on MacBooks with the touch bar.
Stars: ✭ 12 (-45.45%)
Mutual labels:  touchbar
cephgeorep
An efficient unidirectional remote backup daemon for CephFS.
Stars: ✭ 27 (+22.73%)
Mutual labels:  daemon
numad
numad for debian/ubuntu
Stars: ✭ 15 (-31.82%)
Mutual labels:  daemon
sway-alttab
Simple Alt-Tab daemon for SwayWM/i3. Switches back to previous focused window on Alt-Tab or SIGUSR1
Stars: ✭ 36 (+63.64%)
Mutual labels:  daemon
google-music-manager-uploader
Google Music Manager Uploader module / Easily upload MP3 (folder) to Google Music
Stars: ✭ 21 (-4.55%)
Mutual labels:  daemon
installer
remote.it command line installer tool
Stars: ✭ 21 (-4.55%)
Mutual labels:  daemon
daemonize-me
Rust library to ease the task of creating daemons
Stars: ✭ 34 (+54.55%)
Mutual labels:  daemon
service-systemd
Setup a node.js app as systemd service.
Stars: ✭ 35 (+59.09%)
Mutual labels:  daemon
github-notify
Simple MacOS app to alert you when you have unread GitHub notifications
Stars: ✭ 19 (-13.64%)
Mutual labels:  cocoa
gronx
Lightweight, fast and dependency-free Cron expression parser (due checker), task scheduler and/or daemon for Golang (tested on v1.13 and above) and standalone usage
Stars: ✭ 206 (+836.36%)
Mutual labels:  daemon
daemonize
Template code for writing UNIX-daemons.
Stars: ✭ 33 (+50%)
Mutual labels:  daemon

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].