Emacs'i güzelleştirmek istedim — terminalde 24 bit renk kullanımı
- Emacs topluluğu aktif durumda ve LSP aracılığıyla modern otomatik tamamlama ile satır içi tür denetimi özellikleri sunuyor.
- Grafik ortamında Emacs otomatik olarak 24 bit renkleri destekler, ancak terminalde durum böyle değildir.
ANSI kaçış kodları
- İlk donanım terminalleri birbiriyle uyumlu olmayan denetim kodları sunuyordu ve ANSI bunu standartlaştırdı.
- SGR (Select Graphics Rendition) aracılığıyla çeşitli karakter görüntüleme özellikleri ayarlanabilir.
3, 4 ve 8 bit renkler
- Renkler ilk eklendiğinde 8 temel renk vardı; daha sonra parlak renkler eklenerek toplam 16 renge çıkıldı.
- 1999'da Todd Larason, xterm'e 256 renk desteği ekleyen bir yama sundu.
24 bit renk desteği nereden geldi?
- 8 bit ve 24 bit renklerin uyumlu terminallere nasıl gönderileceği iyi belgelenmiştir.
- 70'lerdeki ANSI standartlaştırma süreci ve 90'lardaki ISO 8613-6 (ITU T.416) ile 38 ve 48, genişletilmiş ön plan ve arka plan renk modları olarak tanımlandı.
Terminfo
- Terminfo, terminal yetenekleri için bir veritabanı sağlar ve
TERM ortam değişkeni programlara hangi terminfo kaydını kullanacaklarını söyler.
xterm-256color ve xterm-direct, sırasıyla 256 renk ve RGB renklerini destekler.
TERM ayarı: noktalı virgül sorunu
- Birçok terminal yalnızca noktalı virgüllü sözdizimini desteklediği için
TERM değerinin doğru ayarlandığından emin olunmalıdır.
Emacs ayarları
- Emacs, truecolor desteğinin nasıl algılanacağını belgelendirir.
RGB, Emacs'in yerleşik renk özelliğidir ve önce setf24 ile setb24 dizelerini arar.
İç içe geçmiş terminaller
- Yaygın iş akışlarında birden fazla terminal iç içe kullanılır.
- Tüm katmanların 24 bit renkleri anlaması ve bunları doğru şekilde dönüştürmesi gerekir.
Grafik terminal emülatörü
- Çoğu terminal,
TERM için makul bir varsayılan değer ayarlar veya bunun üzerine yazılmasına izin verir.
ssh
ssh, TERM değerini uzak ana makineye iletir.
tmux
tmux içinde tmux-direct gibi bir TERM değeri ayarlanmalıdır.
GN⁺ görüşü
- Bu yazıdaki en önemli nokta, terminal ortamında da yüksek kaliteli renkler kullanmak isteyen kullanıcı talebi ve bunu mümkün kılan teknik gelişmelerdir.
- 24 bit renk desteği, geliştiricilerin daha iyi bir kullanıcı deneyimi sunmasını sağlayan önemli bir özelliktir; özellikle kod düzenleyicileri gibi araçlarda görsel kullanım rahatlığını büyük ölçüde artırır.
- Bu yazı, terminal ve Emacs kullanıcıları için ilgi çekici ve faydalı olacaktır; ayrıca terminal tabanlı çalışma ortamlarında da üstün bir görsel deneyim arayan kullanıcılara yararlı bilgiler sunar.
1 yorum
Hacker News görüşleri
Terminal uygulamalarının karmaşıklığı karşısında şaşkınlık ifade ediyor ve iTerm ile Kitty gibi terminal uygulamalarının geliştiricilerine teşekkür ediyor.
terminfoile eski usul telnet üzerinden HTTP veya SMTP bağlantı yöntemlerini karşılaştırarak, metin tabanlı arayüzlerin karmaşıklığına dikkat çekiyor.Kişisel olarak, her terminal uygulamasında 16 renk paletini ayarlamanın, uygulama tarafındaki terminal kodunu tam olarak doğru hale getirmekten daha kolay olduğunu düşünüyor.
.Xdefaultsdosyasında ve özel tema.eldosyalarında renkleri ayarlayan kod örnekleri sunuyor.lsçıktısı gibi şeylerin renklerinin de daha iyi hale geldiğini belirtiyor.Yazarın
export COLORTERM=truecolorayarını bilseydi daha iyi bir deneyim yaşayacağını tahmin ediyor.Emacs kullanırken mutlaka terminal kullanmak gerekmediğini; MacOS, Windows, X.org veya Wayland için "grafik" frontend'lerin kullanılabileceğini vurguluyor.
Bilişimin, 1970'lerin terminal emülatörleriyle editörlerini ve işletim sistemi sürümlerini kullanan üretim sistemleri yüzünden yönünü kaybetmiş olabileceğine dikkat çekiyor.
Emacs'ı Cool Retro Term ile daha havalı göstermek istediğini şaka yollu ifade ediyor.
Windows 10 komut isteminde standart ANSI escape sequence'ların çalıştığını ve 24 bit rengin de sorunsuz çalıştığını keşfediyor.
Emacs'ın vim/neovim ile karşılaştırıldığında GUI desteğinin birinci sınıf vatandaş gibi ele alınmasının en iyi yanı olduğunu söylüyor.
Renkleri minimum düzeyde kullanan bir Emacs yapılandırması kullandığı için bu özelliği kullanmayacağını söylerken, metni okumaktan büyük keyif aldığını ifade ediyor.
Standardın yüksek ücretlerin arkasına saklanmasının ve insanların satın almadan bu kadar dolambaçlı yollara başvurmak zorunda kalmasının gerçekten utanç verici olduğunu eleştiriyor.