From 81131ec390ce13d7168336350c3e3d62c03aa3d9 Mon Sep 17 00:00:00 2001 From: Toxblh Date: Thu, 12 Apr 2018 10:41:50 +0100 Subject: [PATCH] new screenshot. 2 json author's presets. Instruction. --- README.md | 180 +++++++++++++++++++++++++++++++++++- Resources/ReDetection.json | 48 ++++++++++ Resources/TouchBar-v0.6.png | Bin 0 -> 36303 bytes Resources/toxblh.json | 52 +++++++++++ 4 files changed, 276 insertions(+), 4 deletions(-) create mode 100644 Resources/ReDetection.json create mode 100644 Resources/TouchBar-v0.6.png create mode 100644 Resources/toxblh.json diff --git a/README.md b/README.md index 3fe09f2..8501c4d 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [![GitHub release](https://img.shields.io/github/release/toxblh/MTMR.svg)](https://github.com/Toxblh/MTMR/releases)

- +

My the idea is to create the program like a platform for plugins for customization TouchBar. I very like BTT and a full custom TouchBar (my [BTT preset](https://github.com/Toxblh/btt-touchbar-preset)). And I want to create it. And it's my the first Swift project for MacOS :) @@ -39,9 +39,181 @@ Settings: Maybe: - [ ] Refactoring the application on packages (AppleScript, JavaScript? and Swift?) -### Example presets -@ReDetection: +## Installation +1. Download last release +2. Unzip +3. Open MTMR +4. Open preset `open ~/Library/Application Support/MTMR/items.json` and configurate it + +## Preset + +File for setting your preset for MTMR: `open ~/Library/Application Support/MTMR/items.json` + +## Base types +- `staticButton` +```json + "type": "staticButton", + "title": "esc", +``` + +- `staticImageButton` +```json + "type": "staticImageButton", + "image": "StringInbase64" + "title": "Finder", +``` + +- `appleScriptTitledButton` +```js + "type": "appleScriptTitledButton", + "source": { + "filePath": "/Users/toxblh/Library/Application Support/MTMR/iTunes.nowPlaying.scpt", + // or + "inline": "tell application \"Finder\"\rmake new Finder window\rset target of front window to path to home folder as string\ractivate\rend tell", + // or + "base64": "StringInbase64" + }, +``` + +- `timeButton` +```json + "type": "timeButton", +``` + +- `flexSpace` - special type for insert the flexible space between buttons +```json + "type": "flexSpace" +``` + +## Preconfig types +- escape +- exitTouchbar +- brightnessUp +- brightnessDown +- volumeDown +- volumeUp + +> Media Keys +- previous +- play +- next + +> AppleScript plugins +- weather +- battery +- sleep +- displaySleep + +## Actions: +- `hidKey` +```json + "action": "hidKey", + "keycode": 53, +``` + +- `keyPress` +```json + "action": "keyPress", + "keycode": 1, +``` + +- `appleSctipt` +```json + "action": "appleSctipt", + "actionAppleScript": { + "inline": "tell application \"Finder\"\rmake new Finder window\rset target of front window to path to home folder as string\ractivate\rend tell" + }, +``` + +- `shellScript` +```js + "action": "shellScript", + "executablePath": "/usr/bin/pmset", + "shellArguments": "sleepnow", // optional + +``` + +## Additional paramaters: +> Now in config have a special, don't configure type: `flexSpace` + +- `width` for all +```json + "width": 34 +``` + +- `refreshInterval` for type `appleScriptTitledButton` +```json + "refreshInterval": 1 +``` + +- `formatTemplate` for type `timeButton` +```json + "formatTemplate": "HH:mm" +``` + +## Example configuration: +```json +[ + { "type": "escape", "width": 110 }, + { "type": "exitTouchbar" }, + { + "type": "brightnessUp", + "width": 36 + }, + { + "type": "staticButton", + "title": "🔆", + "action": "keyPress", + "keycode": 113, + "width": 36 + }, + + { + "type": "appleScriptTitledButton", + "source": { + "filePath": "/Users/toxblh/Library/Application Support/MTMR/iTunes.nowPlaying.scpt" + }, + "refreshInterval": 1 + }, + { + "type": "staticImageButton", + "title": "Finder", + "image": "%base64Finder%", + "action": "appleScript", + "actionAppleScript": { + "inline": "tell application \"Finder\"\rmake new Finder window\rset target of front window to path to home folder as string\ractivate\rend tell" + }, + "width": 36 + }, + { + "type": "appleScriptTitledButton", + "source": { + "inline": "if application \"Safari\" is running then\r\ttell application \"Safari\"\r\t\trepeat with t in tabs of windows\r\t\t\ttell t\r\t\t\t\tif URL starts with \"https:\/\/music.yandex.ru\" and name does not end with \"на Яндекс.Музыке\" then\r\t\t\t\t\treturn name of t as text\r\t\t\t\tend if\r\t\t\tend tell\r\t\tend repeat\r\tend tell\rend if\rreturn \"\"" + }, + "refreshInterval": 1 + }, + { "type": "flexSpace" }, + { "type": "previous", "width": 36 }, + { "type": "play", "width": 36 }, + { "type": "next", "width": 36 }, + { "type": "sleep", "width": 36 }, + { "type": "displaySleep" }, + { "type": "weather", "refreshInterval": 1800, "width": 70 }, + { "type": "volumeDown", "width": 36 }, + { "type": "volumeUp", "width": 36 }, + { "type": "battery", "refreshInterval": 60 }, + { "type": "appleScriptTitledButton", "refreshInterval": 1800, "source": { "filePath": "/Users/redetection/Library/Application Support/MTMR/Weather.scpt"} }, + { "type": "timeButton", "formatTemplate": "HH:mm", "width": 64 } +] +``` + + +### Author's presets + +[@Toxblh preset](Resources/toxblh.json) + +[@ReDetection preset](Resources/ReDetection.json): ```json [ { "type": "escape", "width": 110 }, @@ -64,4 +236,4 @@ Maybe: ## Credits -Built by [@toxblh](https://patreon.com/toxblh) and [@ReDetection](http://patreon.com/ReDetection). +Built by [@Toxblh](https://patreon.com/toxblh) and [@ReDetection](http://patreon.com/ReDetection). diff --git a/Resources/ReDetection.json b/Resources/ReDetection.json new file mode 100644 index 0000000..7efec22 --- /dev/null +++ b/Resources/ReDetection.json @@ -0,0 +1,48 @@ +[ + { "type": "escape", "width": 110 }, + { "type": "exitTouchbar" }, + { "type": "brightnessDown", "width": 40 }, + { "type": "brightnessUp", "width": 40 }, + { + "type": "appleScriptTitledButton", + "refreshInterval": 15, + "source": { + "inline": + "if application \"Safari\" is running then\r\ttell application \"Safari\"\r\t\trepeat with t in tabs of windows\r\t\t\ttell t\r\t\t\t\tif URL starts with \"https://music.yandex.ru\" and name does not end with \"на Яндекс.Музыке\" then\r\t\t\t\t\treturn name of t as text\r\t\t\t\tend if\r\t\t\tend tell\r\t\tend repeat\r\tend tell\rend if\rreturn \"\"" + }, + "action": "appleScript", + "actionAppleScript": { + "inline": + "if application \"Safari\" is running then\r\ttell application \"Safari\"\r\t\trepeat with w in windows\r\t\t\trepeat with t in tabs of w\r\t\t\t\ttell t\r\t\t\t\t\tif URL starts with \"https://music.yandex.ru\" and name does not end with \"на Яндекс.Музыке\" then --последнее условие проверяет, запущена ли музыка\r\t\t\t\t\t\tactivate\r\t\t\t\t\t\tset index of w to 1\r\t\t\t\t\t\tdelay 0.1\r\t\t\t\t\t\tset current tab of w to t\r\t\t\t\t\tend if\r\t\t\t\tend tell\r\t\t\tend repeat\r\t\tend repeat\r\tend tell\rend if" + } + }, + { + "type": "appleScriptTitledButton", + "source": { + "inline": + "tell application \"Reminders\"\r\tset activeReminders to name of (reminders of list \"Напоминания\" whose completed is false)\r\tif activeReminders is not {} then\r\t\treturn first item of activeReminders\r\telse\r\t\treturn \"\"\r\tend if\rend tell" + }, + "refreshInterval": 30 + }, + { "type": "flexSpace" }, + { + "type": "appleScriptTitledButton", + "source": { + "inline": + "if application \"iTunes\" is running then\r\ttell application \"iTunes\"\r\t\tif player state is not stopped then return \"\"\r\tend tell\rend if\rif application \"Safari\" is running then\r\ttell application \"Safari\"\r\t\trepeat with t in tabs of windows\r\t\t\ttell t\r\t\t\t\tif URL starts with \"https://music.yandex.ru\" and name does not end with \"на Яндекс.Музыке\" then\r\t\t\t\t\treturn \"\"\r\t\t\t\tend if\r\t\t\tend tell\r\t\tend repeat\r\tend tell\rend if\rreturn \"▶\"" + }, + "refreshInterval": 30, + "width": 40 + }, + { "type": "volumeDown", "width": 44 }, + { "type": "volumeUp", "width": 44 }, + { "type": "displaySleep" }, + { + "type": "appleScriptTitledButton", + "refreshInterval": 1800, + "source": { + "filePath": "/Users/redetection/Library/Application Support/MTMR/Weather.scpt" + } + }, + { "type": "timeButton" } +] diff --git a/Resources/TouchBar-v0.6.png b/Resources/TouchBar-v0.6.png new file mode 100644 index 0000000000000000000000000000000000000000..4ce3bafe35faddd1cc8302aabcdb4cf773eadc98 GIT binary patch literal 36303 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 HP6