[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6891":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":39,"readmeContent":40,"aiSummary":41,"trendingCount":16,"starSnapshotCount":16,"syncStatus":42,"lastSyncTime":43,"discoverSource":44},6891,"MTMR","Toxblh\u002FMTMR","Toxblh","🌟 [My TouchBar My rules]. The Touch Bar Customisation App for your MacBook Pro","https:\u002F\u002Fmtmr.app",null,"Swift",4302,227,51,202,0,3,12,1,29.07,"MIT License",false,"master",true,[26,27,28,29,30,31,32,33,34,35,36,37,38],"applescript","bar","custom-touchbar","customization","customization-app","dock","macbook","macos","statusbar","touch","touch-bar-customization","touch-bar-customization-app","touchbar","2026-06-12 02:01:31","# My touchbar. My rules. [![GitHub release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002Ftoxblh\u002FMTMR.svg)](https:\u002F\u002Fgithub.com\u002FToxblh\u002FMTMR\u002Freleases) [![license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FToxblh\u002FMTMR.svg)](https:\u002F\u002Fgithub.com\u002FToxblh\u002FMTMR\u002Fblob\u002Fmaster\u002FLICENSE) ![minimal system requirements](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Frequired-macOS%2010.12.2-blue.svg) ![travis](https:\u002F\u002Ftravis-ci.org\u002FToxblh\u002FMTMR.svg?branch=master)\n\n\u003Cimg src=\"Resources\u002Flogo.png\" align=\"right\"\n     title=\"MTMR by Toxblh\" width=\"110\" height=\"110\">\n\n_The TouchBar Customization App for your MacBook Pro_\n\nMy idea is to create a platform for creating plugins to customize the TouchBar. I very much like BTT and having a full custom TouchBar (my BTT preset), and I wanted to create it.\n\n**Share your presets [here](https:\u002F\u002Fgithub.com\u002FToxblh\u002FMTMR-presets)**\n\n**Visial editor for MTMR** -> [MTMR Designer](https:\u002F\u002Fjosmanvis.github.io\u002Fmtmr-designer)\u003C\u002Fbr>\nAll thanks to [@josetwentyfour](https:\u002F\u002Fgithub.com\u002Fjosmanvis)\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002FResources\u002Faaaaa-acc6-17fee7572ed0.png\" alt=\"Mackbook with touchbar\" width=\"800\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FCmNcDuQ\">\u003Cimg height=\"20px\" src=\"https:\u002F\u002Fassets-global.website-files.com\u002F6257adef93867e50d84d30e2\u002F62fddf0fde45a8baedcc7ee5_847541504914fd33810e70a0ea73177e%20(2)-1.png\"> Discord\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Ft.me\u002Fjoinchat\u002FAmVYGg8vW38c13_3MxdE_g\">\u003Cimg height=\"20px\" src=\"https:\u002F\u002Ftelegram.org\u002Fimg\u002Ft_logo.png\" \u002F> Telegram\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Ca href=\"https:\u002F\u002Fwww.paypal.com\u002Fcgi-bin\u002Fwebscr?cmd=_s-xclick&hosted_button_id=WUAAG2HH58WE4\" title=\"Donate via Paypal\">\u003Cimg height=\"36px\" src=\"Resources\u002Fsupport_paypal.svg\" alt=\"PayPal donate button\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Ftoxblh\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Fassets\u002Fimg\u002Fcustom_images\u002Forange_img.png\" alt=\"Buy Me A Coffee\" height=\"36px\" >\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.patreon.com\u002FbePatron?u=9900748\">\u003Cimg height=\"36px\"  src=\"https:\u002F\u002Fc5.patreon.com\u002Fexternal\u002Flogo\u002Fbecome_a_patron_button.png\" srcset=\"https:\u002F\u002Fc5.patreon.com\u002Fexternal\u002Flogo\u002Fbecome_a_patron_button@2x.png 2x\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.producthunt.com\u002Fposts\u002Fmy-touchbar-my-rules-mtmr\">\n    \u003Cimg src=\"https:\u002F\u002Fapi.producthunt.com\u002Fwidgets\u002Fembed-image\u002Fv1\u002Ffeatured.svg?post_id=my-touchbar-my-rules-mtmr&theme=light\" alt=\"My TouchBar My Rules (MTMR)\" height=\"36px\" style=\"max-width:100%\">\n\u003C\u002Fa>\u003C\u002Fp>\n\n## Installation\n\n- Download latest [release](https:\u002F\u002Fgithub.com\u002FToxblh\u002FMTMR\u002Freleases) (.dmg) from github\n- Or via Homebrew `brew install --cask mtmr`\n- [Dario Prski](https:\u002F\u002Fmedium.com\u002F@urdigitalpulse) has written a [fantastic article on medium](https:\u002F\u002Fmedium.com\u002F@urdigitalpulse\u002Fcustomise-your-macbook-pro-touch-bar-966998e606b5) that goes into more detail on installing MTMR\n\n**On first install** you need to allow access for MTMR in Accessibility otherwise buttons like \u003Ckbd>Esc\u003C\u002Fkbd>, \u003Ckbd>Volume\u003C\u002Fkbd>, \u003Ckbd>Brightness\u003C\u002Fkbd> and other system keys won't work.\n\n\u003Cp align=\"center\">\n\u003Cimg width=\"450\" alt=\"screenshot 2019-02-24 at 23 19 20\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F2198153\u002F53307057-2b078200-388c-11e9-8212-8c2b1aff0aa6.png\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n🍏→ System Preferences → Security and Privacy → tab Privacy → Accessibility → MTMR\n\u003C\u002Fp>\n\n## Examples\n\n[MTMR presets](https:\u002F\u002Fgithub.com\u002FToxblh\u002FMTMR-presets)\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002FResources\u002FArtboard.png\" alt=\"Presets for touchbar\" width=\"800\">\n\u003C\u002Fp>\n\n## Customization\n\nMTMR preferences are stored in `~\u002FLibrary\u002FApplication\\ Support\u002FMTMR\u002Fitems.json`.\n\nThe pre-installed configuration contains less or more than you'll probably want, try to configure:\n\n## Built-in button types:\n\n> Buttons\n\n- escape\n- exitTouchbar\n- brightnessUp\n- brightnessDown\n- illuminationUp (keyboard illumination)\n- illuminationDown (keyboard illumination)\n- volumeDown\n- volumeUp\n- mute\n\n> Native Plugins\n\n- timeButton\n- battery\n- cpu\n- currency\n- weather\n- yandexWeather\n- inputsource\n- music (tap for pause, longTap for next)\n- dock (half-long click to open app, full-long click to kill app)\n- nightShift\n- dnd (Don't disturb)\n- darkMode\n- pomodoro\n- network\n- upnext (Calendar events)\n\n> Media Keys\n\n- previous\n- play\n- next\n\n> AppleScript plugins\n\n- sleep\n- displaySleep\n\n> Custom buttons\n\n- staticButton\n- appleScriptTitledButton\n- shellScriptTitledButton\n\n## Gestures\n\nBy default you can enable basic gestures from application menu (status bar -> MTMR icon -> Volume\u002FBrightness gestures):\n- two finger slide: change you Volume\n- three finger slide: change you Brightness\n\n### Custom gestures\n\nYou can add custom actions for two\u002Fthree\u002Ffour finger swipes. To do it, you need to use `swipe` type:\n\n```json\n    \"type\": \"swipe\",\n    \"fingers\": 2,            \u002F\u002F number of fingers required (2,3 or 4)\n    \"direction\": \"right\",    \u002F\u002F direction of swipe (right\u002Fleft)\n    \"minOffset\": 10,          \u002F\u002F optional: minimal required offset for gesture to emit event\n    \"sourceApple\": {         \u002F\u002F optional: apple script to run\n        \"inline\": \"beep\"\n    },\n    \"sourceBash\": {          \u002F\u002F optional: bash script to run\n        \"inline\": \"touch \u002FUsers\u002Flobster\u002Ftest\"\n    }\n```\n\nYou may create as many `swipe` objects in the preset as you want.\n\n## Built-in slider types:\n\n- brightness\n- volume\n\n### You can also make custom buttons using these types\n\n#### `staticButton`\n\n```json\n \"type\": \"staticButton\",\n \"title\": \"esc\",\n```\n\n#### `appleScriptTitledButton`\n\n```js\n  {\n    \"type\": \"appleScriptTitledButton\",\n    \"refreshInterval\": 60, \u002F\u002Foptional\n    \"source\": {\n      \"filePath\": \"~\u002FLibrary\u002FApplication Support\u002FMTMR\u002FiTunes.nowPlaying.scpt\",\n      \u002F\u002F or\n      \"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\",\n      \u002F\u002F or\n      \"base64\": \"StringInbase64\"\n    },\n  }\n```\n\n> Note: You can change appleScriptTitledButton's icon by following these steps:\n1. Declare dictionary of icons in `alternativeImages` field\n2. Make you script return array of two values - `{\"TITLE\", \"IMAGE_LABEL\"}`\n3. Make sure that your `IMAGE_LABEL` is declared in `alternativeImages` field\n\nExample:\n```js\n  {\n    \"type\": \"appleScriptTitledButton\",\n    \"source\": {\n      \"inline\": \"if (random number from 1 to 2) = 1 then\\n\\tset val to {\\\"title\\\", \\\"play\\\"}\\nelse\\n\\tset val to {\\\"title\\\", \\\"pause\\\"}\\nend if\\nreturn val\"\n    },\n    \"refreshInterval\": 1,\n    \"image\": {\n      \"base64\": \"iVBORw0KGgoAAAANSUhEUgA...\"\n    },\n    \"alternativeImages\": {\n      \"play\": {\n        \"base64\": \"iVBORw0KGgoAAAANSUhEUgAAAAAA...\"\n      },\n      \"pause\": {\n        \"base64\": \"iVBORw0KGgoAAAANSUhEUgAAAIAA...\"\n      }\n    }\n  },\n```\n\n#### `shellScriptTitledButton`\n> Note: script may also use escape sequences to return colors (read https:\u002F\u002Fmisc.flogisoft.com\u002Fbash\u002Ftip_colors_and_formatting for more information)\n> \"16 Colors\" is the only mode supported presently. Buttons will set their own background color to the color returned.\n\nExample of \"CPU load\" button which also changes color based on load value (Note: The native `cpu` plugin runs runs better):\n```js\n{\n  \"type\": \"shellScriptTitledButton\",\n  \"width\": 80,\n  \"refreshInterval\": 2,\n  \"source\": {\n    \"inline\": \"top -l 2 -n 0 -F | egrep -o ' \\\\d*\\\\.\\\\d+% idle' | tail -1 | awk -F% '{p = 100 - $1; if (p > 30) c = \\\"\\\\033[33m\\\"; if (p > 70) c = \\\"\\\\033[30;43m\\\"; printf \\\"%s%4.1f%%\\\\n\\\", c, p}'\"\n  },\n  \"actions\": [\n    {\n      \"trigger\": \"singleTap\",\n      \"action\": \"appleScript\",\n      \"actionAppleScript\": {\n        \"inline\": \"activate application \\\"Activity Monitor\\\"\\rtell application \\\"System Events\\\"\\r\\ttell process \\\"Activity Monitor\\\"\\r\\t\\ttell radio button \\\"CPU\\\" of radio group 1 of group 2 of toolbar 1 of window 1 to perform action \\\"AXPress\\\"\\r\\tend tell\\rend tell\"\n      }\n    }\n  ],\n  \"align\": \"right\",\n  \"image\": {\n    \u002F\u002F Or you can specify a filePath here.\n    \u002F\u002F Images will be resized to 24x24.\n    \u002F\u002F \"filePath\": \"~\u002Fmyproject\u002Fmyimage.jpg\" \u002F\u002F or \"\u002Ffixed\u002Fpath\u002Fto\u002Fthe.png\"\n    \"base64\":\n    \"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC\u002FxhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA\u002F1BMVEUAAADaACbYACfYACfjABzXACjYACfXACjYACfYACfYACfYACfdACLYACfXACjYACfVACv\u002FAADXACjYACfYACfXACjYACfXACjaACXYACfYACfVACvYACfYACfZACbZACbYACfYACfZACb\u002FAADYACfYACfVACrXACjVACu\u002FAEDYACfYACfYACfXACjXACjYACfXACjYACfYACfYACfXACjYACfXACjYACfYACfZACbYACfYACfMADPYACfYACfYACfYACfYACfZACbXACjYACfYACfRAC7XACjYACfZACbWACnXACjXACjYACfTACzZACb\u002FAADYACfYACfYACcAAAA+zneGAAAAU3RSTlMAItK+CVPjh3xUxPwPiGDQGAMtSKmN3Vk+wPQG\u002Fe26oIJBnwJCdiuAHgTmw+6BX+IgfaqLUvKOW8VKnagK+vBwYrhlc\u002FurCznvhSyUbOEXPAFjGh\u002FektAAAAABYktHRACIBR1IAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4ggWETQWgEDcSgAAAqVJREFUWMPtl4ly2jAQhsUNNlcw5r4SICEHLSQhCQRyX73T\u002Fu\u002F\u002FLpUlLIyxbMAznWmn\u002F0ywo5U+27tr7ZoQuwLBUJidRKIxPhKLRtgxHAoGiLfiQIKdKFCTxjGpQmEDCSC+BiAFpNlJBsgaxyyQYQNpIPUf8AcAOzktD+iaoQJQNI5FoMAGdCCv5XZclpfKFXiqUi5Jllf1mvdyQzW96gigd4h6o+mhRp1O0x3vvwa1VSWeqrZU1Jyeogy01ggSVQsoO\u002Fi\u002Fgjq9\u002Fu6u+2LDXq2jshqLHNCgdsCVwO0NILdi0oDmuoAmoImhQDzFRPNnb36L7U43NVfc2EH2D9h5t9OePyIF5IU9uIhvkyN7iiXmQUIOj8x\u002FlB6f0bTaQ3ZA+9iaNCH2Lpg6btsBIRJOpJl0E9ABTvof5kqEGeCjMaN\u002FAnRMgM5XJcI2J1J1gf6S48Tb2Ae6JkAjdgmAeJ1XAOJ1Xg8wGJ6elXwAzkeGjy62BgxG3MuXnoCIkmEq8EQyAUPgajyhPxJAga9SIiRqzwMOuAbGZDrDjQRgKkpiqiPgFphM74B7d4BKy2cyy1RcBvSodUb\u002FHiSAIl+VlEfh8cm4wvPL9nnw+gbc+kkkUVioO95etwe8PBuP8vQoBzg7UQAe5t7syZwoCaMA3AN30wlzh3MYJYkkADeYTckYuJYlkiSVBeCKZtSY\u002FgxlqezlxEt+pdFg6zBesPXn1ih8Aj5vkAels9PhYCkPsl++kg0AQu4dyuqmugIQm+qS5Nv6N+D7wm7d1skPc4xu666Fhd6BxU6r+jub8tNaWNxK29EhsdpR\u002FsVn7FlLm0txPdgni+JrFNd3p+K67MQtyrsp3w2G7xbHd5Plv83z3Wj6b3V9N9ssFv7afaa\u002F\u002FZPn3wD4\u002Fvje8PP\u002FN7TebS0hgZhEAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTA4LTIyVDE3OjUyOjIyKzAyOjAwc2qUYAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0wOC0yMlQxNzo1MjoyMiswMjowMAI3LNwAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n  },\n  \"bordered\": false\n}\n```\n\n## Groups\n\n```js\n{\n  \"type\": \"group\",\n  \"align\": \"center\",\n  \"bordered\": true,\n  \"title\": \"stats\",\n  \"items\": [\n    { \"type\": \"play\" },\n    { \"type\": \"mute\" },\n    ...\n  ]\n}\n```\n\nTo close a group, use the button:\n\n```\n{\n  \"type\": \"close\",\n  \"width\": 64\n},\n```\n\n## Native plugins\n\n#### `cpu`\n\n> Shows current CPU load in percent, changes color based on load value. \n> Has lower power consumption and higher stability than the shell-based solution.\n\n```js\n{\n  \"type\": \"cpu\",\n  \"refreshInterval\": 3,\n  \"width\": 80\n}\n```\n\n#### `timeButton`\n\n> NOTE: Some values don't work properly: https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FList_of_time_zone_abbreviations\n\n> formatTemplate examples: https:\u002F\u002Fwww.datetimeformatter.com\u002Fhow-to-format-date-time-in-swift\u002F\n\n> locale examples: https:\u002F\u002Fgist.github.com\u002Fjacobbubu\u002F1836273\n\n```js\n{\n  \"type\": \"timeButton\",\n  \"formatTemplate\": \"dd HH:mm\",\n  \"locale\": \"en_GB\",\n  \"timeZone\": \"UTC\"\n}\n```\n\n#### `weather`\n\n> Provider: https:\u002F\u002Fopenweathermap.org \\\n> Note: Register at https:\u002F\u002Fopenweathermap.org to get your API key \\\n> Note: Wait for 20 minutes or so for Openweathermap to activate your API key.\\\n> Note: Enable MTMR in \"Location Services\" in the \"Security & Privacy\" System Preferences pane\n\n```js\n  \"type\": \"weather\",\n  \"refreshInterval\": 600, \u002F\u002F in seconds\n  \"units\": \"metric\", \u002F\u002F or imperial\n  \"icon_type\": \"text\", \u002F\u002F or images\n  \"api_key\": \"\" \u002F\u002F you can get the key on openweather\n```\n\n#### `yandexWeather` (experimental)\n\n> Provider: https:\u002F\u002Fyandex.ru\u002Fpogoda. One click to open up weather forecast in your browser. \\\n> Note: Enable MTMR in \"Location Services\" in the \"Security & Privacy\" System Preferences pane\n\n```js\n  \"type\": \"yandexWeather\",\n  \"refreshInterval\": 600 \u002F\u002F in seconds\n```\n\n#### `currency`\n\n> Provider: https:\u002F\u002Fcoinbase.com\n\n```js\n  \"type\": \"currency\",\n  \"refreshInterval\": 600, \u002F\u002F in seconds\n  \"align\": \"right\",\n  \"from\": \"BTC\",\n  \"to\": \"USD\",\n  \"full\": true \u002F\u002F £‣1.29$\n```\n\n#### `music`\n\n```js\n{\n  \"type\": \"music\",\n  \"align\": \"center\",\n  \"width\": 80, \u002F\u002F Optional\n  \"bordered\": false, \u002F\u002F Optional\n  \"refreshInterval\": 2, \u002F\u002F in seconds. Optional. Default 5 seconds\n  \"disableMarquee\": true \u002F\u002F to disable marquee effect. Optional. Default false\n},\n```\n\n#### `pomodoro`\n\n> Pomodoro plugin. One tap starts the work timer, long-press to start the rest timer. Tap an in-progress timer to reset.\n\n```js\n{\n  \"type\": \"pomodoro\",\n  \"workTime\": 1200, \u002F\u002F set time work in seconds. Default 1500 (25 min)\n  \"restTime\": 600 \u002F\u002F set time rest in seconds. Default 300 (5 min)\n},\n```\n\n#### `network`\n\n> Network plugin. The plugin to show network usage\n\n```js\n{\n  \"type\": \"network\",\n  \"flip\": true,\n  \"units\": \"dynamic\" \u002F\u002F or B\u002Fs, KB\u002Fs, MB\u002Fs, GB\u002Fs\n},\n```\n\n#### `dock`\n\n> Dock plugin\n\n```js\n{\n  \"type\": \"dock\",\n  \"filter\": \"(^Xcode$)|(Safari)|(.*player)\",\n  \"autoResize\": true\n},\n```\n\n#### `upnext`\n\n> Calendar next event plugin\nDisplays upcoming events from macOS Calendar.  Does not display current event.\n\n```js\n{\n  \"type\": \"upnext\",\n  \"from\": 0, \u002F\u002F Lower bound of search range for next event in hours.        Default 0 (current time)(can be negative to view events in the past)\n  \"to\": 12, \u002F\u002F Upper bounds of search range for next event in hours.        Default 12 (12 hours in the future)\n  \"maxToShow\": 3, \u002F\u002F Limits the maximum number of events displayed.          Default 3 (the first 3 upcoming events)\n  \"autoResize\": false \u002F\u002F If true, widget will expand to display all events. Default false (scrollable view within \"width\")\n},\n```\n\n\n\n## Actions:\n\n### Example:\n\n```js\n\"actions\": [\n  {\n    \"trigger\": \"singleTap\",\n    \"action\": \"hidKey\",\n    \"keycode\": 53\n  }\n]\n```\n\n### Triggers:\n\n- `singleTap`\n- `doubleTap`\n- `tripleTap`\n- `longTap`\n\n### Types\n\n- `hidKey`\n  > https:\u002F\u002Fgithub.com\u002Faosm\u002FIOHIDFamily\u002Fblob\u002Fmaster\u002FIOHIDSystem\u002FIOKit\u002Fhidsystem\u002Fev_keymap.h use only numbers\n\n```json\n \"action\": \"hidKey\",\n \"keycode\": 53,\n```\n\n- `keyPress`\n  > https:\u002F\u002Feastmanreference.com\u002Fcomplete-list-of-applescript-key-codes\n\n```json\n \"action\": \"keyPress\",\n \"keycode\": 1,\n```\n\n- `appleScript`\n\n```js\n \"action\": \"appleScript\",\n \"actionAppleScript\": {\n      \"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\",\n    \u002F\u002F \"filePath\" or \"base64\" will work as well\n },\n```\n\n- `shellScript`\n\n```js\n \"action\": \"shellScript\",\n \"executablePath\": \"\u002Fusr\u002Fbin\u002Fpmset\",\n \"shellArguments\": [\"sleepnow\"], \u002F\u002F optional\n\n```\n\n- `openUrl`\n\n```js\n \"action\": \"openUrl\",\n \"url\": \"https:\u002F\u002Fgoogle.com\",\n```\n\n## Additional parameters:\n\n- `width` restrict how much room a particular button will take\n\n```json\n  \"width\": 34\n```\n\n- `align` can stick the item to the side. default is center\n\n```js\n  \"align\": \"left\" \u002F\u002F \"left\", \"right\" or \"center\"\n```\n\n- `bordered` you can do button without border\n\n```js\n  \"bordered\": \"false\" \u002F\u002F \"true\" or \"false\"\n```\n\n- `background` allow to specify you button background color\n\n```js\n  \"background\": \"#FF0000\",\n```\nby using background with color \"#000000\" and bordered == false you can create button without gray background but with background when the button is pressed\n\n- `title` specify button title\n\n```js\n  \"title\": \"hello\"\n```\n\n- `image` specify button icon\n\n```js\n  \"image\": {\n    \u002F\u002FCan be either of those\n    \"base64\": \"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdB....\"\n    \u002F\u002For\n    \"filePath\": \"~\u002Fimg.png\"\n  }\n```\n\n- `matchAppId` displays the button only when active app's id matches given regexp\n\n```json\n  \"matchAppId\": \"Safari\"\n```\n\n\n## Troubleshooting\n\n#### If you can't open preferences:\n- Opening another program which can't edit text\n    1. Open Terminal.app\n    2. Put `open -a TextEdit ~\u002FLibrary\u002FApplication\\ Support\u002FMTMR\u002Fitems.json` command and press \u003Ckbd>Enter\u003C\u002Fkbd>\n\n\n#### Buttons or gestures doesn't work:\n- \"After the last update my mtmr is not working anymore!\"\n- \"Buttons sometimes do not trigger action\"\n- \"ESC don't work\"\n- \"Gestures don't work\"\n\nRe-tick or check a tick for access 🍏→ System Preferences → Security and Privacy → tab Privacy → Accessibility → MTMR\n\n## Credits\n\nBuilt by [@Toxblh](https:\u002F\u002Fpatreon.com\u002Ftoxblh) and [@ReDetection](http:\u002F\u002Fpatreon.com\u002FReDetection).\n\n[![Analytics](https:\u002F\u002Fga-beacon.appspot.com\u002FUA-96373624-2\u002Fmtmr?pixel)](https:\u002F\u002Fgithub.com\u002Figrigorik\u002Fga-beacon)\n","MTMR 是一款专为 MacBook Pro 设计的 Touch Bar 自定义应用。它允许用户通过创建插件来自定义 Touch Bar 的功能和外观，支持使用 AppleScript 进行深度定制，提供了一个直观的可视化编辑器（MTMR Designer）以简化配置过程。该软件采用 Swift 语言编写，具备良好的系统兼容性和稳定性。适用于希望根据个人需求或工作习惯来优化笔记本触摸条功能的 Mac 用户，无论是提升工作效率还是增加个性化元素都非常实用。",2,"2026-06-11 03:09:25","top_language"]