From 2cdb705b37d974cce9a6a74d67ca4aa83f512bbb Mon Sep 17 00:00:00 2001 From: Mark Rickert Date: Wed, 6 Nov 2019 14:43:27 -0700 Subject: [PATCH 1/5] Consolidate the two String extenstions. --- MTMR/ItemsParsing.swift | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/MTMR/ItemsParsing.swift b/MTMR/ItemsParsing.swift index ab9b5ae..5ef057e 100644 --- a/MTMR/ItemsParsing.swift +++ b/MTMR/ItemsParsing.swift @@ -730,6 +730,13 @@ extension String { var fileString: String? { var encoding: String.Encoding = .utf8 return try? String(contentsOfFile: self, usedEncoding: &encoding) + + var fileURL: URL { + return URL(fileURLWithPath: self) + } + + var appleScript: NSAppleScript? { + return NSAppleScript(source: self) } } @@ -749,16 +756,6 @@ enum Align: String, Decodable { case right } -extension String { - var fileURL: URL { - return URL(fileURLWithPath: self) - } - - var appleScript: NSAppleScript? { - return NSAppleScript(source: self) - } -} - extension URL { var appleScript: NSAppleScript? { guard FileManager.default.fileExists(atPath: path) else { return nil } From eaa26645c5b79635f500c355c8b0dff507d7f983 Mon Sep 17 00:00:00 2001 From: Mark Rickert Date: Wed, 6 Nov 2019 14:48:13 -0700 Subject: [PATCH 2/5] Add ability to use file paths relative to your user directory --- MTMR/ItemsParsing.swift | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/MTMR/ItemsParsing.swift b/MTMR/ItemsParsing.swift index 5ef057e..6061d59 100644 --- a/MTMR/ItemsParsing.swift +++ b/MTMR/ItemsParsing.swift @@ -724,15 +724,16 @@ extension String { } var fileData: Data? { - return try? Data(contentsOf: URL(fileURLWithPath: self)) + return try? Data(contentsOf: URL(fileURLWithPath: (self as NSString).expandingTildeInPath)) } var fileString: String? { var encoding: String.Encoding = .utf8 - return try? String(contentsOfFile: self, usedEncoding: &encoding) + return try? String(contentsOf: URL(fileURLWithPath: (self as NSString).expandingTildeInPath), usedEncoding: &encoding) + } var fileURL: URL { - return URL(fileURLWithPath: self) + return URL(fileURLWithPath: (self as NSString).expandingTildeInPath) } var appleScript: NSAppleScript? { From 855ddea44e1d52f90cbad113d0df0c8cc632231d Mon Sep 17 00:00:00 2001 From: Mark Rickert Date: Wed, 6 Nov 2019 14:48:26 -0700 Subject: [PATCH 3/5] Tests relative file paths and images. --- MTMRTests/AppleScriptDefinitionTests.swift | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/MTMRTests/AppleScriptDefinitionTests.swift b/MTMRTests/AppleScriptDefinitionTests.swift index 8b6c442..98101b6 100644 --- a/MTMRTests/AppleScriptDefinitionTests.swift +++ b/MTMRTests/AppleScriptDefinitionTests.swift @@ -26,6 +26,33 @@ class AppleScriptDefinitionTests: XCTestCase { XCTAssertEqual(sourceStruct?.filePath, "/ololo/pew") } + // This tests that users can pass paths to files with ~ in them + func testUserPath() { + let buttonNoActionFixture = """ + [ { "type": "appleScriptTitledButton", "source": { "filePath": "~/pew" } } ] + """.data(using: .utf8)! + let result = try? JSONDecoder().decode([BarItemDefinition].self, from: buttonNoActionFixture) + guard case .appleScriptTitledButton(let source, _)? = result?.first?.type else { + XCTFail() + return + } + let sourceStruct = source as? Source + // gives you a string in the format of file:///Users/your_uer_name/pew + let expandedPath = URL(fileURLWithPath: NSString("~/pew").expandingTildeInPath) as URL + XCTAssertEqual(sourceStruct?.filePath?.fileURL, expandedPath) + } + + // This tests that users can pass paths to images with ~ in them + func testUserImagePath() { + let relativeImagePath = """ + [ { "filePath": "~/pew/image.png" } ] + """.data(using: .utf8)! + let result = try? JSONDecoder().decode([Source].self, from: relativeImagePath) + // gives you a string in the format of file:///Users/your_uer_name/pew/image.png + let expandedPath = URL(fileURLWithPath: NSString("~/pew/image.png").expandingTildeInPath) as URL + XCTAssertEqual(result?.first?.filePath?.fileURL, expandedPath) + } + func testRefreshInterval() { let buttonNoActionFixture = """ [ { "type": "appleScriptTitledButton", "source": { "inline": "tell everything fine" }, "refreshInterval": 305} ] From 5eb2d73c94b6bc2e37255e5920021c478f744d8e Mon Sep 17 00:00:00 2001 From: Mark Rickert Date: Wed, 6 Nov 2019 14:57:05 -0700 Subject: [PATCH 4/5] Add some image filePath documentation. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 2bab332..2345c9e 100644 --- a/README.md +++ b/README.md @@ -156,6 +156,9 @@ Example of "CPU load" button which also changes color based on load value. }, "align": "right", "image": { + // Or you can specify a filePath here. + // Images will be resized to 24x24. + // "filePath": "~/myproject/myimage.jpg" // or "/fixed/path/to/the.png" "base64": "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA/1BMVEUAAADaACbYACfYACfjABzXACjYACfXACjYACfYACfYACfYACfdACLYACfXACjYACfVACv/AADXACjYACfYACfXACjYACfXACjaACXYACfYACfVACvYACfYACfZACbZACbYACfYACfZACb/AADYACfYACfVACrXACjVACu/AEDYACfYACfYACfXACjXACjYACfXACjYACfYACfYACfXACjYACfXACjYACfYACfZACbYACfYACfMADPYACfYACfYACfYACfYACfZACbXACjYACfYACfRAC7XACjYACfZACbWACnXACjXACjYACfTACzZACb/AADYACfYACfYACcAAAA+zneGAAAAU3RSTlMAItK+CVPjh3xUxPwPiGDQGAMtSKmN3Vk+wPQG/e26oIJBnwJCdiuAHgTmw+6BX+IgfaqLUvKOW8VKnagK+vBwYrhlc/urCznvhSyUbOEXPAFjGh/ektAAAAABYktHRACIBR1IAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4ggWETQWgEDcSgAAAqVJREFUWMPtl4ly2jAQhsUNNlcw5r4SICEHLSQhCQRyX73T/u//LpUlLIyxbMAznWmn/0ywo5U+27tr7ZoQuwLBUJidRKIxPhKLRtgxHAoGiLfiQIKdKFCTxjGpQmEDCSC+BiAFpNlJBsgaxyyQYQNpIPUf8AcAOzktD+iaoQJQNI5FoMAGdCCv5XZclpfKFXiqUi5Jllf1mvdyQzW96gigd4h6o+mhRp1O0x3vvwa1VSWeqrZU1Jyeogy01ggSVQsoO/i/gjq9/u6u+2LDXq2jshqLHNCgdsCVwO0NILdi0oDmuoAmoImhQDzFRPNnb36L7U43NVfc2EH2D9h5t9OePyIF5IU9uIhvkyN7iiXmQUIOj8x/lB6f0bTaQ3ZA+9iaNCH2Lpg6btsBIRJOpJl0E9ABTvof5kqEGeCjMaN/AnRMgM5XJcI2J1J1gf6S48Tb2Ae6JkAjdgmAeJ1XAOJ1Xg8wGJ6elXwAzkeGjy62BgxG3MuXnoCIkmEq8EQyAUPgajyhPxJAga9SIiRqzwMOuAbGZDrDjQRgKkpiqiPgFphM74B7d4BKy2cyy1RcBvSodUb/HiSAIl+VlEfh8cm4wvPL9nnw+gbc+kkkUVioO95etwe8PBuP8vQoBzg7UQAe5t7syZwoCaMA3AN30wlzh3MYJYkkADeYTckYuJYlkiSVBeCKZtSY/gxlqezlxEt+pdFg6zBesPXn1ih8Aj5vkAels9PhYCkPsl++kg0AQu4dyuqmugIQm+qS5Nv6N+D7wm7d1skPc4xu666Fhd6BxU6r+jub8tNaWNxK29EhsdpR/sVn7FlLm0txPdgni+JrFNd3p+K67MQtyrsp3w2G7xbHd5Plv83z3Wj6b3V9N9ssFv7afaa//ZPn3wD4/vje8PP/N7TebS0hgZhEAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTA4LTIyVDE3OjUyOjIyKzAyOjAwc2qUYAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0wOC0yMlQxNzo1MjoyMiswMjowMAI3LNwAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC" }, From 1ae2041d0d32fd0ddcf1eebb0c19f574d8cda6e1 Mon Sep 17 00:00:00 2001 From: Mark Rickert Date: Wed, 6 Nov 2019 15:03:57 -0700 Subject: [PATCH 5/5] Get rid of all references to `/Users/x/` in favor of ~ --- README.md | 4 ++-- Resources/ReDetection.json | 8 ++++---- Resources/toxblh.json | 20 ++++++++++---------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 2345c9e..e985d68 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ The pre-installed configuration contains less or more than you'll probably want, "type": "appleScriptTitledButton", "refreshInterval": 60, //optional "source": { - "filePath": "/Users/toxblh/Library/Application Support/MTMR/iTunes.nowPlaying.scpt", + "filePath": "~/Library/Application Support/MTMR/iTunes.nowPlaying.scpt", // or "inline": "tell application \"Finder\"\rif not (exists window 1) then\rmake new Finder window\rset target of front window to path to home folder as string\rend if\ractivate\rend tell", // or @@ -176,7 +176,7 @@ Example of "CPU load" button which also changes color based on load value. "title": "stats", "items": [ { "type": "play" }, - { "type": "mute" }, + { "type": "mute" }, ... ] } diff --git a/Resources/ReDetection.json b/Resources/ReDetection.json index db5778c..ebea332 100644 --- a/Resources/ReDetection.json +++ b/Resources/ReDetection.json @@ -6,7 +6,7 @@ { "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"}, "image": {"base64": "iVBORw0KGgoAAAANSUhEUgAAAJgAAACVCAYAAACkXDP\/AAAMI2lDQ1BJQ0MgUHJvZmlsZQAASImVVwdUk8kWnr8kISGhBSIgJfQmSq9SQwsgIFWwEZJAQokhEFTsyKICa0FFBCu6KqLoWgBZbNjLomCvCyIqyrpYsKHyJgmg675y3j1nZr5z59473512ZgBQjeKIxZmoGgBZolxJdLA\/c1JiEpP0CKBAG6gBXUDmcHPEflFR4QDKcPt3eXcTILL2mq0s1j\/7\/6uo8\/g5XACQKIhTeDncLIgPAYC7cMWSXAAIvVBvMjNXDDERsgSaEkgQYlMZTlNgNxlOUeBwuU1sNAviZACUqByOJA0AFRkvZh43DcZRKYXYTsQTiiBuhtibK+DwIP4M8ZisrBkQq1pCbJnyXZy0v8VMGYnJ4aSNYEUuclEKEOaIMzmz\/8\/p+N+SlSkdHsMEFqpAEhIty1k2bxkzwmSYCvF5UUpEJMQaEF8X8uT2MvxEIA2JG7L\/wM1hwTkDDABQKo8TEAaxHsTG0ow4vyHszZHIfaE9mpQviE1QxEdFkhnRQ\/HRfFFmRPhQnFIBnz2Mq\/k5gTHDNqnCIDbEcA3RRmEuO3Yo5vk8YXwExCoQ38\/JiAkb8n2eL2BFjIwljZZxhmuOgayc4Vww01RJULTCHnMRCNkRQ\/rwXEFsiMIXm8blyDloQ5zOz5kUPsyHxw8IVPDBCviiuCGeWJk41z96yH67ODNqyB5r5mcGy\/TGELfm5MUM+\/blws2myAUH6ZzQKMW4uKY4NypWwQ1ngnDAAgGACaSwpIAZIB0IW3sbesFwTxDgAAlIA3xgO6QZ9kiQ94hgHQPywZ8Q8UHOiJ+\/vJcP8qD+y4hWUduCVHlvntwjAzyBOAvXxb1xTzwc1r6wOOBuuPuwH1N1eFRiIDGAGEIMIlpNFxZIfojLBFyYQSYsEhAGWz7MSsZBNMz9WxzCE0Ib4RHhBqGDcAfEg8fQTviPDL9FE47oJoAOGDVoKLuU77PDzSFrZ9wf94L8IXecgesCW9wJZuKH+8DcnKH226z9O+7SYdZkOzJKHkX2JVv+aKdireI84iPL7XueCl4pI5mwRnp+HI31XW482Ib9aIktxQ5i57CT2AWsGWsATOw41ohdxo7K8MjeeCzfG8OjRcv5ZMA4wmEbu1q7HrvPP4zNGRpfIl9\/kMuflSs7OKwZ4tkSYZogl+kHb2s+ky3ijh3DdLCzh7eo7O5XXC1vGPI7HWFc\/KYryAPAy2pwcLD5my7cHYBDjQBQer7pLM3hcTYE4PxSrlSSp9DhsooAKEAVnhQdYADvLkuYkQNwAZ7AFwSCUBAJYkEimAbnWQCyIOuZYC5YBIpACVgJ1oJKsBlsA7vAXnAANIBmcBKcBZfAVXAD3IN7pRu8AH3gHRhAEISE0BA6ooMYImaIDeKAuCHeSCASjkQjiUgykoaIECkyF1mMlCBlSCWyFalBfkWOICeRC0gbcgfpRHqQ18gnFEOpqCaqj5qj41A31A8NQ2PRqWgamo3mo4XocrQCrUb3oPXoSfQSegPtQF+g\/RjAlDEGZoTZYm4YC4vEkrBUTILNx4qxcqwaq8Oa4EpfwzqwXuwjTsTpOBO3hfs1BI\/DuXg2Ph8vxSvxXXg9fhq\/hnfiffhXAo2gR7AheBDYhEmENMJMQhGhnLCDcJhwBp6pbsI7IpHIIFoQXeFZTSSmE+cQS4kbifuIJ4htxC5iP4lE0iHZkLxIkSQOKZdURFpP2kM6TmondZM+KCkrGSo5KAUpJSmJlAqUypV2Kx1Tald6qjRAViObkT3IkWQeeTZ5BXk7uYl8hdxNHqCoUywoXpRYSjplEaWCUkc5Q7lPeaOsrGys7K48UVmovFC5Qnm\/8nnlTuWPVA2qNZVFnUKVUpdTd1JPUO9Q39BoNHOaLy2JlktbTquhnaI9pH1QoauMVWGr8FQWqFSp1Ku0q7xUJauaqfqpTlPNVy1XPah6RbVXjaxmrsZS46jNV6tSO6J2S61fna5urx6pnqVeqr5b\/YL6Mw2ShrlGoAZPo1Bjm8YpjS46Rjehs+hc+mL6dvoZercmUdNCk62ZrlmiuVezVbNPS0PLSStea5ZWldZRrQ4GxjBnsBmZjBWMA4ybjE+j9Ef5jeKPWjaqblT7qPfao7V9tfnaxdr7tG9of9Jh6gTqZOis0mnQeaCL61rrTtSdqbtJ94xu72jN0Z6juaOLRx8YfVcP1bPWi9abo7dN77Jev76BfrC+WH+9\/in9XgOGga9BusEag2MGPYZ0Q29DoeEaw+OGz5laTD9mJrOCeZrZZ6RnFGIkNdpq1Go0YGxhHGdcYLzP+IEJxcTNJNVkjUmLSZ+poekE07mmtaZ3zchmbmYCs3Vm58zem1uYJ5gvMW8wf2ahbcG2yLeotbhvSbP0scy2rLa8bkW0crPKsNpoddUatXa2FlhXWV+xQW1cbIQ2G23axhDGuI8Rjakec8uWautnm2dba9s5ljE2fGzB2IaxL8eZjksat2rcuXFf7ZztMu22292z17APtS+wb7J\/7WDtwHWocrjuSHMMclzg2Oj4ysnGie+0yem2M915gvMS5xbnLy6uLhKXOpceV1PXZNcNrrfcNN2i3ErdzrsT3P3dF7g3u3\/0cPHI9Tjg8ZenrWeG527PZ+MtxvPHbx\/f5WXsxfHa6tXhzfRO9t7i3eFj5MPxqfZ55Gviy\/Pd4fvUz8ov3W+P30t\/O3+J\/2H\/9ywP1jzWiQAsIDigOKA1UCMwLrAy8GGQcVBaUG1QX7Bz8JzgEyGEkLCQVSG32PpsLruG3RfqGjov9HQYNSwmrDLsUbh1uCS8aQI6IXTC6gn3I8wiRBENkSCSHbk68kGURVR21G8TiROjJlZNfBJtHz03+lwMPWZ6zO6Yd7H+sSti78VZxknjWuJV46fE18S\/TwhIKEvomDRu0rxJlxJ1E4WJjUmkpPikHUn9kwMnr53cPcV5StGUm1Mtps6aemGa7rTMaUenq07nTD+YTEhOSN6d\/JkTyanm9KewUzak9HFZ3HXcFzxf3hpeD9+LX8Z\/muqVWpb6LM0rbXVaj8BHUC7oFbKElcJX6SHpm9PfZ0Rm7MwYzEzI3JellJWcdUSkIcoQnZ5hMGPWjDaxjbhI3JHtkb02u08SJtmRg+RMzWnM1YSP7MtSS+lP0s4877yqvA8z42cenKU+SzTr8mzr2ctmP80Pyv9lDj6HO6dlrtHcRXM75\/nN2zofmZ8yv2WByYLCBd0LgxfuWkRZlLHo9wK7grKCt4sTFjcV6hcuLOz6Kfin2iKVIknRrSWeSzYvxZcKl7Yuc1y2ftnXYl7xxRK7kvKSz6Xc0os\/2\/9c8fPg8tTlrStcVmxaSVwpWnlzlc+qXWXqZfllXasnrK5fw1xTvObt2ulrL5Q7lW9eR1knXddREV7RuN50\/cr1nysFlTeq\/Kv2bdDbsGzD+428je2bfDfVbdbfXLL50xbhlttbg7fWV5tXl28jbsvb9mR7\/PZzv7j9UrNDd0fJji87RTs7dkXvOl3jWlOzW2\/3ilq0Vlrbs2fKnqt7A\/Y21tnWbd3H2FeyH+yX7n\/+a\/KvNw+EHWg56Haw7pDZoQ2H6YeL65H62fV9DYKGjsbExrYjoUdamjybDv829redzUbNVUe1jq44RjlWeGzweP7x\/hPiE70n0052tUxvuXdq0qnrpyeebj0Tdub82aCzp875nTt+3ut88wWPC0cuul1suORyqf6y8+XDvzv\/frjVpbX+iuuVxqvuV5vaxrcda\/dpP3kt4NrZ6+zrl25E3Gi7GXfz9q0ptzpu824\/u5N559XdvLsD9xbeJ9wvfqD2oPyh3sPqP6z+2Nfh0nG0M6Dz8qOYR\/e6uF0vHuc8\/txd+IT2pPyp4dOaZw7PmnuCeq4+n\/y8+4X4xUBv0Z\/qf254afny0F++f13um9TX\/UryavB16RudNzvfOr1t6Y\/qf\/gu693A++IPOh92fXT7eO5TwqenAzM\/kz5XfLH60vQ17Ov9wazBQTFHwpE\/BTBY0NRUAF7vBICWCAD9Knw\/TFb8zeSCKP6TcgT+E1b83+TiAkAdbGTPcNYJAPbDYg4LzRcA2XM81hegjo4jZUhyUh0dFLGo8IdD+DA4+EYfAFITAF8kg4MDGwcHv2yHZO8AcCJb8SeUiewPukUeo52RfR\/8IP8CirpwdYvsG68AAAAJcEhZcwAAFiUAABYlAUlSJPAAAB4aSURBVHgB7V0JcBzHde3umb2xWOIiQBKkeN+HKFIq6mAo2bJMSZR1lMjYcXypYquUSrlipZIq21UxGNtKnPJRtuOk7MQ5pMiOSFtWLMmJrNsiFZ7iDR0U7wPEQdzYnd2Z6c77Q0BcwQQIEDuzs9B0cYjZndnu379f\/\/79+\/dvxoIUcCDgQMCBgAMBBwIOBBwIOBBwIOBAwIGAAwEHRsoBPtIXg\/fGxgH15oEbmKbpbM6CA8ipi3Mux5ZjafxaLw0yS5\/K7p\/950eZYcy0W1rO6nNmdhg\/e2yvqJvSFLrlluNs48Ye3tAwLgEXSDCPsNv+6Q2vMNtawzIZJRYs6tYn1T0pypMHLMPYHj7bcc6cVtlTVjc7y26\/PQPpZnpEluvFBBLMdRbnFSAlk+k0l7t3pizGPscY+ncYTTB3oanbNb\/KMXN3uKnpaaXUu+MFZIEEy2t\/N28dCWbm1siOjrxi+tkfCjEuRB8e5BRjGW3SZDO0bPkWfdKU18XiZdtDs2a9iWck2fC4tFIgwYraXv14MXMMdwmQkgDSKuxzTUx2dpRnbXmDkqpTxKO94SXXHDMe\/\/fdkQVLd7LlyxvxbncpAC4AWFEBdonCFXR9I8OUkanA0woAjjGdM9neMtXM9pVZp08l5GP\/Us0m1bV3Pv54kzZ1ak\/Z6tU0K81dIreifxUMkR41waWHyCsoHIDjsZgKLV7SKqZN+7lWVbPXtMW25OFdzU2V0eykioUWa2y0\/DIrDQB2BW18JT8pGMBoYkCtJjTMBVQO97bQdVPMmZcOzZ7zBCTaG9FVf\/AKq6w8C6lmXwmthfxNALBCcnOYvAoHsMGF9AMulpBMiGamZA+z7Ha9trY3dPXVT4nJ9fvtpSveScyY0QrAeW5rC3Swwe1Vcp8xPaC5QroXyhqb5Fykt2UzOfvUiU555mQFe\/mlus72tpaOhoYTspK1V32xoduragYA84rTXpaDiYLV3Bxmzc33o9j7MVFQoqIiHVbZHyoj+b\/qxz9+nT\/4oCfGXEJ9kMY7B5TisqM9kdm5\/Uu5\/TvvNq6eX+9VlQOAecXpopZDw6hiXNoREY5Vs4wKAFbU9hjHhfNQKIZpwQSvqhhIMK847ZNyeDSaYsKe4hU5AcC84rRfyglHyjnX67wiJwCYV5z2STlc18sUUzVekRMAzCtO+6UcTYvCKaPcK3ICgHnFab+Uo2kRpbQyr8gJAOYVp31SDpaLwoJJcg3yJAUA84TNPipEaGHGedwrigKAecBpeD34xqkAlIRgc416UG2niABgXnHaJ+UILjTOWdgrcgKAecVpn5QDCaZJJQOA+aQ9CkWGb4bIQlVopPkE7joj5dTY3rskwMSkKSx21z3wt29j9rGjTJ5vZfaZU0yZLjqiwsrKsVY0tuqM\/NcfKIDBp4AztV6w3UcFq52ps7bWSN95LZKJGloinNCwKQy+x2Y4LAW58DFDU3ZKC9sdtiWjurRj2ZTBUnaOtc+yWCplbz50yN6wYfNIGguO9NB88hNcnRFKoEubMfsgg4+93dWlcdPUWFd3gmtaFbOsWpbNaiqXxZsjKSI\/86HvMeGQUqnCZTh0Uc6TcQ0wtWm9hlriOq2xMhliV03T2b5YLBtZHI10pCdkVXRKeIKaGOblZZqQcdOWlREerpJcweOd21HF+nJSZhJc9ClL9OXC1llhxZpUqrdDWkZmXX1Vrzp2T1\/zO0fN2plTLNY1VbIVP7EAJQegebzXBwMMYM6oM6e3hcqS94XWrstF164j00HSOndugXz38Fpr97b7rRPHJlhnTuuqL60zwSNMSgGXaGwxGpx9XkmXvVU5IXj6sq8V6IVxCTC1aZN2fM6ZZC765lQzfXKFUMl5EF63a5muqYp1aQzbqrOKQaowASd1rqTFbXi0k5AhkwKJGoDMkXdOWzrticm9nZU2Ls46Hd92WJRkpp2ZFZWTn8v2xPayhH4g0vzoXqWi5znfkC8lypzAJ\/mNxlkvnLR6+Jw52f6vaeNtn3r55bbTkdZt9YZ8JPOhW8qisWSVEmKV\/dZbD1gnjs+SZ09V262t+TmN7h4VgAzrGd2PrvztcQEwx87U9usyq+2pJWb63N2G+un0STafbPfyGPbeJMmwiK4PycTIF+pCeu8GOBo0eg28QnLIee3if86jAflBf7GNAjJFfpTLvhtZ3\/FeI320R5xRHdk31u2xtIod8ck37WLpY+tEKlkj04Sh\/qRUJeRkTWtra7Kmpua9Bue33AL4UxeAhFMKIGTn+w5ubzaPJnbqFamkLvRytXjZAhC21jp1coXq7krZLc3AKhE5QBluh0q2SnOu5W8vH+rNgnxf0gA7f7ihvDK9u8rcfedEEUnWMJldgvFwDZh\/FVSNOkE8d8BxgfX9twVh3EAmwCZlC+8E8lCwIA6xo4yzHujS5ZrKxOzWLQleEb+e6dkUy1N94F8aZpFoKqXULEjcA3zD+ySekz2AT1KQLgNXMwAXYu3tMbOtrdneuytudnb1YQdRBYul4ywSqlGWPVHYVlhl0v2D9CUAJy1ITEnA9SSVHMBUQ4NgCw8hzlYizuzu5aYM38VY751WtmOuJxwbQSG2YklMBVczaa62LGzgST92QUoi+El+4hUV9ZqV+0LrokV\/he8v2+gAHG3UoGsnXQCczjo6EszomW3sP\/Qxa+\/Oe2VLyxTryGFd2XYIvSvCJQZ7Zb+nFSrTQjm8Bb\/3JJUUwMBQzo5vnJYzqlaovqN\/z\/rOVmFUoGUPMNPfSUnEnxgEMJEom6hsuaFmxoxHUbf9ANColG+8T0NpF367p23L9sYEi3w3vGRlLHbbXZOlbawxDx18EFvXJttNZ5Kqt394zhnQD\/lxr7hVEgCj\/Qrs9HcnG2+s\/Q50jYX4BI9MDnApZxT0ilkFL8dq43bbUxWiev1j3DI+B6DsQOOPOsYEfkOiMdN\/EeBa2dath+1Y6onQjJlx+6p5KVFbMR+62h2iqmIfS8b3FLwuQ2Toa4CBUZztvTeV3WOu5PzV24Cm66DrTMT3nrmbDMG3wnxt92EeeVDItuhUpVfezfVkBer2DABzCeVp5EXi96S30cShB\/np2B8ZYS0tHdldW7tkWaI1VB47MfLcxvambwHm6FrvbqgyI\/YsZoj7lMw8gOEwMrbq+uvXSmZh5zjGrNbmSKjyxjuZqqtgp7+3FVS2F4pSgG1gVnoUedLlafIlwNB9eednUuXRtp7vQPrfCI7M9JQrXhdmZ5jZ9sICJeIpMWFVE6TOX49VinldhaHKc2PmPlRZI\/q+dcsDyWgityJstv0I9qWrYAYgqeXLjjCiCvW\/ZDxhYr0RRrO8uaKoFyy6Hkb6SjQD\/kEjsLkWPi0itY+EWPhnfNE\/5r09mtL8866v3HWMPevmJGPn1uh2x58ogaHxQtS\/kgfXSJsbqhdWP3O1Mttyv2Gcuq5v10cpmElJJ18AjIbEjj03T4iw3HUhYd3BmflJfBUZysBe0hy\/DPEAWZRJ4yNhYXw4LuTcs0\/f5Zl782VIu6LH\/pAOr6+PRmXXnxuSPQBQTb2imoyzH5k2\/womNfMmTsv+B6r2dKlWr6gAgzLL2YF1E7JW91exIPJpMLGyVBnpBt2Q7LcjPvAiY\/dtKpLteZHf8H9k6yqpVLQhksBl7lt7rWGafwpwfRKLeNWQXuReE6R+DoAfcSj\/s2Bc\/lYmklqbeeOOq0qNOUUDmLHnzmnM5ssRQPkGgKsOa8a+m9H6oTHBFCyDqYU6VzfpSs7v2HOPZ5FxClH\/ogBMHVoETyr7M7ayPws\/rDsKUZHxngfcUB+GkeOBmMperzaVjqT3HGBq113xnDHlXvTMz0P0XzvegVHg+sGB3\/6hOfdjS0sFZJ4CrHP\/H1WY8fhSOBU0QOzXBjrX6OAHvTWMdf+ptmV8ny34w+nq0HrPtp+NjtKLb3sGMPVygx5XxgzNztwIYM0HCb53sbnIJv\/cwbErDOm\/wrQyN\/WxvkqlnH0H\/iFwECWeAYxNb6lWVuYTdtb420E0BB9Hz4G4so1\/Chn6Db17ynxt2vEEYEo1CKP1yPfhxrwejkuB5Bo9oH7vF+BjTLHs10Py7EalNvnWvOM6wNTr18fSu3aug85FCn3Jr639XksX6QvHpqPUTBhjV2f3PPp5v+pjrgLM8URNTi\/XuL2GC3igQn8oUnuMrFi0FoNooAPP6G8JJHIXr3NcmuTkiv59oL4i292louZPxbMqdw1a62E\/1doBEPl8whXP2ehDwKILuzWcDWP0kUQEqdP0j7hEn+miwQiXX8zCUPqrlbTvzXHjN+ElE38L6s7j8k1yDWC0FJTececCXTO\/RS71vknk34mtFfI0jls5AdNlCzaYYT+ESuO4Y3IyJuBRAoJ4ElvQqvF3Ai44aZPflqjCVYH6xPBO1B\/1Aq8TPHPsxwaP3q127drCV66knUe+SK4BLHfwS\/M1PblCsc55dMpEMRMOvYMTsmK5\/fZFpz\/aTw0wvU+C5Q+LIFkBcHYa3eMMPhCW6BqQYACcNguBtpaDhQRCV5UNlDtMIrKwqbiMRyrvzUWeoFnlL4d53dNHrgCMpFd2zz0fgTv4GhwJXDS9S2Ww2\/8sJFQH\/gIk6gykFO1pppOxByTVkOwmhOEhDaMk9QYllQGo0HGyWZvp03A\/ESv15JlaJKmGkrmwO29imYxUh3\/zDJ9zB3WhoidXAMaaNsaYytyKpll9odt7W09Hx8JeaHUewHrLZrJJMvsEaCDAFCoBpHYTMjtnA8CQZjMh2mzBRA2aGk7exdDRpJVeTpAPRU9Uo5PTgaSFrPEVca7gAFMv36xbvZmVcKOfppTl\/co\/CZ4uxcy9NrNeh45l0BdXxJuR\/Qh524dxHbEZj0sWul5joWsBNtLRgDWvExehulz65KfC737xeyi76FKs4JpDeywWt3v3PwJwzfaauQgXwswXLZb7b4tZWyBZKKKDm+DKryCZNzBZMF+zWfYpk1nQ94rSvDJbL3v2PcQSYUxRip8KCrBDhxrCodTVdUxa09GwnkUydkAERd5Eo5pHMByeg+Sivuv15ALlkcS0oeuZbwHsBDKazwHkHOsXdLmfFFzHEBAlm6yn9V\/3yxu+hIICbGG8Mx5mxjywcgJ0EJpveZJoJigxS7T2QolvQiMXebOX6gI9RzFE74P+hwmGM1PFVAch5LxJUAWZYSxgs8s9gfRwlSoowMzO49O13LEvoyN7J70gIRTAZfwi58wYBwylw1Xai2c0XNqnQNemHJNtMHWUId5dqqDsHroaCi782Xc+39f5imdnEg1FTMFqrM7tw7H38clWLn2dl9LLwpCYfcVisgUaNaIU+SqBHqIr9zzihsHUIco9o09nVu9qHUHTir0QXjCAmZmX5ohIYo6X4JLHoG+9jWHxXWjYF2Nd+ghjUL5Al40VAwsrBjbC0nmY9Ei0poK19RR1X2XBlECZbZompDnNCwY6zQSJYGG5R9JSz6iianlB4aAyaDbblb9MMOi5Sx+tXKYy23OEAEaLYEVJBQMYz55cxVRulSe1oLaCrct6AwCD\/lUKycbkw+uksj1zmZk7i3IRxLU4qSBDJC0NqVzHdcrqRfwuDxK2n2ZfspjqRFmYQZZEok5BV0E4PsIa291X62bblBG+7cprBaru5hD6J10Fk4hD1Vb1KQyL0L0OY2i8xBrhUL\/zzfcejpRoD6yoqGnFrHuBANGBgwa8WRgZAJiCl0OQhucAOFSHRdGiWvTHLMFg8+LspE3Lu2POa3h24Sk4RrqMdahUxsXL1sjdFxRDkGEFU4XjPuluWUPkXhhQZI7De8ID7QLDozoHVebkELUJvv59DiisqDRuLJpFf+wA28i4oU7imF6co+NyIqMq6V8lqXu5zJuhsofKpzWfPlLCAEPNuMRhTR74RdOSC+lg4yah9RUthruYcIScCFcZBdK1R0\/o2KXO11BoOoeFbffHedUG6TWeAEZ9hTaauNhnpOKa3qOXuASjWOxu+3CiEWQL2qJoNunR997L\/oKA5bKpBWcLaFqqrWhu62OXYOBRWGgFyWfYBoEzIfl4Oa4vw75YQg8h93kcC+AuroFjKRRHYUZLd4jcvJnxHO8\/XdGttiXpBYdCx9fexeHELfKHzddFcDnlQgfDgZilC7D1qIXJdWzcHpaNY3\/Y7xk69ox8lAPxzGW+YWhB0G7L\/RFmCLYWpmALu\/LcTh4usbhdlfz8uct+v7CxChZyu5T8Gr3\/vjAAe3+ewaeRcoC43x+eYKQ\/GfV7HEdEe6EjD0FY6QDMfRk5BItc+pokFxkPXPbTd\/ZnQkd2qRaXzbYgADO90I8KQull+eHdCzSDJOOOy0OkdxW6dEljbrbNyHdCkiFYtIsJ\/Y\/TNpIxU+sijaPMmnYYebbLaJS0FfL1gjRZjoKLuJzIXoRj1C8EH3G5LC+yF2WI0oPL\/YTwAdLd\/j9cHcYMsPXrsdBhwfwJO+hwBY35GdpCq4AQK+oWhjHX4mIGBC4PAEa2Q5w87W7bXKzV792NGWBOjughiLPhbiWosyfxX4RuSj\/RkO8M+y5XBY2C7Uy6qxrMcFUYO8A2ogbVScSacT+Si5hMm1fHB8AEgtrR5XYSQthqQszlFc+hazF2gH0NKzidtSaMLa73En0G9sQjwuB4SALxxOhyO0k4U0WzdS47BQ1di7EDDHnHKuoNDPSuA4wjdCXF39Jqhq6Q758AUwK6JNWF05DvehIWmzipaGGcxg4w4pEeQw9xf4gkwyTH9nteM3ayXW\/XoQqA5ZPibTuRED2wgWGl2+7KUeCC4qQxtxTwpdj0ddip6I0jjZjMmb4YLYNzAAG34nDtiksFuNBJ9CU4CL7sijMZ1Q8xuTdT8uNFO8h0zABzarvxcUgwl2eR\/WylCM9ipmBaPcBVNCeUUbXxxZdBr4D00hdoiFrtUedAjHM2fboHlsqL1cy\/KwjAeEOD1PR4o9AijfmZu3VP0\/vwh7EVE5GeS0mIUecIrQHdtP7oAb40PbZX0+KnEavVdf14qLYuCMCczMNVjVxLeAIwCm3nKPtXYcjxYKo\/FPNG8z3RKyB1NQzxXi15Ka18Nw9VnxwNnYV+t2AACyVmN4pQyhOAkYcAhw6jz4LZgqb6fh8q0SG0esH0GegQkGJeSC8HKJGanbJs9vgAGKv80D6YjPcVugcMl5++HBGdF2lMm4RG83HScCK5fp3G9GUeTBvz+BBicns4vPBE3lee3xZMgrHkdZ3KaGnWuKAjD9xdNhpgE6jX5gkWvhV6DQWL9BvOQB8p9eG1mDXWgjiP8AXmS1jwD2Uyb7exSTTDL14qGMCgSNo2K2uRWvlz0DY8sxyTwk\/6jY4jXQTNzHwCMjJHCCxrha4BXXQ4g7fDOLZJlD+TlZHeYh\/GUDCAUR8xKpe0sbJZT6MHmd6IMBRKUgFeCeHlWKeciHtyQS5orZDnaBNoIiu9NgVOqytAF4DvQWgYh0oaO7DZNqsn5jxzNnx1erSkF\/r9gvZ3iuLS886DVeGe4\/tQUZxj6G1TU7Tp3AsICIxBWnZioHaCAnsGdbQNgARwiUkQWNC3QkuBdK\/sXQPIQGBr1PhwtDK1ms\/ajIDqxU0F7eskjpuPnOoR8RnfhD\/wMa+rRjO08B0hFr4nxMSCC43tKQ00LC4EDfeFmX4NkOY1uFBZRAo4Eiqb+ZXdHRVFl17E+4JKMMoQkotnDj5cr5uHHoewXiWlN+dbUNlOQvel4\/sUJJh9HIchHEQ8C0g26WJfFjiRScAMoU3HsDgLVnqyzUHnInOKlwnldWGX2tZIzapPsfqGDnz2UnxfsqoFlWBUAlUqtviuJpuJw5JpJy5ZqptfolHJUk72MW06Gp1cfKbiogVyclYsVKvTTmMc3ScmIu9pZOPCdRWVA8kJSVaoYkbFKi7egQhrZPVf6\/QDuIh2V+Y2nN9iZQ594d8QGPio4F1\/A6lWcCBflvFof1ELEwYuOnWDYovZb1jMRgAVlsVDLJ44y\/POIsplOrpDPYCDnzk1wWdn9grLvL4Udrg5UOSLFl7kPU7ArTjxzzxW9ypUlaItDb1HTf+NKwCjvKNs8g7DPI0uzRFGW9UPLtjLzxx+\/KHFkDDzwxgqMWR2Y\/g8iWETByRIUEenog3pC0JKewqAwsoBhy1Lw0V\/OWauAkfDOOd5e999BrMPeyL4fo3l9obmrznC2I8GPy\/aZ+qTriX15r1VtsHus+y+n7hWyGgzRnhXipBIp6IpMkFmIb3Iakff0Um4A34H\/VLK8dsKgU2kU9HQRwvVMIU4wAL4fJL6bC3xSbM397sJq5+lM319k1yTYE4N5bIeLXF8p9nddxxNRFLM3fJGwlaAgkwJnPQxSCbcObH2nbCcBDDy\/cRXjt2K9mIOHJGM7\/yYYBpCYCv+lgjX7ElZkxE97Vlfkek629qfvzUVS4mHUOu\/RKPBWZiaL0iF4AB0Qgq3\/aam6V\/XrOZf8ZW7PVtBGSn9rmsPFbe+0B2tn\/4DrvF90JLPj5Sw4L0RcECpI1Kq7af2pH\/tR3BRDTyTJurAZ2aZZvMXuZQPodtBmwnSWDiAhjOY0B+wtehr8WVPnh5LXm7+1nUJ9h7xi1echhHwJYR0fOK974KbK+MAp6mJ+Neciuw9pi8lw4tvk2cSjDjQs\/XeiTwsl2rc+Dk+VsIm6x3AfdsEoyMMCj3sLOqEiCbvCZedf4fPeIUOC\/Rt8hRgxAW177aEafP7EI7juwBYtW8541PCALBWwfmDYdX6jF\/1rnzWeS9Blv42HdLUk4LZ3wHctuQTE9xfhgOcvSa4\/HZYhZ4rBXBRbTwHGK2R8WW\/7bOkepEL8RKWNd64DFuDxxcaaoeS8kWLs5f4yqd94SkxkobxHGADRMWvfXGXtMRLOOjiZYzTOL82SJfiAPhCrOk2lXoBw+ML8eXP777Ue379znMdLJ8RzjFzB9ZNyOZyX4XF5M\/wjBZigvR+DnTDmPTTSJR\/gy96rv39j\/z\/qWgSjFhDDorsyWe7IjHz2xg5H4HXxUn\/s8xLCtUWLu2\/i0R7vsE2P0cHSJdcKqoEG+CW46S4\/fYpekjdyYRaJW312YFnH9S\/ulD\/gB74YlapHYlrniefj5JMRZVgAxwjxT++6n9OM8l32BZmlorthuIBtWPgjQ\/G3wv15bTcvttW4jXL1g6UMrio1XwhwfLhc+r162O1qdp5MpPeDOBhXw4Lg\/H+cYzJJ7aA96grOQma6FyHTZH444Q82Vgqpojh2OA7gBGxahPTzs9dX5cwux5BfKtVmD3NHa4S4+EZAAb9k28La7UPs3cePcc3OJ4SJV81XwKMuKo2rdfYjJ7ZNpMzlc5vs21FLj\/jcZaZg\/viLzTuXG+z5WVvc76Z3HDGRfKFDnYpTvINYPKzqw5rvZGd2Jn0O3gAbpVKncegTjrKeEg5Kdl5nCO2HSfuvZrT9B1s+efGFbiokXwrwfIRRLNM9u6Xq43uPT\/A2YdX49lUyLg4vsbIUlqJ5i3w5E\/jAOoz8OrfEU5d82U265uI4VX8LWZucLJk2scBWeP6BNT9KTmTL5PZzh+gf2CTWOl4ZKAO8FjinUKr+ArWY59nQjZv3Lw53dDgKPhutG\/R8ywZgA1wSh1aH2YilrSM1vm2iK\/gduZWLq01mIJRfB1fJmyhlEqL\/0Jo4X2WmdlqW1VvJ0T4PF\/5E9+5OBeagSUHsAEGYJlJ9DV+YanInLtVsNzNGHgmSSVnQKKVY7jxg1nDwnBoIL7OcZy108Gjlf+lQsn90bmf2Eb7RgfqMd7\/lizABhqG1jOPH98YgcFsvt2+7S9wos0KqGblGI6iOCKCorhGADjX64nybJSCfUkijcIM6FkdmJicUMnrvh+pqN\/Gqh8oeiilAZ55+dd1xntZGSpLHdmUyuZO1SretFrra\/y4lNa1aHhng5qbtGDCcYJz\/aCYsPyXsmzyqxExpZVVf+wDCap8Phd\/n2I+NYW4n9nYA2NZH2tMn+0zs89oYRWNhiI6y1WHWSwXY5aMYIetns31RTSh6TlL6XhKCZqSsxvyIhUaFuPhhGUpqXRBf4XUNAqtEjcVD1mhaCjDjBBclltymU5lRSeY2VajPV1zUjfYzQ\/ZzmL+xdw+kHfjToINbkXHJYhtRD0naay5O8xCJzXWe17rPdGhl1WERDqbFXEDRw7HY1Dj3n\/0MG38VhL7K6TAQTka\/mZVIoU94NGpCNuTlCxRZbFJawC4mx3DaACowdwPPgccCDgQcCDgQMCBgAMBBwIOBBwIOBBwIOBAwIGAAwEHAg4EHAg4EHAg4EDAgYAD\/ubA\/wORPcQEzzVDQgAAAABJRU5ErkJggg=="} - + }, { "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, "action": "appleScript", "actionAppleScript": { "inline": "tell application \"Reminders\" to activate" }, "image": {"base64" : ""} @@ -14,9 +14,9 @@ { "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, "align": "right" }, { "type": "volume", "width": 100, "align": "right" }, { "type": "displaySleep", "width": 44, "align": "right" }, - { "type": "appleScriptTitledButton", "refreshInterval": 1800, "source": { "filePath": "/Users/redetection/Library/Application Support/MTMR/Weather.scpt"}, "align": "right" }, - - + { "type": "appleScriptTitledButton", "refreshInterval": 1800, "source": { "filePath": "~/Library/Application Support/MTMR/Weather.scpt"}, "align": "right" }, + + { "type": "timeButton" , "align": "right"}, ] diff --git a/Resources/toxblh.json b/Resources/toxblh.json index c77d3dc..0a994db 100644 --- a/Resources/toxblh.json +++ b/Resources/toxblh.json @@ -3,7 +3,7 @@ { "type": "exitTouchbar", "image": { - "filePath": "/Users/toxblh/git/selfProjects/MTMR/Resources/logo.png" + "filePath": "~/git/selfProjects/MTMR/Resources/logo.png" }, "width": 36, "align": "left" }, { "type": "brightnessDown", "width": 36, "align": "left" }, @@ -12,46 +12,46 @@ "type": "appleScriptTitledButton", "source": { "filePath": - "/Users/toxblh/git/selfProjects/MTMR/MTMR/AppleScripts/iTunes.nowPlaying.scpt" + "~/git/selfProjects/MTMR/MTMR/AppleScripts/iTunes.nowPlaying.scpt" }, "action": "appleScript", "actionAppleScript": { - "filePath": "/Users/toxblh/git/selfProjects/MTMR/MTMR/AppleScripts/iTunes.next.scpt" + "filePath": "~/git/selfProjects/MTMR/MTMR/AppleScripts/iTunes.next.scpt" }, "refreshInterval": 1, "image": { - "filePath": "/Users/toxblh/git/selfProjects/btt-touchbar-preset/icons/iTunes.png" + "filePath": "~/git/selfProjects/btt-touchbar-preset/icons/iTunes.png" } }, { "type": "appleScriptTitledButton", "source": { "filePath": - "/Users/toxblh/git/selfProjects/MTMR/MTMR/AppleScripts/Spotify.nowPlaying.scpt" + "~/git/selfProjects/MTMR/MTMR/AppleScripts/Spotify.nowPlaying.scpt" }, "action": "appleScript", "actionAppleScript": { "filePath": - "/Users/toxblh/git/selfProjects/MTMR/MTMR/AppleScripts/Spotify.next.scpt" + "~/git/selfProjects/MTMR/MTMR/AppleScripts/Spotify.next.scpt" }, "refreshInterval": 1, "image": { - "filePath": "/Users/toxblh/git/selfProjects/btt-touchbar-preset/icons/Spotify.png" + "filePath": "~/git/selfProjects/btt-touchbar-preset/icons/Spotify.png" } }, { "type": "appleScriptTitledButton", "source": { "filePath": - "/Users/toxblh/git/selfProjects/MTMR/MTMR/AppleScripts/Vox.nowPlaying.scpt" + "~/git/selfProjects/MTMR/MTMR/AppleScripts/Vox.nowPlaying.scpt" }, "action": "appleScript", "actionAppleScript": { - "filePath": "/Users/toxblh/git/selfProjects/MTMR/MTMR/AppleScripts/Vox.next.scpt" + "filePath": "~/git/selfProjects/MTMR/MTMR/AppleScripts/Vox.next.scpt" }, "refreshInterval": 1, "image": { - "filePath": "/Users/toxblh/git/selfProjects/btt-touchbar-preset/icons/Vox.png" + "filePath": "~/git/selfProjects/btt-touchbar-preset/icons/Vox.png" } }, {