21 puan yazan GN⁺ 15 일 전 | 1 yorum | WhatsApp'ta paylaş
  • ~/.tmux.conf yapılandırma dosyasıyla tuş kısayolları, renkler, durum çubuğu ve fare davranışları serbestçe ayarlanabilir
  • Varsayılan Prefix tuşu C-b, C-a olarak değiştirilebilir; Caps Lock’u Ctrl olarak yeniden eşleyerek giriş verimliliği artırılabilir
  • Pencere bölme işlemi ", % yerine |, - tuşlarıyla daha sezgisel şekilde yapılabilir ve r tuşuyla yapılandırma dosyası anında yeniden yüklenebilir
  • Alt + yön tuşlarıyla panel geçişi, fare modunun etkinleştirilmesi ve pencere adının otomatik değiştirilmesinin kapatılmasıyla kullanım kolaylığı artar
  • Renkler, durum çubuğu, mesajlar ve kenarlıklar gibi görsel öğeler ayrıntılı biçimde özelleştirilerek tutarlı bir tema oluşturulabilir

tmux özelleştirmenin temel kavramları

  • tmux yapılandırma dosyası tmux.conf adını taşır; kullanıcının ana dizinindeki ~/.tmux.conf konumuna koyulursa kişisel ayarlar olarak uygulanır
    • Birden fazla kullanıcı tarafından paylaşılacaksa sistem genelindeki dizine koyulabilir; bu konum işletim sistemine göre değişir
    • Tam konum man tmux içindeki -f seçeneği açıklamasından öğrenilebilir
  • Yapılandırma dosyası düzenlenerek tuş kısayolları, renkler, durum çubuğu, fare davranışları vb. serbestçe değiştirilebilir

Daha az rahatsız eden bir Prefix tuşu ayarı

  • Varsayılan Prefix tuşu C-b, erişimi daha kolay olan C-a ile değiştirilebilir
    • C-a, bash içindeki “satırın başına git” komutuyla çakışabilir
    • Caps Lock tuşunu Ctrl olarak yeniden eşlemek, Prefix kombinasyonlarını girmeyi kolaylaştırabilir
  • Yapılandırma örneği şöyle:
    unbind C-b
    set-option -g prefix C-a
    bind-key C-a send-prefix
    
  • C-a C-a ile mevcut bash komutu yine kullanılabilir

Sezgisel pencere bölme komutları

  • Varsayılan bölme tuşları ", % yerine görsel olarak daha sezgisel |, - kullanılabilir
    • | yatay bölme, - ise dikey bölme olarak ayarlanır
    • Mevcut tuş atamaları kaldırılır
    bind | split-window -h
    bind - split-window -v
    unbind '"'
    unbind %
    

Yapılandırma dosyasını hızlıca yeniden yükleme

  • tmux.conf sık sık düzenleniyorsa bir kısayolla anında yeniden yüklenebilir
    • r tuşuna yapılandırma dosyasını yeniden uygulama komutu atanır
    bind r source-file ~/.tmux.conf
    

Hızlı panel geçişi

  • Alt (Meta) tuşu + yön tuşları ile Prefix olmadan paneller arasında geçiş yapılabilir
    • Alt-Left, Alt-Right, Alt-Up, Alt-Down ile sırasıyla geçiş sağlanır
    bind -n M-Left select-pane -L
    bind -n M-Right select-pane -R
    bind -n M-Up select-pane -U
    bind -n M-Down select-pane -D
    

Fare modunu etkinleştirme

  • Fareyle pencere seçme ve panel boyutu ayarlama mümkün olur
    • Varsayılan yaklaşım klavye odaklı olsa da ekip çalışmasında faydalıdır
    • Özellikle pair programming gibi durumlarda sık kullanılabilir
    set -g mouse on
    

Pencere adının otomatik değiştirilmesini kapatma

  • Elle verilen pencere adlarının komut çalıştırılırken otomatik olarak üzerine yazılmasını önler
    set-option -g allow-rename off
    

tmux’un görünümünü değiştirme

  • Renkler, durum çubuğu, mesajlar, panel kenarlıkları vb. ayrıntılı biçimde ayarlanabilir
    • Çeşitli görsel öğeleri yapılandırmak için STYLES bölümüne bakılabilir
    • Varsayılan terminal renkleri (red, yellow, black vb.) kullanılırsa tema ile doğal bir uyum sağlanır
    • 256 renk modu kullanıldığında colour0~colour256 belirtilebilir
  • Örnek yapılandırmada şu öğeler bulunur
    • Zil bildirimini kapatma**,** saat rengini yellow yapma**,** kopyalama modu stilini fg=black bg=red bold olarak ayarlama

    • Panel kenarlığı rengini red**,** etkin panel kenarlığını yellow yapma

    • Durum çubuğunu bottom konumuna alma**,** solda boşluk bırakma**,** sağda saati gösterme

    • Geçerli pencere stilini fg=black bg=red**,** normal pencere stilini fg=red bg=black yapma

      • Mesaj stilini fg=yellow bg=red bold olarak ayarlama
      • Bu ayarlar sayesinde tutarlı bir renk düzeni ve görsel ayrım sağlanabilir

Ek referanslar

  • Çeşitli tmux yapılandırma örnekleri GitHub’daki tmux.conf veya dotfiles depolarında bulunabilir
    • Reddit’teki /r/dotfiles, /r/unixporn da incelenebilir
  • Tüm yapılandırma GitHub dotfiles deposunda açık olarak paylaşılmıştır
  • Daha derinlemesine öğrenmek için tmux man sayfası ve tmux wiki’deki Configuring tmux bölümü önerilir
    • Bunlar en güncel özellikleri ve ayrıntılı seçenekleri kapsar
  • Terminal renk temasını doğrudan tasarlamak için Root Loops(https://rootloops.sh/) kullanılabilir
    • Kişiye özel terminal renk düzeni oluşturmayı destekler

1 yorum

 
GN⁺ 15 일 전
Hacker News yorumları
  • Eskiden tmux kullanıyordum ama Zellij'i keşfettikten sonra tamamen ona geçtim
    Sekme ve panel düzeni çok daha sezgisel, ayrıca fareyle kaydırma ve metin seçme rahat olduğu için kopyala-yapıştır daha kolay

    • Zellij indirme sayfası'na bakarken şunu düşündüm: keşke bağlantılarda buton kullanmasalar
      Buton bağlantılarında sağ tıklayıp kopyalama olmuyor ve erişilebilirlik açısından da iyi değil
    • Zellij'in tek ölümcül kusuru, ekrandan klavyeyle kopyala/yapıştır yapılamaması ve birden fazla pano arabelleğini desteklememesi
      tmux'ta bu özelliği 1-2 dakikada bir kullanıyorum; Zellij geliştiricileri veriyi editöre pipe etmeyi öneriyor ama bu sistem panosuyla uyumlu değil
      Bu yüzden sonunda tmux'a geri döndüm
    • Gömülü cihazlar kullanan biri olarak Zellij fazla büyük
      Zellij yaklaşık 50MB, tmux ise bağımlı kütüphaneler dahil yaklaşık 2MB; yani boyut farkı büyük
    • Son 2 haftadır zmx'i denedim; ufak bazı ekran yeniden çizim bug'ları var ama ghostty ile birlikte kullanımı oldukça rahat
    • Ben de Zellij'e geçip sonra tekrar tmux'a döndüm
      Zellij giderek şişmeye başladı ve rahatsız edici oldu; şimdi oturumları tmuxp ile kurup bağlantıyı autossh ile canlı tutuyorum, halimden çok daha memnunum
  • Tuş atamaları konusuna gelirsek, ^a screen'in, ^b ise tmux'un geleneği
    Birden fazla sistemi yöneten bir yöneticiysen varsayılan tuş haritasını öğrenmek önemli
    Kişisel olarak sadece renkleri, aktif panel arka planını, zaman damgalı saati ve fareyi etkinleştirmeyi değiştirdim; tuş atamaları aynı kaldı
    Alışınca varsayılanlar aslında daha rahat geliyor

  • Shift+Enter çalışmadığı için tmux'u bırakıp Zellij'e geçmiştim
    Ama Zellij bir panic crash yüzünden süreçleri düşürünce sonunda tekrar tmux'a döndüm
    Çözüm "bind-key -T root S-Enter send-keys C-j" oldu; bu issue'da buldum

    • Ben "bind -n S-Enter send-keys Escape '[13;2u'" ile çözdüm
      pi.dev extended-keys ayarı olmadığı konusunda uyarıyor ama gayet iyi çalışıyor
    • Sayende aradığım çözümü buldum
    • Multiplexer öldüğünde alt süreçlerin yaşamaya devam etmesinin mümkün olup olmadığını merak ediyorum
      tmux'ta sunucuyu kapatınca alt süreçlerin de temizlenmesi rahattı
    • Benim durumumda Shift+Enter çalışmıyor ama Option+Enter yeni satır giriyor (MacOS, Claude Code ortamı)
    • Yeni bir binding'den kaçınmak için \ + Enter kombinasyonu da kullanılabilir
  • tmux'un Control Mode'unu öğrendikten sonra tam bir oyun değiştirici oldu
    iTerm2'de tmux -CC çalıştırınca sekmeler, kaydırma, kopyala/yapıştır, kısayollar vb. terminale yerelmiş gibi çalışıyor
    Sekmeler de görsel olarak net biçimde görünüyor; özellikle yeni başlayanlar için çok faydalı

    • Bu özellik yüzünden Mac kullanıyorum. 10 yıldır Linux terminallerinde bunu yapan bir yer görmedim
    • Bende de -CC modu kusursuz çalışıyor
    • ghostty'de de çalışıp çalışmadığını merak ediyorum
    • Ancak şimdi -CC'nin ne yaptığını anladım
    • İnsanın ağzı açık kalıyor
  • tmux'ta Alt+rakam ile hızlı pencere geçişi kullanıyorum
    Örneğin bind-key -n M-1 select-window -t :1 gibi ayarlanabiliyor
    Alt-/ ile vi tarzı kopyalama modu da açılabiliyor
    Wayland ortamında wl-copy kullanarak fare sürüklemesiyle ya da y tuşuyla kopyalama yapılabiliyor
    Powerline tarzı bir tasarım da ekledim; bunun için powerline-fonts gerekiyor

  • tmux'u o kadar fazla özelleştirdim ki yeni bir sunucuya ssh ile bağlanınca temel kullanımı unutuyorum
    Şimdi varsayılan ayarlarla kullanıyorum. Yalnız fare kaydırma ayarını her seferinde değiştirmem gerekiyor

    • tmux, zsh vb. ayarları yönetmek için bir dotfiles deposu tutup tutmadığını sormuş
    • Bu biraz Emacs'ın laneti gibi. Sonsuza kadar özelleştirilebiliyor ama sonunda tamamen kendine özgü bir ortama dönüşüyor
      Bununla ilgili olarak The Lisp Curse diye bir kavram da var
    • Ben de aynı sorunu yaşadım; varsayılanları ezmeden sadece çakışmayan ayarlar ekleyerek çözdüm
      Mesela Ctrl-b'yi olduğu gibi bırakıp Ctrl-space'i ek kısayol olarak kullanıyorum
    • Emacs'ta da aynı şeyi yaşadım. Diskim bozulup özel ayarlarımı kaybettikten sonra neredeyse tamamen varsayılan duruma geri döndüm
    • Hatta “Claude, tmux ayarlarımı o sunucuya scp ile kopyala” diye şaka yapılacak noktaya geliyor
  • iTerm2'de tmux'un Control Mode'una hayran kaldım
    Yerel pencere yöneticisi olarak uzaktaki terminal pencerelerini kontrol edebiliyorsun
    ghostty'de de bu özelliğin uygulanması üzerinde çalışılıyor; o yüzden umutluyum

  • tmux'un varsayılan prefix tuşu (C-b) pek çok kişiye garip geliyor ama bana göre bu gariplik bir avantaj
    Yanlışlıkla basma ihtimali neredeyse yok
    Bölme komutları da bana sezgisel geliyor — % yatay çizgi, " ise dikey çizgi gibi hissettiriyor
    Ayarları yeniden yüklemeyi sadece başlarda sık yapıyordum; artık neredeyse hiç yapmıyorum

    • Ben de varsayılan prefix tuşunu seviyorum
      İstersen .tmux.conf içine
      unbind-key -T prefix C-b
      set-option -g prefix C-s
      
      ekleyebilirsin. Sadece yerelde kullanıyorsan çakışma derdin de olmaz
  • tmux'u seviyorum ama işin püf noktası, 400 satırlık bir ayar dosyası gerektirmesi
    Varsayılan hali kullanıcı dostu değil ama üstünde çok çalışınca gerçekten harika oluyor
    Ayar dosyam'a bakabilirsin

    • Ben hiçbir ayarı değiştirmedim ama yine de yeterince kullanılabilir buluyorum
      Gerekli olan sadece yaklaşık 9 kısayolu ezberlemekti
    • Ayar dosyamı her yerden wget ya da curl ile kolayca alabilecek şekilde koydum
      PowerShell sürümünü de eklemeyi düşünüyorum
    • Ben jcs'nin ayarlarını referans alıp sadece birkaç satır kopyaladım
      Sadece prefix binding'ini eski haline çevirdim
  • Geçmişte bir hafta sonu “tmux 2: mouse-free productivity” kitabını okumuştum; üretkenliğim üzerinde en büyük etkiyi yapan kitaplardan biri oldu
    Güncel sürümü de düzenli olarak güncelleniyor → tmux 3: productive mouse-free development

    • Yalnız kitapta tmux'un yaratıcısı ya da kökeni hakkında hiçbir şey geçmemesi biraz üzücüydü
    • Güzel referans kitap önerisi için teşekkürler