Trên khoảng thời gian dùng Linux của mình thì mình đã dùng qua khá nhiều các Terminal emulator khác nhau. Nhưng ko cái nào trong số đó giải quyết được hết vấn đề của mình. Hiện tại thì mình đang dùng thằng Kitty nhưng mà nó cũng có một số nhược điểm mà với một người bị OCD giai đoạn 1 như mình thì đôi khi cũng rất khó chịu, nhưng mà chúng ta đều biết rằng ở đời mất cái này thì sẽ được cái kia. Wait, ngược lại chứ nhỉ: được cái này thì mất cái kia, vì đôi khi ở đời mất cái này thì khả năng cao là mất luôn cái kia - nên là câu trên ko đọc ngược được. Anyway sau đây là mình sẽ liệt kê một số Terminal nổi bật ở Linux cũng như pros and cons của chúng để tiết kiệm thời gian nếu bạn định chọn một cái để stick.

info

  • Các bạn có thể vào link này để lướt qua tất cả các thể loại Terminal, thích cái nào thì pick cái đấy mà dùng. It's usually free!
  • Bài viết này chỉ nói về một vài cái terminal phổ biến nhất dành cho Linux, maybe cả MacOS vì 2 thằng này có họ, thường 1 terminal support Linux nhiều khả năng nó cũng support Mac luôn.
  • Performance sẽ có hệ số xếp hạng cao nhất, sau đó mới đến các tiêu chí khác. Thế nên những cái terminal mà viết bằng Typescript hay Javascript thì mình loại ngay từ vòng gửi xe ko có trong list này.

kitty

Kitty terminal một cross-platform terminal nhưng ko support Windows thì phải. Viết bằng Python là chính nhưng performance thì xếp vào hàng top đầu server - một cú vả vào mặt mấy ông tác giả của Rust-based hay C++ based terminal. Python không phế, tôi phế (trước hay chửi Python chạy chậm giờ thấy khốn nạn quá!!). Oke đây là môt số ưu nhược điểm của thằng kitty này:

  • Pros

    • Feature-rich: image background, multiplexing out-of-box, ...
    • Dùng box-drawing font riêng nên để vẽ mấy cái hộp thì khá ổn áp.
    • Performant
  • Cons: Thằng này chỉ có một điểm yếu (theo quan điểm của mình) đó là font bị cut-off và tác giả cũng nói luôn là "đó là tính năng ko phải bug nên bố m éo fix, closed!". Vậy nên nếu xác định dùng kitty thì bạn cần chuẩn bị một cái font monospace, và khi bạn đã có một cái monospace ưng ý rồi thì cũng ko có gì chắc chắn là font bạn sẽ bị cut-off ở kitty cả =)) Còn nếu bạn nghĩ đằng nào cũng bị cut-off thì bố éo thèm chọn monospace font nữa, ưng font nào thì t dùng font ấy, thì kitty cũng say éo với bạn: một là dùng monospace font, 2 là éo được dùng.

Wezterm

Wezterm là một Rust-based terminal, cross-platform supports cả Windows. Trong khoảng thời gian này (2024-03-04) tác giả cũng rất tích cực maintain project này (hình như vừa bị layoff thì phải - tại trước mình thấy link kêu gọi donate ở github). Anyway trước mình có khoảng thời gian dùng thằng này, khi làm việc ở công ty cũ và họ bắt mình phải sử dụng Windows (God Linux pls forgive me!) - mình dùng thằng này để sử dụng WSL của Windows, nếu phải dùng Windows thì thằng Wezterm này là top 1 (tất nhiên vẫn là theo quan điểm cá nhân của mình)

  • Pros:

    • Feature-rich ngang ngửa kitty
    • Font rendering khá đẹp, ko bị cut-off có thể tùy chỉnh sâu: thay đổi scale của các font cụ thể (ví dụ bạn dùng nerdfont để hiển thị các cái icon thì bạn có thể scale icon to lên hay nhỏ đi tùy ý)
    • Live-reloading config, config viết bằng lua (1 ngôn ngữ lập trình) nên tùy chỉnh được khá sâu (có thể tùy chọn GPU để render)
  • Cons: Performance ko ăn được kitty. Nghe khá buồn cười một Rust-based Terminal lại thua một cái Python-based Terminal về performance, nhưng mà đó là sự thật test trên con laptop của mình (Intel i5-10210U (8) @ 4.200GHz - RAM 20GB - GPU AMD 2GB). Cả kitty và wezterm đều support GPU rendering, nhưng mình thấy thằng kitty mượt hơn hẳn (nó cũng ăn ít RAM hơn thằng wezterm). Tác giả wezterm nên xem lại ko để bọn dùng kitty nó cười cho mang tiếng Rust-based =))

Alacritty

Alacritty cũng là một Rust-based terminal, cũng cross-platform support cả Windows. Trước mình có 1 khoảng thời gian ngắn sử dụng thằng này, lúc đấy nó được quảng cáo là terminal có hiệu năng tốt nhất + mang tiếng Rust-based nên tiếng càng đi xa > 51k stars trên github thời điểm hiện tại (2024-03-04). Nhưng mà mình ko dùng thằng này lâu rồi. Vì nó thiếu một vài tính năng mà mình rất cần, đây là pros and cons:

  • Pros:

    • Performant. Cũng Rust nhưng performance của thằng Alacritty mới là chuẩn Rust này.
    • Config đơn giản trước dùng .yml giờ thì dùng .toml thì phải
    • Đơn giản ko cầu kì phù hợp với minimalism (ko phải mình)
  • Cons:

    • feature-not-rich: mình đã nói ở trên là nó ko cầu kì đến mức nghèo nàn: ko support image background (trích lời tác giả: "t bỏ bao công sức để làm mấy cái feature hữu ích chứ, làm feature support image background cho mấy thằng wibu thì với t là phí thời gian" - oke actually tác giả ko nói câu đó nhưng mà ý ông ấy là vậy =)))
    • font rendering thì kém hơn cả thằng kitty, ko tự vá được font như thằng kitty thì phải (nôm na là bạn có thể chỉ định font khác để render các kí tự đặc biệt như SymbolNerdIcons để render icon...)

warning

OKe mấy cái trích dẫn lời tác giả là lời của mình đó, nhưng mà nó đúng là dựa trên ý của tác giả. Absolutely ko dùng chất kích thích khi viết bài này, mà red bull có coi là chất kích thích ko nhỉ?