Terminal'i Güzelleştirmek: Alacritty + Starship

Bir geliştirici olarak gün içinde saatlerinizin büyük bölümünü terminalde geçirirsiniz. Bu nedenle terminali hem görsel hem de işlevsel açıdan optimize etmek, üretkenliğinizi ve motivasyonunuzu doğrudan etkiler. Bu yazıda GPU hızlandırmalı terminal emülatörü Alacritty ve son derece özelleştirilebilir kabuk istemi (shell prompt) Starship ile kurduğum konfigürasyonu paylaşıyorum.

Neden Alacritty?

Alacritty, OpenGL tabanlı GPU hızlandırma kullanan minimal bir terminal emülatörüdür. Elektron tabanlı alternatiflerin aksine son derece hafiftir ve gecikme süresi (latency) açısından mükemmel bir performans sunar. Yerleşik sekme (tab) desteği yoktur; bu sizi tmux veya zellij gibi çoklayıcılarla çalışmaya yönlendirir; ki bu aslında daha esnek bir yaklaşımdır. Konfigürasyon TOML formatında tutulur ve versiyon kontrolüne kolayca alınabilir.

# alacritty.toml
[window]
padding = { x = 12, y = 12 }
decorations = "buttonless"
opacity = 0.95

[font]
normal = { family = "JetBrainsMono Nerd Font", style = "Regular" }
size = 14.0

[colors.primary]
background = "#0d0d1a"
foreground = "#e2e8f0"

Starship ile Akıllı Prompt

Starship, Rust ile yazılmış çok hızlı bir shell prompt'udur. Bash, Zsh, Fish ve PowerShell dahil pek çok kabuğu destekler. Aktif git dalını, Rust sürümünü, Node.js versiyonunu, çalıştırma süresini ve daha fazlasını otomatik olarak algılar ve görüntüler. Yapılandırma ~/.config/starship.toml dosyasında tutulur.

# starship.toml
format = """
[┌─](bold purple)$directory$git_branch$git_status
[└─](bold purple)$character"""

[directory]
style = "bold cyan"
truncation_length = 3

[git_branch]
symbol = " "
style = "bold purple"

[character]
success_symbol = "[❯](bold green)"
error_symbol = "[❯](bold red)"

Nerd Fonts

Starship'in ikonları doğru görüntülemesi için bir Nerd Font kurmanız gerekir. Ben JetBrainsMono Nerd Font kullanıyorum. nerdfonts.com üzerinden indirip sisteminize yükleyebilirsiniz. Ardından Alacritty konfigürasyonundaki font ailesini bu değere güncelleyin.

tmux ile Birleştirme

Alacritty'nin sekme desteği olmadığından tmux zorunlu bir bileşen haline gelir. tmux prefix tuşunuzu Ctrl+Space olarak ayarlamak vim benzeri hareketlere çok daha doğal hissettirir. ~/.tmux.conf dosyasına şu satırları ekleyerek temel bir başlangıç yapabilirsiniz:

set -g prefix C-Space
unbind C-b
bind C-Space send-prefix

# Pencere bölme kısayolları
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"

# Vi navigasyonu
setw -g mode-keys vi

Sonuç

Alacritty + Starship + tmux üçlüsü, son derece hızlı, görsel olarak tatmin edici ve tamamen özelleştirilebilir bir terminal ortamı oluşturur. Tüm konfigürasyon dosyalarınızı dotfiles reposunda saklayarak yeni bir makineye geçişte dakikalar içinde aynı ortamı yeniden kurabilirsiniz. Bu yatırımın getirisi çok yüksektir.

Terminale harcanan her dakika, daha sonra kazanılacak saatlerin temelidir.