mac etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
mac etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

macOS'ta Terminal Renklendirme

Mac'te Terminal Nasıl Renklendirilir? Zsh ile Prompt ve Dosya Renklerini Özelleştirme Rehberi

macOS Terminal uygulamasını daha okunabilir ve kişisel bir görünüme kavuşturmak için Zsh yapılandırmasını kullanabilirsiniz. 


Unix kabuğu (shell), siz ile macOS işletim sisteminin XNU ("X is Not Unix") isimli çekirdeği yani kernel olarak bilinen temel bileşeni arasında bir arayüz görevi gören bir komut satırı programıdır. 

Zsh (Z Shell), Unix ve Unix benzeri işletim sistemlerinde kullanılan, gelişmiş özelliklere ve genişletilebilirliğe sahip bir komut yorumlayıcısıdır. Bash gibi diğer sh (shell/kabuk) tiplerine göre daha gelişmiş fonksiyonlara sahiptir ve 2019 yılından beri macOS'un varsayılan shell uygulamasıdır.

Maalesef yapılandırılmamış olarak geldiği için renkler mevcut değildir. Kullanıcı adını, bilgisayar adını, çalışma dizinini ve dosya listesindeki renkleri birbirinden bağımsız şekilde özelleştirmek mümkündür.

1.  İhtiyacımız Olan Uygulamalar

Birçok uygulamayı daha rahat şekilde yüklemenizi sağlayan Homebrew yüklü değilse, tek komutla yükleyebilirsiniz:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Sonrasında şu komutlarla gerekli olabilecek (isteğe bağlı) uygulamaları yükleyin.

brew trust epk/epk brew install --cask epk/epk/font-sf-mono-nerd-font sublime-text brew install lsd fastfetch

2. Terminalde Dosya Renklerini Etkinleştirme

macOS'te ls komutunun renkli çıktı vermesini sağlamak için ~/.zshrc dosyanıza aşağıdaki satırları ekleyebilirsiniz:

export CLICOLOR=1
export LSCOLORS=ExGxFxdxCxDxDxxbaDecac
  • CLICOLOR=1: ls komutunda renkli çıktıyı etkinleştirir.

  • LSCOLORS: Dosya türlerinin ve dosya özelliklerinin hangi renklerle gösterileceğini belirler.

LSCOLORS değişkeni, dosya türleri için arka plan ve yazı rengi kombinasyonlarını tanımlar. Her iki karakterlik grup, ilgili kategori için bir renk kombinasyonunu temsil eder. Örneğin, ExGxFxdxCxDxDxxbaDecac farklı dosya türleri için renk atamaları içerir.

Ama benim önerim bunun yerine "lsd" isimli uygulamadır. Bu proje, renkler, simgeler, ağaç görünümü, daha fazla biçimlendirme seçeneği vb. gibi pek çok ek özelliğe sahip, GNU ls komutunun yeniden yazılmış bir sürümüdür. lsd'yi ls yerine kullanmak için gerekli tek şey alias ls=lsd bilgisini terminal her açıldığı zaman çalıştırılan .zshrc dosyasına Sublime Text (veya herhangi bir text editor) ile yüklemektir.

Dosya/Klasör ikonları için şu adımları izleyin:


Sonrasında ikonlara sahip ve renkli çıktı verebilen bir terminale sahip olacaksınız.

2. Terminal Prompt Renklerini Değiştirme

Terminalde komut yazdığınız satıra prompt denir. Kullanıcı adı, bilgisayar adı ve mevcut dizin bu satırda gösterilebilir.

Zsh'de %F{renk} ifadesi metnin rengini belirler; %f ise varsayılan renge dönüş yapar.

Örneğin:

PROMPT='%F{red}%n@%m%f %F{blue}%~%f %# '

Bu yapılandırmada:

  • %n: Kullanıcı adı

  • %m: Bilgisayar adı

  • %~: Mevcut dizin

  • #: Kök erişim izinli root kullanıcı

  • %:Kök erişim izni olmayan kullanıcı

  • %F{red} ve %F{blue}: İlgili metinlerin renkleri

  • %f: Renk biçimlendirmesini sonlandırır

Böylece kullanıcı adı ve bilgisayar adı kırmızı, çalışma dizini (path) ise mavi görünür.

3. ANSI Renk Kodlarıyla Daha Fazla Seçenek

Zsh, standart renk isimlerinin yanı sıra 0–255 arasındaki renk kodlarını da destekler. Bu sayede pembe, turuncu, mor ve turkuaz gibi daha fazla renk seçeneği kullanılabilir.

Örneğin:

PROMPT='%F{205}%n@%m%f:%F{blue}%~%f %# '

Burada 205 pembe tonlarından birini temsil eder. Benzer şekilde aşağıdaki renk kodlarını deneyebilirsiniz:

RenkKod
Turuncu208
Altın sarısı220
Mor141
Pembe205
Aqua45
Gökyüzü mavisi39
Turkuaz44
Lime118
Mercan209
Lavanta183

Terminal temasına ve renk paletine bağlı olarak aynı kod farklı görünebilir.

3. Prompt Renklerini Değişkenlerle Yönetme

Her renk değişikliğinde uzun bir PROMPT satırını düzenlemek yerine renkleri değişkenlerde tanımlayabilirsiniz.

Örneğin, kendi .zshrc dosyamdaki yapılandırma şu şekildedir:

# ile başlayan yorumlara izin ver
setopt interactivecomments

# Takma ad ekle
alias ls=lsd
# Terminal prompt renklendirme PROMPT_USER_COLOR=205 # pembe PROMPT_PATH_COLOR=blue PROMPT="%F{$PROMPT_USER_COLOR}%n@%m%f:%F{$PROMPT_PATH_COLOR}%~%f %# "

Siz de .zshrc dosyasına bu komutları eklemek isterseniz terminalde şunu çalıştırın.

subl .zshrc

Bu yapılandırmada kullanıcı adı ve bilgisayar adı pembe, mevcut dizin ise mavi görünür.

Değişken kullanmanın avantajı, renkleri tek bir noktadan yönetebilmenizdir. Örneğin kullanıcı adını turuncu yapmak için yalnızca PROMPT_USER_COLOR=208 yapmanız yeterlidir.

Bonus: Zsh Eklentileriyle Syntax Highlighting ve Otomatik Yükleme

Terminal renklerini yalnızca prompt ve dosya listesiyle sınırlamayıp, syntax highlighting (sözdizimi renklendirme) eklentisiyle elde edebiliriz.

Bonus: Zsh Eklentileriyle Syntax Highlighting ve Otomatik Yükleme

Terminalin renklerini özelleştirmenin bir başka yolu da Zsh eklentileri kullanmaktır. Örneğin, fast-syntax-highlighting yazdığınız komutları renklendirerek komutun geçerli olup olmadığını ve farklı bileşenlerini daha kolay ayırt etmenizi sağlar.

1. Eklenti ve completions dizinlerini oluşturma

Öncelikle Zsh yapılandırma dosyalarınızı ve eklentilerinizi düzenli tutmak için gerekli dizinleri oluşturabilirsiniz:

mkdir -p ~/.zsh/completions && mkdir -p ~/.zsh/plugins
  • ~/.zsh/completions: Özel komut tamamlama tanımlarını saklamak için kullanılır.

  • ~/.zsh/plugins: Üçüncü taraf Zsh eklentilerini saklamak için kullanılır.

  • mkdir -p: Dizinin kendisi veya üst dizinleri yoksa oluşturur; mevcut dizinler için hata vermez.

2. fast-syntax-highlighting kurulumu

fast-syntax-highlighting, terminalde yazdığınız komutların farklı bölümlerini renklendirir. Böylece komutları çalıştırmadan önce yazım hatalarını veya geçersiz ifadeleri fark etmek kolaylaşabilir.

Eklentiyi GitHub üzerinden klonlamak için:

git clone https://github.com/zdharma-continuum/fast-syntax-highlighting ~/.zsh/plugins/fast-syntax-highlighting

Bu komut eklentinin kaynak kodunu belirttiğiniz dizine indirir. Komutun çalışması için Git'in kurulu olması ve internet bağlantınızın bulunması gerekir.

3. Prompt renkleri ile syntax highlighting arasındaki fark

Prompt renkleri ile syntax highlighting aynı şey değildir:

  • Prompt renklendirme: Kullanıcı adı, bilgisayar adı ve çalışma dizini gibi bilgilerin rengini belirler.

  • Dosya renklendirme: CLICOLOR ve LSCOLORS gibi değişkenlerle ls çıktısındaki dosya ve dizinlerin görünümünü değiştirir.

  • Syntax highlighting: Komut satırına yazdığınız komutları, argümanları ve diğer ifadeleri renklendirir. Örneğin ls komutunun kendisi, git gibi komutlar.

  • Bu özellikleri birlikte kullanarak hem daha okunabilir hem de hataları daha kolay fark edebileceğiniz bir terminal ortamı oluşturabilirsiniz. Aşağıda gördüğünüz gibi bulunmayan komutlar kırmızı renk gösterirken, bulunan komutlarsa yeşil rengi gösteriyor.   

4. Eklentileri otomatik yükleme

İleride farklı eklenti ekleme ihtimaline karşı eklentileri .zshrc dosyasına ayrı ayrı eklemek yerine, uygun eklenti dosyalarını otomatik yükleyebilirsiniz: Aşağıdaki bilgileri .zshrc dosyasının sonuna ekleyin.

##### Third-party plugins #####

# Load all third-party Zsh plugins automatically
# e.g. fzf-tab interactive auto-completion menu, syntax highlighting..
for plugin in $ZSH_CONFIG_DIR/plugins/*/*.plugin.zsh(N); do
    source "$plugin"
done

Bu döngünün çalışma mantığı belirtilen dizinde bulunan bütün .zsh uzantılı dosyaları terminal açıldığı zaman yüklemektir.

5. Değişiklikleri Uygulama

~/.zshrc dosyasını düzenledikten sonra Terminal'i kapatıp açmanız gerekmez. Aşağıdaki komutla yapılandırmayı yeniden yükleyebilirsiniz:

source ~/.zshrc

Alternatif olarak, değişikliklerinizi denemek için doğrudan terminalde yeni bir PROMPT tanımlayabilirsiniz. Bu şekilde kalıcı yapılandırmanızı değiştirmeden farklı renk kombinasyonlarını test edebilirsiniz.

Örnek olması açısından:


Sonuç

macOS Terminal'i renklendirmek aslında sanıldığı kadar karmaşık değildir. Zsh'nin ve Brew'in özellikleriyle komut satırının görünümünü özelleştirebilirsiniz. Renkleri üzerinden yönetmek, farklı temaları denemeyi ve yapılandırmayı daha kolay hale getirir. Eğer macOS'u veya terminali daha fazla yapılandırma hakkında bilgilenmek istiyorsanız https://sglbl.notion.site/mac adresinde bulunan komut ve bilgilendirmeleri inceleyebilirsiniz.

Paylaş:

Ara