Có thể tắt chức năng điều chỉnh màu tự động của Terminal trong Lion không?


35

Mặc dù thật tuyệt khi Terminal hiện có hỗ trợ tích hợp để thay đổi màu ANSI, tôi thấy khó chịu khi nó tự động điều chỉnh màu để cải thiện độ tương phản, có nghĩa là màu mà tôi thực sự chọn thường bị trôi đi theo một cách khác . Đây là một ảnh chụp màn hình giải thích vấn đề:

ảnh chụp màn hình cài đặt màu OS X Terminal.app

Điều này làm tôi bực mình vì tôi thích sử dụng cùng một bảng màu trong Terminal và MacVim, và với cách xử lý màu này của Terminal, chúng không khớp với các màu trong MacVim.

Có ai biết giải pháp nào cho vấn đề này không, ngoài việc chuyển sang iTerm 2 (mà tôi không muốn - tôi thích phần còn lại của Terminal, đặc biệt là một số GUI chạm như chuông hình ảnh đập). Cảm ơn!


1
Câu hỏi hay - dường như cũng được thực hiện để điều chỉnh độ trong của cửa sổ, đừng
bận

@kopischke, điều chỉnh độ tương phản tối thiểu không tính đến độ mờ của màu nền, nếu đó là ý bạn.
Chris Trang

Sẽ rất hữu ích nếu bạn đăng một ảnh chụp màn hình hiển thị các màu dự kiến ​​trên nền đen. Đặt các số sang một bên, tôi thực sự không thể thấy sự khác biệt giữa các mẫu màu trong cửa sổ tùy chọn và màu văn bản trong thiết bị đầu cuối trong ảnh chụp màn hình của bạn, vì vậy thật khó để nhận ra sự khác biệt đáng kể như thế nào.
Chris Trang

Bây giờ tôi đã biết lý do tại sao tôi coi thường OS X. Tôi đã mất hơn 6 giờ cố gắng tìm hiểu lý do tại sao một bảng màu tôi thiết kế trên Linux lại bị lỗi trên máy Mac của bạn tôi - Tôi nghi ngờ có vấn đề với chuyển đổi không gian màu (sRGB so với Apple RGB), nhưng Tôi sẽ không bao giờ đoán rằng đó là lỗi của thiết bị đầu cuối ... Cảm ơn vì đã xác nhận chẩn đoán của tôi.
Jan Warchoł

Không có chủ đề, nhưng iTerm2 cho phép bạn có một tiếng chuông trực quan. Prefs> Advanced> Visual bell nhấp nháy toàn màn hình, không chỉ là biểu tượng chuông.
user2551

Câu trả lời:


23

Đây là mẹo mà bạn cần biết: Các giá trị được đặt qua RGB bị sai lệch, những giá trị được đặt qua HSB thì không.

Tôi gặp vấn đề tương tự khi sử dụng bảng màu Solarized (tuyệt vời) : MacVim có màu nền tối hơn (và chính xác) so với Terminal, mặc dù tôi đã đặt tất cả các giá trị RGB chính xác cho thông số Solarized. Xem tại đây:

Về cơ bản, bạn cần biết giá trị màu nào được cho là của từng Terminal ANSI, văn bản và Nền (lưu ý cái này nằm trên tab Window) và sau đó đặt chúng qua bộ chọn HSB thay vì RGB. Xem ví dụ này:

Vì bất kỳ lý do gì (tôi nghi ngờ một số loại hồ sơ, hoặc có lẽ là một điều chỉnh độ tương phản như bạn đề xuất), màu RGB bạn nhập không phải là những gì bạn nhận được. Bạn cũng sẽ nhận thấy rằng một khi bạn đã đặt các giá trị qua HSB, việc chuyển sang bộ chọn RGB sẽ hiển thị các tùy chọn khác với mong đợi của bạn. Tất cả các chuyển đổi giá trị Solarized đều đồng ý theo Photoshop; nó dường như là một cái gì đó mà công cụ chọn màu của Apple đang làm cho bạn.


9
Đây là một câu trả lời tốt không thể tin được.
Jason Salaz

Có vẻ như RGB không bị sai lệch như vậy, chỉ được sửa đổi bởi cài đặt độ mờ của bộ chọn theo câu trả lời của @eirnym - sự kết hợp của 2 không chỉ giải thích nó, mà còn giải quyết nó theo 2 cách. Tuyệt quá!
nhồi vào

2
Không làm mưa trên cuộc diễu hành, nhưng tôi không thể xác nhận sự cố này khắc phục sự cố - Terminal.app tiếp tục sửa đổi các giá trị tôi nhập trong không gian màu HSB, ngay cả khi đặt nền thành các giá trị chính xác (bao gồm độ mờ 100% và mờ 0%) Đầu tiên. Giá trị sáng dường như ít bị ảnh hưởng bởi điều này, không sáng hơn như vậy. Có thể công cụ chọn màu trong Terminal.app bị lỗi nghiêm trọng, có thể nó cố gắng trở thành thông minh về độ tương phản và phạm vi màu (tôi sẽ không bỏ qua Apple) - vì có thể, giải pháp trên không hoạt động với tôi hệ thống.
kopischke

Sau khi điều tra thêm, vấn đề dường như bắt nguồn từ việc ánh xạ các màu Solarized từ không gian màu độc lập với thiết bị (không gian màu LAB / HSB) sang không gian màu phụ thuộc thiết bị (RGB). Kết quả nhất quán có thể đạt được khi chọn không gian màu HSB, như được hiển thị ở trên, nhưng chỉ khi ánh xạ rõ ràng vào thiết bị RGB (trong menu thả xuống phía sau mũi tên nhỏ trên ô vuông màu nhỏ bên trái của thả xuống không gian màu). Sự khác biệt về giá trị RGB so với bảng màu Solarized được giải thích bằng thực tế Bản đồ được Solarized thành sRGB, trong khi bộ chọn màu luôn ngầm ánh xạ tới thiết bị RGB.
kopischke

Thông tin về bộ chọn màu OS X đã được thiết kế cho những người thực sự biết thứ không gian màu này nói về cái gì (ví dụ như các nhà thiết kế đồ họa), chứ không phải chúng tôi là Terminal grunts :). [vâng, OT, tôi biết]
kopischke

10

chọn 'Thiết bị RGB' từ danh sách thả xuống Bộ chọn màu của Apple

  1. Mở bộ chọn màu
  2. Chọn tab thanh trượt
  3. Nhấp vào mẫu màu bên dưới kính lúp, bên trái của thanh thả xuống
  4. Chọn Device RGB

Bây giờ màu được chỉ định bởi giá trị hex sẽ không bị chuyển đổi không gian màu.

Ở Sierra, bộ chọn không gian màu đã thay đổi thành biểu tượng bánh răng: Bộ chọn không gian màu Sierra

Nguồn


2
Thật tuyệt - cảm ơn vì điều này! Đối với tất cả các năng lực thiết kế của Apple, việc nhấp vào đây sẽ hoàn toàn không rõ ràng.
Ryan Dlugosz

Lưu ý: nếu cách khắc phục sử dụng màu này với các không gian màu khác nhau có hiệu quả, thì có khả năng nó dựa vào một lỗi trong mã xử lý màu, được cho là hoạt động với bất kỳ màu nào và có thể ngừng hoạt động trong tương lai khi lỗi đó được khắc phục.
Chris Trang

1
Thủ thuật này đã làm việc cho tôi; lừa HSB thì không.
Jay

4

Cấu hình màu chắc chắn rất quan trọng, nhưng có một vấn đề khác đang ẩn giấu ở đây: Terminal.app tự động làm sáng bất kỳ màu nào khi được hiển thị trên nền mặc định. Ví dụ, ở đây là các màu đầu ra của Terminal.app chạy chủ đề màu Solarized , như được đo bằng DigitalColor Meter ở chế độ sRGB và được so sánh với các giá trị sRGB Solarized sical.

Khi được trình bày trên nền đen (hoặc bất kỳ màu nào khác), Terminal.app tạo ra các màu chính xác; tuy nhiên, trên nền mặc định, tất cả các màu ngoại trừ văn bản in đậm mặc định và mặc định đều quá sáng.

một bài kiểm tra màu trong Terminal.app.  Màu sắc như mong đợi khi được thể hiện trên nền màu, nhưng sáng hơn khi được hiển thị trên nền mặc định.


Bỏ phiếu xuống vì đây không phải là câu trả lời. Nó dường như là một bình luận về câu hỏi.
Chris Trang

2
Làm thế nào bạn tạo ra bảng màu đó? Trông siêu tiện dụng.
Luke Davis

2

Mở cài đặt Window cho chủ đề của bạn, chuyển đổi màu nền, đặt độ mờ thành 0% và Opacity thành 100%. Sau đó, màu sắc của bạn sẽ giống như bạn muốn. Ngoài ra, bạn nên kiểm tra mọi màu bạn chọn cho văn bản cho các tham số này.

nhập mô tả hình ảnh ở đây


Bỏ phiếu vì điều này không áp dụng cho câu hỏi, đó là về hành vi tương phản tối thiểu của Terminal và không bị ảnh hưởng bởi độ mờ nền.
Chris Trang

2

Tóm lại: không, không có phương tiện được hỗ trợ để vô hiệu hóa điều này.

Thiết bị đầu cuối tự động áp dụng độ tương phản tối thiểu khi hiển thị màu ANSI (hoặc bảng 256 màu mở rộng) trên màu nền của thiết bị đầu cuối hoặc khi hiển thị màu nền trước / văn bản của thiết bị đầu cuối trên màu nền ANSI.

Điều này có nghĩa là thuận tiện, do đó người ta có thể đặt màu nền hoặc màu nền trước và có độ tương phản với màu ANSI mà không phải điều chỉnh tất cả các màu ANSI. Điều này đặc biệt quan trọng trong các phiên bản trước của Terminal, thiếu hỗ trợ Tùy chọn để tùy chỉnh màu ANSI.

Các phiên bản cũ hơn của Terminal đã áp dụng độ tương phản tối thiểu cho tất cả các kết hợp màu, nhưng điều đó có nghĩa là, ví dụ, văn bản đỏ-đỏ-đỏ ANSI có thể đọc được, nhưng một số chương trình cố tình hiển thị văn bản có cùng màu nền trước và màu nền để ẩn nó (ví dụ để hiển thị gợi ý trò chơi hoặc trò đùa punchlines). Do đó, các phiên bản mới hơn của Terminal không áp dụng độ tương phản tối thiểu khi hiển thị một màu ANSI trên màu khác.

Bây giờ, thay vì chỉ xử lý trường hợp cùng màu, Terminal tránh áp dụng độ tương phản tối thiểu cho tất cả các kết hợp màu ANSI, vì người ta cho rằng nếu người dùng tùy chỉnh bất kỳ màu ANSI nào, họ sẽ tùy chỉnh tất cả chúng để tương phản với nhau như mong muốn . Người ta cũng cho rằng những người dùng đó sẽ điều chỉnh hoặc tính đến màu nền và màu nền trước để phù hợp với bảng màu mong muốn của họ.

Nếu cách giải quyết của việc sử dụng màu sắc với các không gian màu khác nhau, gợi ý trong các câu trả lời khác, thì đó có thể dựa vào một lỗi trong mã xử lý màu, được cho là hoạt động với bất kỳ màu nào và có thể ngừng hoạt động trong tương lai khi lỗi đó được sửa.

Nếu việc có thể vô hiệu hóa hoặc điều chỉnh rõ ràng hành vi tương phản tối thiểu là quan trọng đối với bạn, tôi khuyên bạn nên cho Apple biết bằng cách nộp báo cáo tại https://developer.apple.com/orms-reporting/ bằng bất kỳ ID Apple nào.

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.