Yazılımcılar İçin Mac Kurulumu

Amazon’da çalışmaya başlayalı daha altı ay olmadı ama daha şimdiden Mac’ime iki kere sıfırdan kurulum yapmak zorunda kaldım. İlki tahmin edebileceğiniz gibi bilgisayarı ilk aldığımda oldu. Beni sinir edeni ikinci kurulum zaten, durduk yere bilgisayarım arızalandı, yeni makine verdiler sıfırdan tekrar kurulum yapmak durumunda kaldım. Neyi kurmuştum nasıl kurmuştum derken bir hayli zaman gidiyor. Bende bir daha başıma gelirse çok zaman kaybetmeyeyim diye bir blog yazısında hem kurulumları özetlemeye hemde neler kullandığımı anlatmaya karar verdim. Elimden geldiğince Amazon özelinde ya da Java özelindeki uygulamalardan kaçınıp, her yazılımcıya hitap edecek şekilde mac kurulumumu anlatmaya çalışacağım.

1. Homebrew

Mac için geliştirilmiş paket yönetim programı. Ubuntu da apt neyse mac içinde brew o. Sistemin olmazsa olmazı diyebilirim. Zaten paket yöneticileri insanların o kadar hoşuna gidiyor ki Windows için bile paket yöneticileri var.  Kurulum için

Kurulum sırasında sizden Xcode ile ilgili paketler yüklemenizi isteyebilir.

2. Zsh ve Oh-My-Zsh

İşerimi terminal üzerinden yapmayı seviyorum. Fakat Mac’in ne terminal uygulamasından ne de Bash’inden memnun değilim. Öyle her unix tabanlı komutu bilen bir guru olmadığımdan, zsh ve oh-my-zsh ikilisi bana komutları kullanmamda büyük kolaylık sağlıyor. Hemen hemen her unix komutu için otomatik tamamlama yapabiliyor. Bunun yanında Oh-My-Zsh hem tema olarak hem sağladığı pluginler olarak terminal kullanım keyfimi daha da arttırıyor. Mesela git plug’ini sayesinde, branch adını hatırlamak için ek bir komut çalıştırmak zorunda kalmıyorsunuz, git checkout diyip tab a bastığınızda sizin için otomatik tamamlayabiliyor. Aynı şekilde awscli plugin’ini yüklerseniz awscli üzerindeki tüm işlemlerde parametreleri otomatik tamamlayabiliyor. Buda kullanımınızı çok hızlandırıyor.

Zsh Kurulumu

Oh-My-Zsh Kurulumu

Zsh ve Oh-My-Zsh Ayarları

Örnek olması açısından benim kulandığım zsh ayar dosyasını (~/.zshrc) paylaşıyorum.

  • Burada plugins kısmında kendi yazılım geliştirmelerim sırasında kullandığım tüm eklentileri aktif ettim. Makinenize göre bu konsolunuzu yavaşlatabilir. Bende şu anda bir sorun olmadığından bunların hepsi aktif. Benzer plugin’lere bu sayfadan erişebilirsiniz.
  • ZSH_THEME kısmında ise yine oh-my-zsh ta tanımlı temalardan birini seçebilirsiniz. Burada şunu söyleyeyim, sadece komut satarızı bazlı renkler ve dizilişler buradan ayarlanıyor. Geri kalanını kullandığınız terminal programı üzerinden ayarlamalısınız.  Oh-my-zsh ta tanımlı temalara buradan erişebilirsiniz. Ben bira isimli temayı kullanıyorum.

3. Iterm2

Mac’te asıl yüklü olması gereken terminal uygulaması. Yüklemek için aşağıdaki komutu çalıştırmanız yeterli.

Şimdi bir kaç ufak ama olmazsa olmaz ayarımız var onları yapalım. Bunun için uygulamayı açıp, Preference‘ını açıyoruz. Ardından Profiles sekmesinden kendimize yeni bir profil yaratıyoruz. Daha sonra bu profili temamızı belirlerken de kullanacağız. Profilimizi seçip Other Actions…‘tan Set As Default diyoruz.

Ardından profilimiz seçiliyken, Terminal tabına geliyoruz. Burada Notifications ayarlarını değiştirip, sessiz uyarı vermesini sağlıyoruz. Bunun için Notifications altındaki tüm kutucukları işaretleyebilirsiniz. Böylelikle terminalde tab karakterine bastığımızda sinir bozucu ötme sesi duymayacağız. Yine aynı yerde Scrollback Buffer ayarı var. Bu sayfa geçmişini ne kadar tutacağını belirtiyor. Bunu da makinenizin durumuna göre ayarlayın. Ben 5 bin civarında bir değer veriyorum genelde.

Birde ben terminali genelde tam ekran kullanıyorum. Uygulamanında bu şekilde açılmasını istiyorum. Bunun için yine profilimiz seçiliyken, Window sekmesine geliyoruz. Burada Settings for New Windows bölümünün altında üç ayar var, Style, Screen ve Space. Bunları sırasıyla, Fullscreen, No Preference, Current Space olarak ayarlıyoruz.

Iterm2 için Tema Kurulumu

Zsh kurulumu sırasında bahsetmiştim, terminalde istediğiniz renkleri ayarlamak için hem shell’inizin temasını hem de terminal uygulamanızın temasını ayarlamanız gerekiyor. Şimdi sırada Item2’nin temalarını ayarlamak var. Tabi bu kısım tamamen sizin zevkinize kalmış.

Iterm2-color-schemes diye bir site yapmışlar. İstemediğiniz kadar farklı temayı burada bulabilirsiniz. Bu temaların kurulumu da bir hayli basit.

Paket halinde siteden indirin ve bir klasöre çıkartın. Çıkardığınız klasörün içerisinde, schemes isimli başka bir klasör daha olacak. Buradaki itermcolors uzantılı dosyaları iterm2’e göstererek temayı kullanmaya başlayabilirsiniz. Bunları iterm2’e göstermek için, yine Preference‘tan, yeni oluşturduğunuz profile geliyorsunuz. Yeni açılan tablar’dan Colors‘a geliyorsunuz. Sayfanın altında Load Preset var. Onu seçip Import‘u seçiyorsunuz. Sonrasında tek yapmanız gereken itermcolors uzantlı dosyaları seçmek. Bense genelde JetBrains Darcula (ne yazıkki link veremiyorum, sayfada arama yapmanız gerekiyor) renk şemasını kullanıyorum. Tahmin edebileceğiniz gibi Intellij ile uyumlu bir tema bu.

4. Git

Aslında git Mac ile yüklü geldiğinden opsiyonel bir kurulum. Fakat gelen versiyonu biraz eski oluyor. Ben yenilemeyi tercih ediyorum.

Bunun için  $ brew install git  komutunu çalıştırmanız yeterli.

Git Ayarları

Git’te ayarsız olmuyor tabiki. Önce örnek .gitconfig dosyasını paylaşıp, örnek dosya üzerinden anlatayım.

Bu ayarların hepsini konsol üzerinden yapmakta mümkün ama buradan yapmak çok daha kolay. Özet olarak bazı ayarlara deyinecek olursam:

  • core.excludesfile: Global gitignore dosyası olarak düşünebilirsiniz. Amazon’da genelde IDE bazlı dosyalar projenin .gitignore dosyasında yer almaz. Bu sebepten genelde global bir dosya kullanıyoruz.
  • push.default: “git push” dediğinizde default olarak nereye gönderileceği bilgisidir bu. Ben branch açarken genelde track ettiğim branch‘ide belirtiyorum. Kodu incelemeye gönderirken da bana kolaylık sağlıyor. Push dediğimde de takip ettiği branch‘e göndersin diye böyle ayarlıyorum.
  • pull.rebase: Temiz bir git deposu için rebase ağırlıklı işlem yapıyoruz. Buda onun için. Eğer yeni bir kod çekilecekse, benim değişikliklerimi yeni gelen kodun üzerine tekrar uygulasın diye bunu ekliyorum. Bunu eklemediğim taktirde her pull sırasında –rebase parametresini eklemem gerekiyor.
  • branch.autoSetupRebase: Bu da branch üzerinde pull aldığınızda, branchin rebase edilmesini sağlıyor. Mesela master’ı track eden bir branch açtınız. Pull çektiğinizde, master’daki (lokal master’ı track ediyorsanız local master’daki, origin’dekini track ediyorsanız origin’deki) değişiklikleri alıp, sizin değişikliklerinizi, masterdan gelenlerin üzerine uyguluyor. Yani git rebase <takip_ettiğiniz_branch> yerine git pull yazıyorsunuz.
  • branch.autoSetupMerge: Bu da yeni oluşturduğunuz branch’inizin otomatik olarak komutu çalıştırdığınız branch’i track etmesine yarıyor. Örneğin master branch’inde git checkout -b new-branch komutunu çalıştırırsanız. New-branch branch’i master branch’ini takip ediyor.
  • alias.dag ve alias.lg : Log’unuzu farklı şekilde görmenizi sağlayan iki farklı komut. Genelde git lg‘i kullanıyorum.

5. Text Editor Olarak Vim

Vim’de ya da Emac’ta geliştirme yapanları her zaman için özenmişimdir. Ama oturup öğrenecek kadar sabredememişimdir bir türlü. Yine de ucundan kıyısından kullanmak adına text editor olarak Vim kullanıyorum. Vim’de Mac’te hazır olarak geliyor. Ama versiyonu biraz eski. Beni ve kullandığım eklentileri çok etkilemediği için güncellemeye kalkmayacağım. Aynen kullanacağım.

Vundle Kurulumu

Bütüm modern Text Editor’lerde eklenti yüklemenizi kolaylaştıracak bir mekanizma olur. Vim’de de var. Hatta bir kaçtane var. Çok ustası olmadığım için hangisi iyi hangisi kötü gibi bir ayrıma giremiyorum. Vundle işimi gördüğümden bunu kullanmayı seçiyorum.

Komutunu kullanarak kurulumunu yapabilirsiniz. Kurulum için .vimrc dosyasında da değişiklikler yapmak gerekiyor.

Vim Ayarları

Git’e bile o kadar ayar yaptık, şimdi koskoca Vim’e ayar yapmadan olmaz tabi. Yine, tabii ki örnek .vimrc üzerinden gideceğiz.

Vundle ile ilgili ayarların nerede başladığı nerede bittiği nettir diye düşünüyorum. Bu sebepten kısaca kullandığım eklentilere geçmek istiyorum.

  • vim-sensible: Herkesin üzerinden hem fikir olduğu varsayılan ayarları sizin adınıza yapıyor.
  • nerdtree: Vim ile bütünleşik dosya gezgini. Atom’da ya da Sublime’da sol tarafta açık duran dar alan var ya. Onun gibi. Ama ayarlarda açılıp kapanmasını cntrl+e tuşlarına bağlamışım.
  • vim-fugitive: Vim üzerinden git komutlarını çalıştırmak için. Özellikle :Gblame çok işime yarıyor.
  • vim-surround: Belli Vim kısayollarıyla, otomatik olarak belli textleri sarmallamak için kullanılıyor. Örneğin String’iniz var ” ile sarmallayabiliyorsunuz.
  • vim-colors-tayra: Vim temasız olur mu? Tabi olmaz.

Bu ayarları yaptıktan sonra Vim’i ilk çalıştığınızda eklentiler yüklenmemiş olacak. Bundan dolayı bir değişiklik göremeyeceksiniz. Eklentileri yüklemek için Vim içerisinde :PluginInstall komutunu çalıştırmanız gerekiyor. Eğer daha fazla eklenti istiyorsanız VimAwesome, eğer daha fazla tema istiyorsanız VimColors sitelerinden faydalanabilirsiniz.

Alternatif olarak Atom kurmak isterseniz  $ brew cask install atom , sublime-text kurmak isterseniz de  $ brew cask install sublime-text  komutlarından faydalanabilirsiniz.

6. Uygulamalar

Şimdi gelelim diğer uygulamalara. Bu uygulamalar da genel olarak her yazılımcının ve hatta mac kullanıcısının işine yarayan uygulamalar olacak.

6.1 Caffeine

Mac’in zamansız uyumasından nefret eden biri olarak, ilk yüklediğim uygulamalardan biri Caffeine oluyor. Bilgisayarınızın uyumasını engelliyor. Özellikle şirket bilgisayarında, uykudan uyanmada şifre isteme ayarlarını değiştiremediğimden hayatımı kurtarıyor diyebilirim. Kurulum için:

6.2 Keka

Windows için WinRar neyse, mac için de Keka o benim gözümde. Her türlü paket açma ihtiyacınızı karşılıyor. Kurulum için:

6.3 Diffmerge

Terminali iyi hoş seviyorum dedim de terminalde yapmayı en sevmediğim iş, diff okumak ve merge etmek. Diffmerge bu iki ihtiyacımı da karşılıyor. Kurulum için:

Diffmerge’i git ile de entegre etmeniz mümkün. Bunun için aşağıdaki komutları çalıştırmalısınız.

Burdan sonra git mergetool ya da git difftool ile kullanabilirsiniz.

6.4 Spectacle

Windows’un heralde en özlediğim kısımlardan biri windows management’ı. Hani pencereyi sağa sola çekersiniz de otomatik ayarlar ya, işe o özellik mac’te yok. Spectacle ise o özelliği ücretsiz şekilde en iyi sağlayan uygulama. Ama sağa sola çekerek değil klavye kısa yollarıyla yapıyorsunuz. Yüklemek için:

6.5 Go2Shell

Go2Shell Finder ile gezinirken, bulunduğunuz dizinde terminal açmanızı sağlayan bir uygulama. Çok gerekli değil gibi duruyor ama yer yer çok kullanışlı olabiliyor. Eğer Iterm2 kurduysanız, yükledikten sonra Go2Shell’i açıp gerekli ayarları yapmayı unutmayın. Kurulum için:

6.6 CopyClip

CopyClip, listenin tek Freemium üyesi. Bir küçük reklam gösteriyor size ondan sonra istediğiniz gibi kullanabiliyorsunuz. Yaptığı ise, kopyalama geçmişinizi (text olarak) tutmak. Normalde 20 adet kopyalamanızı tutuyor. Daha da arttırabiliyorsunuz. Kurulum için sizeıApp Store’a alalım.

6.7 Franz

Franz ile Whatssapp’ınızı, Hangouts’unuzu, FB Messanger’ınızı, Slack grouplarınızı, Skype’ınzı ve HipChat’inizi tek bir uygulama üzerinden yönetebiliyorsunuz. Daha ne olsun. Kurulum için:

6.8 FreeMind

FreeMind, mind-mapping aracı. Daha detaylı nasıl anlatabilirim bilmiyorum.

6.9 MacDown

MacDown, Mac için geliştirilmiş Markdown editörü. Ücretsiz ve opensource… Kurulum için:

6.10 Tomighty

Tomighty, mac için geliştirilmiş, güzel kullanışlı ve ücretsiz bir pomodoro saati.  Kurulum için:

7. Genel Mac Ayarları

Bir iki tane de genel Mac ayarlarından bahsedip yazıyı kapayalım. Burada detaylı oradan oraya tıklayın gibi anlatmayacağım. Sadece öneri şeklinde olacak.

  • Kavye basım hızının arttırılması: Ne yazıkki varsayılanı çok yavaş. Ben sonuna kadar arttırıyorum. Aksi halde terminal kullanırken insana inme inebilir.
  • Docker ve Menu’nun gizlenmesi: Her iki yapıyı da sevsem de ikisine de çok nadiren işim düşüyor. Bu sebepten default olarak ikisini de gizliyorum.
  • Trackpad ve Dokunma ayarları: Varsayılan ayarlarda, trackpad dokunulduğunda, ‘click’ üretmiyor. Bunun değiştirilmesi bence kullanımı çok kolaylaştırıyor.
  • Sol Üst Köşenin Masaüstünü Göstermesi: Mac’in ‘Hot Corners’ özelliğinden yararlanarak, sol üst köşeyi masaüstünü gösterecek şekilde ayarlıyorum. Trackpad’ten falanda yapılabiliyor da bu benim daha rahatıma geliyor. Neden sol üst köşe derseniz, yazılım geliştirirken en az uğradığım nokta olduğundan orayı seçtim.