gnome-terminal sử dụng màu sáng cho đậm


3

gnome-terminalĐược sử dụng để hiển thị các ký tự có màu và thuộc tính đậm bằng màu sáng hơn các ký tự có cùng màu nhưng không có thuộc tính đậm, với tổng số 16 màu có thể. Trang Tùy chọn vẫn có 16 màu để chọn, nhưng dường như luôn sử dụng hàng trên cùng, ngay cả khi các ký tự được in đậm. Tôi dường như không bao giờ thấy hàng dưới cùng của màu sắc được sử dụng.

(Đây là một vấn đề khi chơi Nethack, vì tôi đã từng nhìn thấy quái vật và đồ vật với 16 màu sắc đặc biệt.)

Có cách nào để lấy lại hành vi cũ với tất cả 16 màu trở lại không?

Câu trả lời:


6

Phiên bản ngắn: Vui lòng thử TERM=xterm nethack, rất có thể nó sẽ thực hiện thủ thuật.

Phiên bản dài:

Vui lòng thử và kiểm tra đầu ra của tập lệnh từ câu trả lời của tôi tại In mẫu thử nghiệm 256 màu trong thiết bị đầu cuối .

Thuộc tính bạn đang nói về ( \e[1m) có một sự nhầm lẫn di sản cho dù nó có nghĩa là đậm, sáng hoặc cả hai. Với bảng màu 256 màu mở rộng xuất hiện trong hầu hết các trình giả lập thiết bị đầu cuối và sau đó hỗ trợ màu thực sự xuất hiện trong một số (bao gồm cả gnome-terminal), xu hướng được chuyển sang thuộc tính này có nghĩa đậm. Rõ ràng là nó không có ý định làm xáo trộn các màu RGB trực tiếp và cũng có vấn đề với bảng màu 256 (sẽ có một ánh xạ giữa các chỉ số này, hoặc nó sẽ dẫn đến các màu ngoài bảng màu?).

Có nhiều cách để truy cập 16 mục đầu tiên của bảng màu. Các chuỗi thoát di sản với các số 30 Hóa37 (tiền cảnh) và 40 Hóa47 (nền) đứng cho 8. Đầu tiên, các tiền cảnh, nếu kết hợp với chế độ 1 (đậm / sáng), vẫn cho phép các đối tác sáng của chúng tương thích với di sản lý do (ví dụ như nethackvẫn nhìn như trước khi ... thở dài).

Các mã 90 bóng97 (fg) và 100 mật107 (bg) đại diện cho 8 mục bảng màu tiếp theo là những mục sáng.

Các chuỗi thoát bảng màu 256 màu mới (38; 5; 0 - 38; 5; 255 cho fg, 48; 5; 0 - 48; 5; 255 cho bg) hoạt động khác nhau, mặc dù (theo hành vi của xterm): Ở đây 1 Thuộc tính (đậm / sáng) chỉ cho phép độ đậm và không thay đổi màu.

Vì vậy, trong trường hợp của bạn, sự khác biệt có lẽ là ứng dụng của bạn được sử dụng để phát ra các chuỗi thoát lỗi thời, nhưng bây giờ phát ra các bảng màu mới (256 màu) liên quan đến các màu của cùng một bảng màu, sự khác biệt duy nhất là chế độ 1 hoạt động khác nhau: có nghĩa là chỉ in đậm ở đây chứ không phải đậm và sáng.

Điều này, đến lượt nó (đi ngược trong chuỗi lý luận) có thể là do biến môi trường TERM mặc định là xterm-256color, chứ không phải xterm như trước đây. Hãy thử hoàn nguyên biến này và xem nó ảnh hưởng đến ứng dụng của bạn như thế nào.

Một cái gì đó mà tôi không hiểu mà không điều tra (và sẽ không điều tra do thiếu thời gian và sự quan tâm): nethack dường như đang sử dụng ncurses. ncurses không cho phép ứng dụng quyết định loại trình tự thoát nào sẽ sử dụng, nó chỉ cung cấp quyền truy cập vào 256 màu và đó là doanh nghiệp riêng của ncurses thoát khỏi trình tự mà nó sử dụng cho lần đầu tiên 16. Thực tế, như nhìn thấy từ đầu ra của tput setaftput setab, trong một số cú pháp kỳ lạ, nó mã hóa một nhánh if-if trong các khoảng 0 0, 7, 151515 và 16 nhiệt255, theo như tôi biết, nó được cho là phát ra các chuỗi thoát kế thừa cho 16 màu đầu tiên, trong trường hợp của bạn có nghĩa là ngay cả với TERM = xterm-256color, hành vi sẽ không thay đổi so với TERM = xterm. Tôi sẽ cho phép bạn điều tra thêm từ đây với đầu vào bạn nhận được cho đến nay, ví dụ như sử dụngscriptđể ghi lại nethackđầu ra và kiểm tra với trình xem văn bản để xem loại trình tự thoát nào mà nó phát ra.

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.