brew install --cask mtmrفي التثبيت الأول ، تحتاج إلى السماح بالوصول إلى MTMR في إمكانية الوصول إلى خلاف ذلك أزرار مثل ESC و Volume و Brightness ومفاتيح النظام الأخرى.

؟ → تفضيلات النظام ← الأمان والخصوصية ← خصوصية علامة التبويب ← إمكانية الوصول ← MTMR
الإعدادات المسبقة MTMR

يتم تخزين تفضيلات MTMR في ~/Library/Application Support/MTMR/items.json .
يحتوي التكوين المثبت مسبقًا على أقل أو أكثر مما تريد ، حاول التكوين:
أزرار
الإضافات الأصلية
مفاتيح الوسائط
ملحقات Applescript
أزرار مخصصة
بشكل افتراضي ، يمكنك تمكين الإيماءات الأساسية من قائمة التطبيق (شريط الحالة -> أيقونة MTMR -> إيماءات الصوت/السطوع):
يمكنك إضافة إجراءات مخصصة لسيارات إصبع اثنين/ثلاثة/أربعة. للقيام بذلك ، تحتاج إلى استخدام نوع swipe :
"type" : " swipe " ,
"fingers" : 2 , // number of fingers required (2,3 or 4)
"direction" : " right " , // direction of swipe (right/left)
"minOffset" : 10 , // optional: minimal required offset for gesture to emit event
"sourceApple" : { // optional: apple script to run
"inline" : " beep "
},
"sourceBash" : { // optional: bash script to run
"inline" : " touch /Users/lobster/test "
} يمكنك إنشاء أكبر عدد ممكن من الكائنات swipe في الإعداد المسبق كما تريد.
staticButton "type" : " staticButton " ,
"title" : " esc " ,appleScriptTitledButton {
"type" : "appleScriptTitledButton" ,
"refreshInterval" : 60 , //optional
"source" : {
"filePath" : "~/Library/Application Support/MTMR/iTunes.nowPlaying.scpt" ,
// or
"inline" : "tell application "Finder"rif not (exists window 1) thenrmake new Finder windowrset target of front window to path to home folder as stringrend ifractivaterend tell" ,
// or
"base64" : "StringInbase64"
} ,
}ملاحظة: يمكنك تغيير أيقونة applescripttiTledButton من خلال اتباع هذه الخطوات:
alternativeImages{"TITLE", "IMAGE_LABEL"}IMAGE_LABEL في حقل alternativeImagesمثال:
{
"type" : "appleScriptTitledButton" ,
"source" : {
"inline" : "if (random number from 1 to 2) = 1 thenntset val to {"title", "play"}nelsentset val to {"title", "pause"}nend ifnreturn val"
} ,
"refreshInterval" : 1 ,
"image" : {
"base64" : "iVBORw0KGgoAAAANSUhEUgA..."
} ,
"alternativeImages" : {
"play" : {
"base64" : "iVBORw0KGgoAAAANSUhEUgAAAAAA..."
} ,
"pause" : {
"base64" : "iVBORw0KGgoAAAANSUhEUgAAAIAA..."
}
}
} , shellScriptTitledButtonملاحظة: قد يستخدم البرنامج النصي أيضًا تسلسل الهروب لإرجاع الألوان (اقرأ https://misc.flogisoft.com/bash/tip_colors_and_formatting لمزيد من المعلومات) "16 ألوان" هو الوضع الوحيد المدعوم في الوقت الحالي. سوف تضع الأزرار لون الخلفية الخاص بها على اللون الذي تم إرجاعه.
مثال على زر "تحميل وحدة المعالجة المركزية" والذي يغير أيضًا اللون استنادًا إلى قيمة التحميل (ملاحظة: يعمل المكون الإضافي cpu الأصلي بشكل أفضل):
{
"type" : "shellScriptTitledButton" ,
"width" : 80 ,
"refreshInterval" : 2 ,
"source" : {
"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}'"
} ,
"actions" : [
{
"trigger" : "singleTap" ,
"action" : "appleScript" ,
"actionAppleScript" : {
"inline" : "activate application "Activity Monitor"rtell application "System Events"rttell process "Activity Monitor"rtttell radio button "CPU" of radio group 1 of group 2 of toolbar 1 of window 1 to perform action "AXPress"rtend tellrend tell"
}
}
] ,
"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"
} ,
"bordered" : false
} {
"type" : "group" ,
"align" : "center" ,
"bordered" : true ,
"title" : "stats" ,
"items" : [
{ "type" : "play" } ,
{ "type" : "mute" } ,
...
]
}لإغلاق مجموعة ، استخدم الزر:
{
"type": "close",
"width": 64
},
cpuيعرض تحميل وحدة المعالجة المركزية الحالية في المئة ، وتغيير اللون بناءً على قيمة الحمل. لديه انخفاض استهلاك الطاقة والاستقرار أعلى من الحل القائم على الصدفة.
{
"type" : "cpu" ,
"refreshInterval" : 3 ,
"width" : 80
} timeButtonملاحظة: بعض القيم لا تعمل بشكل صحيح: https://en.wikipedia.org/wiki/list_of_time_zone_abbreviations
أمثلة formattemplate: https://www.dateTimeFormatter.com/how-to-format-date-tim-in-swift/
أمثلة موضعية: https://gist.github.com/jacobbubu/1836273
{
"type" : "timeButton" ,
"formatTemplate" : "dd HH:mm" ,
"locale" : "en_GB" ,
"timeZone" : "UTC"
} weatherمزود: https://openweathermap.org
ملاحظة: سجل على https://openweathermap.org للحصول على مفتاح API الخاص بك
ملاحظة: انتظر لمدة 20 دقيقة أو نحو ذلك حتى يقوم OpenWeatherMap بتنشيط مفتاح API الخاص بك.
ملاحظة: تمكين MTMR في "خدمات الموقع" في جزء تفضيلات نظام "الأمان والخصوصية"
"type" : "weather" ,
"refreshInterval" : 600 , // in seconds
"units" : "metric" , // or imperial
"icon_type" : "text" , // or images
"api_key" : "" // you can get the key on openweather yandexWeather (تجريبي)مزود: https://yandex.ru/pogoda. نقرة واحدة لفتح توقعات الطقس في متصفحك.
ملاحظة: تمكين MTMR في "خدمات الموقع" في جزء تفضيلات نظام "الأمان والخصوصية"
"type" : "yandexWeather" ,
"refreshInterval" : 600 // in seconds currencyمزود: https://coinbase.com
"type" : "currency" ,
"refreshInterval" : 600 , // in seconds
"align" : "right" ,
"from" : "BTC" ,
"to" : "USD" ,
"full" : true // £‣1.29$ music {
"type" : "music" ,
"align" : "center" ,
"width" : 80 , // Optional
"bordered" : false , // Optional
"refreshInterval" : 2 , // in seconds. Optional. Default 5 seconds
"disableMarquee" : true // to disable marquee effect. Optional. Default false
} , pomodoroPOMODORO البرنامج المساعد. يبدأ TAP واحد مؤقت العمل ، والضغط الطويل لبدء مؤقت REST. اضغط على مؤقت قيد التنفيذ لإعادة تعيينه.
{
"type" : "pomodoro" ,
"workTime" : 1200 , // set time work in seconds. Default 1500 (25 min)
"restTime" : 600 // set time rest in seconds. Default 300 (5 min)
} , networkالبرنامج المساعد الشبكة. البرنامج المساعد لإظهار استخدام الشبكة
{
"type" : "network" ,
"flip" : true ,
"units" : "dynamic" // or B/s, KB/s, MB/s, GB/s
} , dockPlugin Dock
{
"type" : "dock" ,
"filter" : "(^Xcode$)|(Safari)|(.*player)" ,
"autoResize" : true
} , upnextيعرض المكون الإضافي للتقويم التالي الأحداث القادمة من MacOS Calendar. لا يعرض الحدث الحالي.
{
"type" : "upnext" ,
"from" : 0 , // Lower bound of search range for next event in hours. Default 0 (current time)(can be negative to view events in the past)
"to" : 12 , // Upper bounds of search range for next event in hours. Default 12 (12 hours in the future)
"maxToShow" : 3 , // Limits the maximum number of events displayed. Default 3 (the first 3 upcoming events)
"autoResize" : false // If true, widget will expand to display all events. Default false (scrollable view within "width")
} , "actions" : [
{
"trigger" : "singleTap" ,
"action" : "hidKey" ,
"keycode" : 53
}
]singleTapdoubleTaptripleTaplongTaphidKeyhttps://github.com/aosm/iohidfamily/blob/master/iohidsystem/iokit/hidsystem/ev_keymap.h أرقام فقط
"action" : " hidKey " ,
"keycode" : 53 ,keyPresshttps://eastmanreference.com/complete-list-of-applescript-key-codes
"action" : " keyPress " ,
"keycode" : 1 ,appleScript "action" : "appleScript" ,
"actionAppleScript" : {
"inline" : "tell application "Finder"rif not (exists window 1) thenrmake new Finder windowrset target of front window to path to home folder as stringrend ifractivaterend tell" ,
// "filePath" or "base64" will work as well
} ,shellScript "action" : "shellScript" ,
"executablePath" : "/usr/bin/pmset" ,
"shellArguments" : [ "sleepnow" ] , // optionalopenUrl "action" : "openUrl" ,
"url" : "https://google.com" , width تقيد مقدار الغرفة التي سيستغرقها زر معين "width" : 34align يمكن أن تلتصق العنصر على الجانب. الافتراضي هو المركز "align" : "left" // "left", "right" or "center"bordered يمكنك القيام بالزر بدون حدود "bordered" : "false" // "true" or "false"background تسمح بتحديد لون خلفية الزر "background" : "#FF0000" ,باستخدام الخلفية مع اللون "#000000" وتحديدها == خطأ يمكنك إنشاء زر بدون خلفية رمادية ولكن مع الخلفية عند الضغط على الزر
title تحديد العنوان الزر "title" : "hello"image تحديد زر زر "image" : {
//Can be either of those
"base64" : "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdB...."
//or
"filePath" : "~/img.png"
}matchAppId الزر فقط عند تطابق معرف Active App الخاص بـ REGEXP "matchAppId" : " Safari " open -a TextEdit ~/Library/Application Support/MTMR/items.json الأمر واضغط على Enter أعد العذبة أو التحقق من علامة للوصول؟ ← تفضيلات النظام ← الأمان والخصوصية ← علامة التبويب خصوصية ← إمكانية الوصول
بنيت بواسطة toxblh و @redetection.