256 màu trong bảng điều khiển (tty)


11

Giả sử, tôi có một hệ thống mà không có X server. Tôi chỉ có thể đăng nhập từ bảng điều khiển. Có vẻ như, mặc định bảng điều khiển linux chỉ hỗ trợ 8 màu:

# tput colors
8

Có thể sử dụng 256 màu trong bảng điều khiển, giống như tôi sẽ sử dụng trong trình giả lập thiết bị đầu cuối (tức là terminator) không?

Trong khi googling, Ihave tìm thấy nhiều câu hỏi tương tự (nhiều câu hỏi trong số chúng trên 10 tuổi), nhưng không có câu trả lời rõ ràng. Ai đó đề nghị sử dụng bộ đệm khung, một số người khác đề nghị nối thêm đối số TERM vào tùy chọn khởi động kernel.

Hiện tại, tôi chỉ vượt qua một tùy chọn bổ sung là tham số khởi động kernel:

append="video=1280x720"

Tôi tin rằng việc vượt qua độ phân giải video chỉ hoạt động trong các nhân hiện đại có kernel mode settinghỗ trợ, nhưng tôi không chắc về điều đó.

Có thể sử dụng 256 màu trong bảng điều khiển linux hiện đại (tty)

Làm sao?

Tôi đang sử dụng Debian Wheezy với kernel 4.1

CẬP NHẬT:

dựa trên đề xuất từ ​​@muru, tôi đã thử fbterm. Trong khi nó hoạt động với 256 màu, nó có phông chữ rất xấu / bị cắt xén. Bên cạnh đó, có một con trỏ nhấp nháy liên tục ở góc dưới bên trái, mà tôi thấy mất tập trung.

Tôi có thể sử dụng 256 màu trong bảng điều khiển mà không cần fbterm / framebuffer không?

Giới hạn 8 màu trong bảng điều khiển đến từ đâu?



@muru - cảm ơn vì lời đề nghị. Tôi đã cập nhật câu hỏi của tôi.
Martin Vegter

Tất nhiên, nếu bạn thiết lập TERMđể xterm-256colorcho bàn giao tiếp Linux, bạn sẽ chỉ cần mở lên một lon sâu. Liên kết này cho một gợi ý.
Thomas Dickey

Câu trả lời:


2

Câu hỏi thực tế bao gồm hai mục này:

  • Tôi có thể sử dụng 256 màu trong bảng điều khiển mà không cần fbterm / framebuffer không?

  • Giới hạn 8 màu trong bảng điều khiển đến từ đâu?

Để đầu tiên: dường như không. Tất cả các phương pháp đề xuất sử dụng fbterm. Đến lần thứ hai: nó xuất phát từ mô tả thiết bị đầu cuối (còn gọi là "mục terminfo"). Đối với bảng điều khiển Linux, với TERMcài đặt là linux, thiết bị đầu cuối hỗ trợ 8 màu. Tput lấy thông tin từ cơ sở dữ liệu đầu cuối.

Một trong những mục trong luồng được trích dẫn nói rằng fbterm sử dụng các chuỗi thoát khác nhau để thiết lập màu so với xterm. Nếu đó là trường hợp (và đưa ra xu hướng của người dùng Emacs đối với những thứ mã hóa cứng), thì không có mục thiết bị đầu cuối phù hợp cho fbterm.


Linux kernel giả lập thiết bị đầu cuối đã đạt được một số hỗ trợ SGR bổ sung trong những năm gần đây: github.com/torvalds/linux/commit/... github.com/torvalds/linux/commit/... github.com/torvalds/linux/commit/...
JdeBP

chắc chắn - bạn có thể chưa đọc nhận xét đăng ký: Do giới hạn phần cứng của bảng điều khiển VGA, màu sắc * bị hạ cấp xuống 16 nền trước và 8 nền. Trên bảng điều khiển fbdev có thể hỗ trợ chúng mà không giảm chất lượng, nhưng thêm vào đó sẽ yêu cầu một số lượng mã khá lớn. *
Thomas Dickey

Tôi đã đọc bình luận, từ lâu, đó là lý do tại sao tôi viết rằng nó đã nhận được một số hỗ trợ SGR bổ sung . (-: Nhưng lưu ý rằng do đó không phải lúc nào cũng là giới hạn 8 màu như bạn đã viết năm 2016 tại đây.
JdeBP

Nó vẫn còn bảng cùng 8 ANSI và 8 đậm / sáng ANSI như đã được cho 25+ năm (và ncurses đã có một mục linux-16color kể từ năm 2009 ).
Thomas Dickey
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.