ابزار dontallow؛ راه حل سبکی برای بستن خودکار پاپآپ شبکه محلی در مکاوس — Show HN: Auto Dismiss Mac OS "Allow <app> to find devices on local networks?"
خلاصه
پروژه متنباز dontallow یک ابزار کوچک نوشته شده با Swift است که پاپآپ آزاردهنده Local Network در مکاوس را به طور خودکار رد میکند. این ابزار با صفر درصد مصرف پردازنده در حالت بیکاری اجرا شده و به حل مشکل مدیریت حافظه موقت مرورگرها کمک میکند.
برنامهنویسانی که از سیستمعامل macOS (نسخه Sequoia و بالاتر) استفاده میکنند، احتمالاً با پاپآپ آزاردهندهای که اجازه دسترسی برنامهها به شبکه محلی را میپرسد، آشنا هستند. این اخطار به دلیل نحوه مدیریت مسیرها در مرورگرهای مبتنی بر Chromium و فایلهای موقت، مکرراً ظاهر میشود. ابزار dontallow که توسط johncassil توسعه یافته، دقیقاً همین مشکل را هدف قرار داده است.
این ابزار چه مشکلی را حل میکند؟
مکاوس تصمیم مربوط به دسترسی شبکه محلی را به مسیر اجرای برنامه گره میزند. مرورگرهایی مثل Chrome یا Brave در هر بار اجرا، بسته خود را کپی میکنند و مسیر تغییر میکند، که باعث میشود مکاوس فکر کند با یک برنامه کاملاً جدید روبرو است. از آنجا که هیچ تنظیمات سیستمی برای غیرفعال کردن سراسری این پاپآپ وجود ندارد و دستورات tccutil نیز آن را پوشش نمیدهند، این ابزار کوچک وارد عمل میشود تا دکمه «Don't Allow» را به صورت خودکار و زیر یکچهارم ثانیه کلیک کند.
در یک نگاه
- نام پروژه: dontallow
- توسعهدهنده: johncassil
- زبان اصلی: Swift
- لایسنس: MIT
- وضعیت ستارهها: ۸ ستاره در گیتهاب
معماری و نحوه کارکرد فنی
این پروژه به زبان Swift نوشته شده و هیچ وابستگی خارجی (Dependency) ندارد و کل آن از یک فایل تشکیل شده است. نحوه کار آن به این صورت است:
- پنجره اخطار متعلق به فرآیند سیستمی
UserNotificationCenterاست. - dontallow یک ناظر دسترسی (Accessibility Observer) روی این فرآیند ثبت میکند.
- به محض ایجاد پنجره، متن آن را میخواند، شروط را بررسی میکند و دکمه «Don't Allow» را فشار میدهد.
- در صورت نیاز به کلیک واقعی، از کلیک سنتتیک روی مختصات دکمه استفاده میکند.
نحوه نصب و استفاده
برای نصب و راهاندازی این ابزار میتوانید از Homebrew استفاده کنید:
brew install johncassil/tap/dontallow
dontallow install
دستور install یک Launch Agent اختصاصی برای کاربر ایجاد میکند، آن را فعال کرده و تنظیمات Accessibility سیستم را باز میکند تا دسترسی لازم اعطا شود.
از طریق دستورات زیر میتوانید وضعیت را مدیریت کنید:
dontallow status: نمایش وضعیت ایجنت، حالت وقفه و لیست مجاز.dontallow pause [1h]: موقتاً متوقف کردن عملکرد برای بازههای زمانی مختلف.dontallow rules: رمزگشایی فروشگاه قوانین شبکه محلی سیستم و نمایش ردیفهای یتیم.dontallow uninstall: حذف و متوقف کردن کامل ایجنت.
دیدگاه جامعه هکرنیوز
در بحثهای هکرنیوز، توسعهدهندگان به این نکته اشاره کردند که چنین مشکلاتی ناشی از تصمیمات عجیبی در سطح سیستمعامل است که ای کاش خود اپل فلگی برای غیرفعال کردن آن میگذاشت. عدهای نیز ابراز خوشبینی کردند که ابزارهایی از این دست نمونه خوبی از حل سریع آزردگیهای روزمره مهندسان به شمار میروند.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل