Theo mặc định, cấu hình ncurses6 được bật --enable-ext-colors
. Bạn cũng cần --enable-widec
(nếu không, loại cchar_t
lưu trữ màu mở rộng không được sử dụng). Các kịch bản cấu hình cảnh báo về vấn đề này:
checking if you want to use extended colors... yes
configure: WARNING: This option applies only to wide-character library
Giả sử bạn xây dựng các thư viện với màu sắc kéo dài (và ký tự rộng), nó là khả năng hiển thị lên đến 256 màu sắc và lên đến 32.767 cặp màu (giá trị lớn nhất trong số 16 bit đã ký). Sau đó, nó phụ thuộc vào mô tả thiết bị đầu cuối mà bạn đang sử dụng (và bộ mô phỏng đầu cuối). Phần lớn các trình giả lập thiết bị đầu cuối chạy trong X Windows có thể hiển thị 256 màu. Bên ngoài X, không rõ là có đa số.
ncurses có hợp lý giới thiệu thiết bị đầu cuối chính xác cho mỗi trong số này (và không có, sử dụng TERM=xterm-256color
không phải là câu trả lời cho mỗi, vì các phím đặc biệt và các đặc điểm khác thường khác với xterm: FAQ Why not just use TERM set to "xterm"? cũng áp dụng cho xterm-256color
).
Dưới đây là một bức ảnh chụp xterm
chạy chương trình ncurses
thử nghiệm (từ ncurses-examples) cho màu sắc rộng:
Nguồn
2015-11-30 01:16:35
Đây không phải là những gì tôi hỏi về. Tôi biết rằng có 32k kết hợp màu sắc, đây không phải là câu hỏi về điều đó. Đó là một câu hỏi về biến COLOR_PAIRS, trong đó xác định có bao nhiêu cặp màu khác nhau được hỗ trợ. Mặc định là measly 256, và tôi đọc ở đâu đó rằng nó có thể được đặt thành 32k, nhưng tôi không biết làm thế nào. – redspah
@redspah: Đọc lại câu trả lời này. –
@LightnessRacesinOrbit Lemme cố gắng giải thích bản thân mình một lần nữa. Đây không phải là một câu hỏi về các cặp màu sắc có thể tự, đó là về việc tăng kích thước của bộ đệm chứa cặp được xác định với init_pair(). Ngay bây giờ, nó được đặt thành 256, có nghĩa là chỉ có 256 cặp màu được xác định tại bất kỳ thời điểm nào, và trong khi bạn được tự do xác định lại chúng, bạn sẽ không nhận được nhiều hơn 256 cặp. Tôi đang tìm một phương pháp để thay đổi kích thước của bộ đệm đó, để có thể đặt cho 32k cặp khác nhau được xác định cùng một lúc. – redspah