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
1 | $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
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
1 | $ brew install zsh zsh-completions |
Oh-My-Zsh Kurulumu
1 | $ curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh |
Zsh ve Oh-My-Zsh Ayarları
Örnek olması açısından benim kulandığım zsh ayar dosyasını (~/.zshrc) paylaşıyorum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # Path to your oh-my-zsh installation. export ZSH=/Users/bhdrkn/.oh-my-zsh ZSH_THEME="bira" plugins=(git osx mvn node npm aws bower brew brew-cask cp docker git-extras git-flow gradle grunt gulp heroku macports colored-man-pages sudo vagrant z) # User configuration export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" # JAVA_HOME export JAVA_HOME=$(/usr/libexec/java_home) # ANDROID_HOME export ANDROID_HOME="/Users/bhdrkn/Development/android-sdk-macosx" source $ZSH/oh-my-zsh.sh # IP addresses alias ip="dig +short myip.opendns.com @resolver1.opendns.com" alias localip="ipconfig getifaddr en0" alias ips="ifconfig -a | grep -o 'inet6\? \(addr:\)\?\s\?\(\(\([0-9]\+\.\)\{3\}[0-9]\+\)\|[a-fA-F0-9:]\+\)' | awk '{ sub(/inet6? (addr:)? ?/, \"\"); print }'" |
- 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.
1 | $ brew cask install iterm2 |
Åž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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [user] name = Bahadir Akin email = bhdrkn@gmail.com [color] ui = auto [core] pager = less -FMRiX autocrlf = input excludesfile = /Users/bhdrkn/.gitignore_global editor = /usr/bin/vim [push] default = tracking [pull] rebase = true [branch] autoSetupRebase = always autoSetupMerge = always [alias] dag = log --graph --format='format:%C(yellow)%h%C(reset) %C(blue)\"%an\" <%ae>%C(reset) %C(magenta)%cr%C(reset)%C(auto)%d%C(reset)%n%s' --date-order lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%C reset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit |
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.
1 | $ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | set fileencodings=utf-8 set nocompatible filetype off " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' Plugin 'tpope/vim-sensible' Plugin 'scrooloose/nerdtree' map <C-e> :NERDTreeToggle<CR> Plugin 'tpope/vim-fugitive' Plugin 'tpope/vim-surround' Plugin 'the31k/vim-colors-tayra' " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required set background=dark colorscheme tayra set showcmd syntax on |
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:
1 | $ brew cask install caffeine |
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:
1 | $ brew cask install keka |
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:
1 | $ brew cask install diffmerge |
Diffmerge’i git ile de entegre etmeniz mümkün. Bunun için aÅŸağıdaki komutları çalıştırmalısınız.
1 2 3 4 5 | $ git config --global diff.tool diffmerge $ git config --global difftool.diffmerge.cmd "diffmerge \"\$LOCAL\" \"\$REMOTE\"" $ git config --global merge.tool diffmerge $ git config --global mergetool.diffmerge.trustExitCode true $ git config --global mergetool.diffmerge.cmd "diffmerge --merge --result=\"$MERGED\" \"$LOCAL\" \"$(if test -f \"$BASE\"; then echo \"$BASE\"; else echo \"$LOCAL\"; fi)\" \"$REMOTE\"" |
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:
1 | $ brew cask install spectacle |
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:
1 | $ brew cask install go2shell |
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:
1 | $ brew cask install franz |
6.8 FreeMind
FreeMind, mind-mapping aracı. Daha detaylı nasıl anlatabilirim bilmiyorum.
1 | $ brew cask install freemind |
6.9 MacDown
MacDown, Mac için geliÅŸtirilmiÅŸ Markdown editörü. Ücretsiz ve opensource… Kurulum için:
1 | $ brew cask install macdown |
6.10 Tomighty
Tomighty, mac için geliştirilmiş, güzel kullanışlı ve ücretsiz bir pomodoro saati.  Kurulum için:
1 | $ brew cask install tomighty |
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.