این ایده مدتی هست در سرم می‌چرخه که لیست نرم‌افزارهایی که در مک استفاده می‌کنم رو به اشتراک بگذارم.

شاید بشه گفت توصیف «خوره نرم‌افزار» توصیف بدی برام نباشه. اصلاً یکی از تفریحات من اینه که چند وقت یکبار می‌گردم ببینم چه نرم‌افزار «جالبی» هست که بتونم به سیستمم اضافه کنم. خیلی از این‌ها بعد از مدتی بلا استفاده می‌مونند و پاک می‌شن.

ولی بعضی‌هاشون هست که سال‌هاست کنارم موندن و با هم کار کردیم. یه سری‌هاشون رو هم قبلاً تو این پست‌ها نوشتم. ولی خیلی خلاصه‌وار تکرار می‌کنم.

بریم شروع کنیم.

Package Manager (Brew)

خیلی از نرم‌افزارها چند تا راه برای نصب‌شون هست و نصب از طریق Brew یکی از راه‌های مورد استفاده در مک هست. اسمش هم روشه Package Manager یا مدیر پکیج هست.

واقعاً هم به نظرم وظیفه سیستم‌عامل هست که داخل خودش پکیج منیجر داشته باشه.

Homebrew — The Missing Package Manager for macOS (or Linux)

بعد از نصب پکیج منیجر، نصب و آپدیت بقیه نرم‌افزارها از طریق این انجام میشه.

نرم‌افزارهای مدیریت زندگی

این دسته‌ از نرم‌افزارها به Productivity هم معروف هستند. چیزهایی که در حال حاضر من استفاده می‌کنم:

معمولاً عادت ندارم از اپ‌های داخل سیستم‌عامل استفاده کنم اما خب مک‌بوک انقدر تقویم خوبی داره که آدم لذت می‌بره. اینجا تنظیم کردم که قبل هر جلسه توی موبایل و لپ‌تاب نوتیف بیاد و اینها «تنها» نوتیف‌هایی هستند که من دریافت می‌کنم. یعنی حتی اگر کسی بهم پیامک بده هم نوتیف صدادار ندارم. نوتیف تقریباً همه اپلیکیشن‌ها رو عمداً بلاک کردم.

تقویم فارسی روزگار رو هم نصب کردم و همیشه تو منو بار بالای مک تاریخ امروز رو (هم شمسی و هم میلادی) جلوی چشمم دارم. خوبیش اینه که هم رویدادهای محلی رو داره و هم جلسه‌های امروزم رو می‌تونم در یک نگاه ببینم. حتی اگر بلیط قطار یا اتوبوسی هم داشته باشم اتوماتیک اینجا میاد (چون مستربلیط ایمیل می‌کنه برام و داخل ایمیل اطلاعات سفر رو می‌فرسته).

هیچ‌کدوم اینها هم پولی نیستن. برای تیک‌تیک هم اگر یک لینک Calendar از داخل تیک‌تیک بگیرید و داخل گوگل کلندر Import کنید دیگه عملاً نیازی به فیچر پولی تقویمش هم ندارید و تسک‌های داخل تیک‌تیک اتوماتیک توی کلندر هم میان.

brew install --cask obsidian
brew install --cask ticktick

Raycast

قطعاً اولین نرم‌افزار تو فهرست من Raycast خواهد بود. با زدن دکمه Command + Space (که ترکیب راحتی هست) پنجره این شکلی برام باز میشه.

اینجا می‌تونم کارهای زیر رو انجام بدم:

  • هر نرم‌افزاری رو بخوام باز کنم از اینجا امکان‌پذیره
  • هر فایلی رو بخوام جستجو کنم امکان‌پذیره
  • لینک‌ها و Snippet‌هایی که ذخیره کردم رو می‌تونم خیلی سریع ببینم
  • خودش ماشین حساب هم هست و اگر محاسبات و تبدیل واحد بخوایم انجام میده
  • حتی به عنوان Text Expander هم کاربرد داره (جایگزین Espanso)

چیزی که خیلی ازش استفاده می‌کنم ویژگی Clipboard History هست که تاریخچه‌ای از چیزهایی که تو یک ماه اخیر کپی کردم رو نگه می‌داره. ویندوز هم این ویژگی رو داره. نمی‌دونم چطور میشه بدون این فیچر با لپ‌تاب حرفه‌ای کار کرد اصلاً.

با این نرم‌افزار عملاً نیاز به نرم‌افزارهای Window Manager مثل Rectangle هم حذف میشه چون بصورت Built-in از قابلیت‌هاش پشتیبانی می‌کنه.

بهتر از همه اینها، تقریباً هر نرم‌افزاری که فکرشو بکنید با این نرم‌افزار Integrate میشه وExtension Store اش خیلی تکمیله. خلاصه به نظرم Spotlight خود مک در مقابل این نرم‌افزار هیچ حرفی برای گفتن نداره.

ویژگی دیگه‌ای که ازش زیاد استفاده کردم HotKeyهاش هست. مثلاً برای بازکردن Emojis از کلیدهای ترکیبی Command + ; استفاده می‌کنم. یا مثلاً یه لیست از چیزهای دم دستی برای کپی (مثل آدرس ایمیل و آدرس خونه یا لینک دائمی گوگل میتم) دارم که توی Snippets قراردادم.

چند تا ویدئو از قابلیت‌هاش از افرادی که دنبالشون می‌کنم:

brew install --cask raycast

FlashSpace

نرم‌افزار دوم Flashspace هست. عملاً یک Workspace Manager هست. فکر کنم اول باید توضیح بدم که مشکل چیه و چرا به همچین نرم‌افزار نیاز هست.

مسئله اینه که یه برنامه‌نویس مثل من در یک لحظه حدوداً ۱۰ ۱۲ تا برنامه باز داره. خیلی وقتا واقعاً هم کمتر نمیشه و آدم باید یک روش بهینه‌تر (به جای Command + Tab) داشته باشه. این ایده مدت‌ها تو ذهنم بود تا این که دیدم تو مک هم پیاده‌سازی شده. اصلاً یکی از دلایل مهاجرت من از ویندوز همین نداشتن این‌طور ویژگی‌ها و ترمینال بود.

بالا یک تصویر از تنظیماتش نشون دادم. عملاً با این روش من نرم‌افزارها رو به یک سری Workspace تقسیم کردم و برای هر «فضای کار» یک کلید میانبر تخصیص دادم. اینطوری تو بلندمدت سوییچ بین نرم‌افزارها ناخودآگاه میشه.

یعنی ذهن یاد می‌گیره که نرم‌افزار کدزنی با کلید میانبر Option + C میاد. مرورگر یا Browser همیشه با Option + B میاد. و خلاصه همه نرم‌افزاها این‌طوری با یک گروه‌بندی منطقی قابل دسترسی هستند.

این ایده رو هنگام کار کردن با لینوکس گرفتم. دیدم چقدر راحت بین برنامه‌هاشون سوییچ می‌کنند. این‌طوری صفحه آدم منظم‌تر هم میشه. اگر بهش فکر کنید ما در اکثر مواقع فقط «یک» اپلیکیشن باز رو بهش نیاز داریم. با این حال انقدر برنامه تو صفحه آدم باز هست که آدم حس شلوغی بهش دست میده.

اکثر برنامه‌نویس‌هایی که این کار رو نمی‌کنند، نهایتاً به راه‌حل‌هایی که شامل چند تا مانتیور میشن می‌رسن که به نظرم حواس آدم رو پرت می‌کنه. من دوست دارم در هر لحظه فقط یک پنجره رو بصورت Maximized ببینم.

برای این کار قبلاً از Aerospace استفاده می‌کردم که دیدم این راحت‌تر مشکلم رو حل کرده.

Flashspace Workspace Manager Config

GitHub - wojciech-kulik/FlashSpace: FlashSpace is a blazingly fast virtual workspace manager for macOS ⚡

اگر خواستید بیشتر ببینید:

brew install flashspace

ترمینال (Terminal)

برای شل (Shell) از ترکیب bash و zsh استفاده می‌کنم و فعلاً سمت شل‌های دیگه مثل fish نرفتم؛ چون همه جا نصب نشدند و ساپورت خوبی ندارند.

برای ترمینال قبلاً از iterm2 استفاده می‌کردم و مدتی هست که از Warp استفاده می‌کنم و راضیم. کارایی‌اش کمی بهتره و خوشگل‌تره.

اولین چیزی که تو ترمینال برام مهمه Theme زیباست. برنامه‌نویسه و یک ترمینال که بخش زیادی از عمرش اونجا سپری می‌شه. موندم چطوری خیلی‌ها با تم پیش‌فرض سر می‌کنند.

پس این دو تا بالایی رو همیشه نصب می‌کنم. معمولاً tmux رو هم نصب می‌کنم ولی اخیراً کمتر استفاده کردم.

brew install --cask iterm2
brew install --cask warp
brew install tmux

GitHub - gpakosz/.tmux: Oh my tmux! My self-contained, pretty & versatile tmux configuration made with 💛🩷💙🖤❤️🤍

مدیریت صفحه کلید

یکی از کارهایی که عادت به انجامش دارم اینه که کلیدهای پیش‌فرض صفحه کلید رو کاستوم کنم. مثلاً کلید Capslock که یکی از بی‌خاصیت‌ترین کلیدهای من بوده رو به یکی از پراستفاده‌ترین‌ها استفاده کردم. با زدن کلید Capslock انگار چهار تا کلید Command + Option + Ctrl + Shift رو با هم فشار دادم! این ترکیب تو هیچ‌نرم‌افزاری استفاده نمیشه، پس برای استفاده‌های متداول و روزمره خودم رزروش کردم☺️.

یا مثلاً صفحه کلید من ویندوزی هست و برای این که مثل صفحه‌کلید مک بشه، جای کلیدهای Option و Command رو عوض کردم.

برای این کار از نرم‌افزار Karabinar Elements استفاده می‌کنم. خلاصه کارش اینه که هر نوع Mapping برای هر کلیدی داخل کیبورد یا موس نیاز دارید داخل این به سادگی قابل تعریفه.

یکی دیگه از کاربردهاش اینه که اسکرول موس من خراب شده و تنظیم کردم که با کلیدهای کنار موس اسکرول انجام بشه.

brew install --cask karabiner-elements

قبلاً که اسکرول موسم کار می‌کرد برای این که اسکرول موس رو در مک تصحیح کنم، از این نرم‌افزار استفاده می‌کردم (مک یه باگی داره که نمیشه اسکرول موس رو جدا از اسکرول تاچ‌پد تعریف کرد و یکیش برعکسه). با این نرم‌افزار این مشکل حل میشه:

brew install --cask unnaturalscrollwheels

نرم‌افزارهای Code Editor

برای کدنویسی از ترکیب vscode و cursor استفاده می‌کنم. اخیراً kiro هم اشتراک رایگان سخاوت‌مندانه‌ای ارائه داده و به لیست ابزارهام اضافه شده ولی بعید می‌دونم بگذارم بمونه.

اینها هیچ‌کدوم نیاز به تعریف ندارند و اگر برنامه‌نویس باشید باهاشون آشنا هستید. قبلاً تو لیست برنامه‌هام PyCharm هم بود که به علت ضعیف‌بودن تو ویژگی‌های مبتنی بر AI کم‌کم کنارش گذاشتم.

brew install --cask visual-studio-code
brew install --cask cursor

نرم‌افزارهای کمکی Git

برای گیت با این که بلدم تو ترمینال باهاش کار کنم ولی خیلی وقت‌ها ترجیح میدم که با UI ببینم چه اتفاقی داره می‌افته و این‌طوری برام راحت‌تره.

اینه که سال‌هاست از کلاینت Fork (که نسخه ویندوز هم داره) استفاده می‌کنم. اخیراً هم سری به Lazygit زدم و اونم جالبه. البته داخل خود vscode هم Gitlens رو نصب دارم. ولی اون خیلی از ویژگی‌هاش پولیه و کافی نیست.

brew install --cask fork
brew install lazygit

بقیه نرم‌افزارهای مرتبط با کار

اگر سر و کارتون با داکر هم خورده باشه می‌دونید که داکر داخل دستکاپ مک بسیار بسیار افتضاح هست و عملکرد بدی داره. برای این قضیه یک جایگزین خیلی خوب به نام orbstack وجود داره. عملاً Drop-in Replacement هم هست و کار خاصی لازم نیست بکنید.

brew install --cask orbstack

از اونجایی که من با پایتون هم کار می‌کنم، نیاز به پکیج منیجر مخصوص پایتون هم دارم. زمانی از Miniconda استفاده می‌کردم. مدتی هم از Poetry. ولی نهایتاً دیدم هیچی بهتر از uv نیست. واقعاً از همشون یه سر و گردن بالاتره. هم مدیریت پکیج رو به سادگی انجام میده و هم چند تا نسخه پایتون رو بصورت همزمان ساپورت می‌کنه.

brew install uv

اگر سمت Backend هم بخواید کد بزنید، احتمالاً postman به گو‌ش‌تون خورده. ولی خب اذیت می‌کنه و خیلی وقته کند شده و تحریم و اینا هم غوز بالا غوز شده. اینجا حتماً Bruno رو پیشنهاد می‌کنم. خوبیش اینه که Git Friendly هم هست! اگر هم خواستید داخل سایت تست کنید که سایتی بهتر از httpie پیدا نمی‌کنید.

brew install bruno # alternative to postman, insomnia, 

مرورگرها

مرورگر رو داشت یادم می‌رفت. کمتر کسی رو پیدا می‌کنید که کروم رو نداشته باشه. من به شخصه Edge رو هم همیشه نصب می‌کنم و برام مهمه.

نرم‌افزار قندشکنم رو جوری تنظیم کردم که ترافیک عبوری از کروم کاملاً خارجی باشه و ترافیک عبوری از Edge همیشه از IP ایران استفاده کنه. به مرور فهمیدم این راه بهتر از اینه که هی قندشکن رو قطع و وصل کنم.

در مورد Edge بگم که واقعاً نرم‌افزار خوبیه؛ یعنی مایکروسافت بالاخره تونسته یه کار درست هم بکنه!

نرم‌افزارهای Media Player و Editor

برای مدیاپلیر سراغ IINA میرم. خدا یکی مدیاپلیر هم یکی. این نرم‌افزار تو مک خیلی عالیه. و همه فرمت‌های ویدئویی رو ساپورت می‌کنه و آدم راحت میشه. ظاهر جذاب و در عین حال ساده‌ای هم داره.

برای موزیک هم موقع کار کردن Spotify استفاده می‌کنم و آنلاین موزیک گوش می‌دم.

برای فشرده‌سازی فایل‌ها و ویدئوها هم از ffmpeg استفاده می‌کنم. نسخه دارای رابط گرافیکی‌اش میشه Handbrake. ولی همین ffmpeg کار من رو راه می‌اندازه.

brew install iina  # video player # utitlies -> Set as default
brew install --cask spotify
brew install ffmpeg

اگر بخوام پادکست ادیت کنم هم از Adobe Audition استفاده می‌کنم. و ادیت ویدئو هم قاعدتاً سراغ Final Cut Pro میرم. اینها رو معمولاً روی لپ‌‌تاب خودم نصب دارم که موقع ادیت راحت باشم.

بقیه نرم‌افزارها

چند تا دیگه نرم‌افزار هم هست که تو دسته‌های بالا جا نشدند.

اولیش نرم‌افزار Keka هست که کارش بازکردن فایل‌های فشرده شده و فشرده‌سازی هست.

brew install --cask keka
brew install unzip

دومی webp هست که بتونم عکس‌هام رو به جای jpg و png به این فرمت تبدیل کنم (فرمت بهتریه):

brew install webp
# cwebp test.jpg -o test.webp

سومیش Transmission هست که برای دریافت فایل‌های تورنت استفاده می‌کنم.

brew install --cask transmission

چهارم pearcleaner هست که برای حذف کامل اپلیکیشن‌ها استفاده می‌شه:

brew install pearcleaner

پنجم هم CleanShot X for Mac هست که برای اسکرین شات از صفحه استفاده می‌کنم. اسکرین‌شات‌های خود مک واقعاً خوب نیست و امکاناتی که می‌خوام رو نداره. اینه که برنامه جانبی نصب کردم.

ششم هم قندشکن من هست که می‌تونم کانفیگ‌های مختلفم رو داخلش بگذارم. مهم‌تر از اون مثل بقیه اپ‌ها هنگ نمی‌کنه. حالت تونل‌اش به خوبی کار می‌کنه و میشه برای برنامه‌های مختلف داخلش قاعده نوشت.

Clash Verge Rev

تعدادش خیلی شد! ولی نگاه که می‌کنم چند تا نرم‌افزار هست که تو انداختم و اسم‌شون رو اینجا نیاوردم. چیزهایی مثل ChatGPT و KeyClu و HomeRow و DropOver. اینها رو عمداً بیشتر توضیح ندادم. چون کمتر استفاده‌شون می‌کنم و ممکنه چند وقت دیگه حذف بشن!

مخزن گیت‌هاب من برای مدیریت نر‌م‌افزارها

ممکنه از زمانی که این پست رو می‌نویسم سال‌ها گذشته باشه و حوصله نداشته باشم آپدیتش کنم. اما یک جا هست که احتمالاً آپدیته و هر کاری انجام بدم داخلش می‌نویسم. اونم مخزن dotfiles گیت‌هابم هست. ساختارش خیلی بده و باید مرتبش کنم. ولی فعلاً تو پوشه مک‌بوک خیلی چیزها گذاشتم.

برای لینوکس و ویندوز هم که قبلاً استفاده می‌کردم کلی نرم‌افزار نوشتم ولی اون‌ها رو چندین ساله کنار گذاشتم و ممکنه دیگه فایده نداشته باشن.

می‌خواستم Extensionهای مرورگرهام رو هم بگم که دیدم دیگه خیلی شد :)) قبلاً یه چیزایی اینجا نوشتم ولی آپدیت نیست. حالا سرفرصت می‌نویسم.

امیدوارم که براتون مفید بوده باشه! امیدوارم سرتون رو درد نیاورده باشم. خوشحال میشم اگر شما هم از نرم‌افزار خاصی استفاده می‌کنید که دوستش دارید، اینجا برام بنویسید.