เป็นไปได้ไหมที่จะปิดการใช้งานการปรับสีอัตโนมัติของเทอร์มินัลใน Lion?


35

ในขณะที่มันยอดเยี่ยมที่ Terminal ในตัวรองรับการเปลี่ยนสี ANSI แต่ฉันคิดว่ามันน่ารำคาญที่ปรับสีโดยอัตโนมัติเพื่อปรับปรุงความคมชัดซึ่งหมายความว่าสีที่ฉันเลือกมักจะถูกล้างออกด้วยวิธีอื่น . นี่คือภาพหน้าจอที่อธิบายถึงปัญหา:

สกรีนช็อตของการตั้งค่าสี OS X Terminal.app

สิ่งนี้ทำให้ฉันรำคาญเพราะฉันชอบใช้โทนสีเดียวกันใน Terminal และ MacVim และด้วยการจัดการสีโดย Terminal พวกเขาไม่ตรงกับสีใน MacVim

ไม่มีใครรู้วิธีแก้ปัญหานี้นอกเหนือจากการเปลี่ยนเป็น iTerm 2 (ซึ่งฉันไม่อยาก - ฉันชอบเทอร์มินัลส่วนที่เหลือ ขอบคุณ!


1
คำถามที่ดี - ดูเหมือนว่าจะมีการปรับแต่งเพื่อความโปร่งใสของหน้าต่างไม่ต้องคำนึงถึงการเรนเดอร์พิกเซลย่อย…
kopischke

@kopischke การปรับความเปรียบต่างขั้นต่ำไม่ได้คำนึงถึงความทึบของสีพื้นหลังถ้านั่นคือสิ่งที่คุณหมายถึง
Chris หน้า

มันจะช่วยถ้าคุณโพสต์ภาพหน้าจอแสดงสีที่คาดหวังบนพื้นหลังสีดำ ตัวเลขกันฉันไม่เห็นความแตกต่างระหว่างสี swatches ในหน้าต่างการตั้งค่าและสีข้อความใน terminal ในภาพหน้าจอของคุณดังนั้นมันยากที่จะบอกความแตกต่างที่สำคัญคือ
Chris หน้า

ตอนนี้ฉันรู้แล้วว่าทำไมฉันดูถูก OS X ฉันเสียเวลามากกว่า 6 ชั่วโมงในการพยายามหาสาเหตุว่าทำไมรูปแบบสีที่ฉันออกแบบบน Linux นั้นได้รับการจัดการบน Mac ของเพื่อนฉัน - ฉันสงสัยว่าปัญหาเกี่ยวกับการแปลงพื้นที่สี (sRGB กับ Apple RGB) ฉันไม่เคยคาดเดาว่ามันเป็นความผิดของเครื่อง ... ขอบคุณสำหรับการยืนยันการวินิจฉัยของฉัน
Jan Warchoł

นอกหัวข้อ แต่ iTerm2 ช่วยให้คุณมีภาพระฆังที่สั่นคลอน การตั้งค่า> ขั้นสูง> ระฆังภาพจะกะพริบทั้งหน้าจอไม่ใช่แค่ไอคอนระฆัง
user2551

คำตอบ:


23

นี่คือเคล็ดลับที่คุณต้องรู้: ค่าที่ตั้งไว้ผ่าน RGB จะถูกทำให้ยุ่งเหยิง แต่ชุดเหล่านั้นผ่าน HSB จะไม่ทำเช่นนั้น

ฉันมีปัญหาคล้ายกันโดยใช้ชุดรูปแบบสีแสงอาทิตย์ (ดีมาก) : MacVim มีสีพื้นหลังที่เข้มกว่า (และถูกต้อง) กว่าเทอร์มินัล ดูที่นี่:

โดยทั่วไปคุณจำเป็นต้องรู้ว่าค่าสีของคุณควรเป็นสีอะไรสำหรับเทอร์มินัล ANSI ข้อความและพื้นหลัง (โปรดสังเกตว่าค่านี้อยู่ในแท็บหน้าต่าง) จากนั้นตั้งค่าเหล่านี้ผ่านตัวเลือก HSB แทน RGB ดูตัวอย่างนี้:

ไม่ว่าจะด้วยเหตุผลใดก็ตาม (ฉันสงสัยว่ามีรูปแบบของโปรไฟล์บางอย่างหรืออาจจะปรับความคมชัดตามที่คุณแนะนำ) สี RGB ที่คุณป้อนไม่ใช่สิ่งที่คุณได้รับ คุณจะสังเกตเห็นว่าเมื่อคุณตั้งค่าผ่าน HSB การสลับไปที่ตัวเลือก RGB จะแสดงตัวเลือกที่แตกต่างจากที่คุณคาดไว้ การแปลงค่าพลังงานแสงอาทิตย์ทั้งหมดตกลงตาม Photoshop; ดูเหมือนจะเป็นสิ่งที่เครื่องมือเลือกสีของ Apple กำลังทำเพื่อคุณ


9
นี่เป็นคำตอบที่ดีอย่างไม่น่าเชื่อ
Jason Salaz

ดูเหมือนว่า RGB จะไม่ยุ่งเหยิงเพียงแค่ปรับเปลี่ยนโดยการตั้งค่าความทึบของตัวเลือกตามคำตอบโดย @eirnym - การรวมกันของ 2 ไม่เพียง แต่อธิบายได้ แต่แก้ไขได้ 2 วิธี ที่ดี!
stuffe

2
ไม่ให้ฝนตกในขบวนแห่ แต่ฉันไม่สามารถยืนยันได้ว่าจะแก้ปัญหานี้ได้อย่างไร - Terminal.app ยังคงแก้ไขค่าที่ฉันป้อนในพื้นที่สี HSB แม้ว่าจะตั้งค่าพื้นหลังเป็นค่าที่ถูกต้อง (รวมถึงความทึบ 100% และเบลอ 0%) เป็นครั้งแรก ดูเหมือนว่าค่าความสว่างจะมีแนวโน้มลดลงเช่นนี้ บางทีเครื่องมือเลือกสีใน Terminal.app เป็นรถจริงจังบางทีอาจจะพยายาม "ฉลาด" เกี่ยวกับความคมชัดและช่วงสี (ฉันจะไม่ใส่ Apple ตัวใดตัวหนึ่งในอดีต) - ไม่ว่ามันจะเป็นไปตามที่แก้ปัญหาข้างต้น ระบบ.
kopischke

…จากการตรวจสอบเพิ่มเติมดูเหมือนว่าปัญหาจะเกิดจากการแมปสี Solarized จากอุปกรณ์ที่เป็นอิสระ (พื้นที่สี LAB / HSB) ไปยังพื้นที่สีที่ขึ้นกับอุปกรณ์(RGB) ผลลัพธ์ที่สอดคล้องกันสามารถทำได้เมื่อเลือกพื้นที่สี HSB ดังที่แสดงไว้ด้านบน แต่เฉพาะเมื่อทำการแมปไปยังอุปกรณ์ RGB (ในเมนูแบบเลื่อนลงด้านหลังลูกศรเล็ก ๆ บนสี่เหลี่ยมสีเล็ก ๆ ด้านซ้ายของพื้นที่สีแบบเลื่อนลง) ความแตกต่างของค่า RGB ไปยังตารางสี Solarized ถูกอธิบายโดยข้อเท็จจริงแผนที่ Solarized ไปยัง sRGB ในขณะที่ตัวเลือกสีมักจะแมปไปยังอุปกรณ์ RGB โดยปริยาย
kopischke

... ที่จะบอกตัวเลือกสี OS X ได้รับการออกแบบมาสำหรับผู้ที่รู้ว่าสิ่งที่พื้นที่สีนี้เกี่ยวกับ (เช่นนักออกแบบกราฟิก) ไม่ใช่พวกเราเทอร์มินัล grunts :) [ใช่แล้วฉันรู้]
kopischke

10

เลือก 'Device RGB' จากดรอปดาวน์แถบเลือกสีของ Apple

  1. เปิดเครื่องมือเลือกสี
  2. เลือกแถบเลื่อน
  3. คลิกที่แถบด้านล่างแว่นขยายที่ด้านซ้ายของแถบเลื่อนที่เลื่อนลง
  4. เลือก Device RGB

ตอนนี้สีที่ระบุด้วยค่าฐานสิบหกจะไม่ถูกแปลงเป็นพื้นที่สี

ในเซียร่าตัวเลือกพื้นที่สีเปลี่ยนเป็นไอคอนรูปเฟือง: ตัวเลือกพื้นที่สีเซียร์รา

แหล่ง


2
เจ๋ง - ขอบคุณสำหรับสิ่งนี้! สำหรับความสามารถในการออกแบบทั้งหมดของ Apple นั้นไม่ชัดเจนเลยว่าการคลิกที่นี่จะเป็นการเปิดเผยเมนู
Ryan Dlugosz

หมายเหตุ: หากวิธีแก้ปัญหาการใช้สีที่มีการใช้พื้นที่สีต่างกันเป็นไปได้ว่าอาศัยข้อบกพร่องในรหัสการจัดการสีซึ่งควรทำงานกับสีใดก็ได้และอาจหยุดทำงานในอนาคตเมื่อบั๊กนั้นได้รับการแก้ไข
Chris หน้า

1
เคล็ดลับนี้ใช้ได้สำหรับฉัน เคล็ดลับ HSB ไม่ได้
เจย์

4

ส่วนกำหนดค่าสีมีความสำคัญอย่างแน่นอน แต่ยังมีอีกปัญหาหนึ่งที่แฝงตัวอยู่ที่นี่: Terminal.app จะเพิ่มความสว่างให้สีโดยอัตโนมัติเมื่อแสดงบนพื้นหลังเริ่มต้น ตัวอย่างเช่นที่นี่คือสีที่แสดงผลโดย Terminal.app ที่ใช้ธีมสี Solarizedตามที่วัดด้วย DigitalColor Meter ในโหมด sRGB และเปรียบเทียบกับค่า sRGB ที่ได้รับการยอมรับ

เมื่อแสดงบนพื้นหลังสีดำ (หรือสีอื่น) เทอร์มินัลแอพจะสร้างสีที่ถูกต้องโดยประมาณ อย่างไรก็ตามบนพื้นหลังเริ่มต้นสีทั้งหมดยกเว้นข้อความตัวหนาเริ่มต้นและค่าเริ่มต้นจะสว่างเกินไป

การทดสอบสีใน Terminal.app  สีเป็นไปตามที่คาดไว้เมื่อนำเสนอผ่านพื้นหลังสี แต่สว่างขึ้นเมื่อนำเสนอบนพื้นหลังเริ่มต้น


โหวตลงเพราะนี่ไม่ใช่คำตอบ ดูเหมือนว่าจะเป็นความคิดเห็นเกี่ยวกับคำถาม
Chris หน้า

2
คุณสร้างตารางสีนั้นได้อย่างไร ดูมีประโยชน์มาก
ลุคเดวิส

2

เปิดการตั้งค่าหน้าต่างสำหรับธีมของคุณสลับสีพื้นหลังตั้งเบลอเป็น 0% และทึบเป็น 100% หลังจากนี้สีของคุณจะเหมือนกับที่คุณต้องการ นอกจากนี้คุณควรตรวจสอบทุกสีที่คุณเลือกสำหรับข้อความสำหรับพารามิเตอร์นี้

ป้อนคำอธิบายรูปภาพที่นี่


โหวตลงเนื่องจากสิ่งนี้ไม่สามารถใช้ได้กับคำถามซึ่งเกี่ยวข้องกับพฤติกรรมความคมชัดต่ำสุดของเทอร์มินัลและไม่ได้รับผลกระทบจากความทึบของพื้นหลัง
Chris หน้า

2

กล่าวโดยย่อ: ไม่ไม่มีวิธีการที่สนับสนุนการปิดใช้งานสิ่งนี้

เทอร์มินัลจะใช้ความคมชัดต่ำสุดโดยอัตโนมัติเมื่อแสดงสี ANSI (หรือตาราง 256 สี) ที่เพิ่มขึ้นบนสีพื้นหลังของเทอร์มินัลหรือเมื่อแสดงสีพื้นหน้า / ข้อความของเทอร์มินัลบนสีพื้นหลัง ANSI

สิ่งนี้มีไว้เพื่ออำนวยความสะดวกเพื่อให้สามารถตั้งค่าพื้นหลังหรือสีพื้นหน้าและให้สีตัดกันกับสี ANSI โดยไม่ต้องปรับสี ANSI ทั้งหมด สิ่งนี้มีความสำคัญอย่างยิ่งในเทอร์มินัลรุ่นก่อนหน้าซึ่งขาดการสนับสนุนการกำหนดค่าสำหรับการปรับแต่งสี ANSI

เทอร์มินัลรุ่นเก่าใช้ความแตกต่างขั้นต่ำสำหรับการผสมสีทั้งหมด แต่นั่นหมายความว่าเช่น ANSI ข้อความสีแดงบนสีแดงสามารถอ่านได้ แต่บางโปรแกรมตั้งใจแสดงข้อความด้วยสีพื้นหน้าและพื้นหลังสีเดียวกันเพื่อซ่อนไว้ (สำหรับการแสดงคำใบ้ของเกมหรือมุกช์ไลน์) เทอร์มินัลรุ่นใหม่กว่าจึงไม่ใช้ความเปรียบต่างต่ำสุดเมื่อแสดงสี ANSI หนึ่งสี

ตอนนี้แทนที่จะเพียงแค่พูดถึงกรณีสีเดียวกันเทอร์มินัลหลีกเลี่ยงการใช้ความแตกต่างขั้นต่ำสำหรับชุดค่าผสมของสี ANSI ทั้งหมดเนื่องจากมีการสันนิษฐานว่าหากผู้ใช้ปรับแต่งสี ANSI ใด ๆ พวกเขาจะปรับแต่งทั้งหมดให้แตกต่างกัน . นอกจากนี้ยังสันนิษฐานว่าผู้ใช้เหล่านั้นจะปรับหรือคำนึงถึงพื้นหลังเทอร์มินัลและสีพื้นหน้าเพื่อให้เหมาะกับโทนสีที่ต้องการ

หากวิธีแก้ปัญหาในการใช้สีที่มีช่องว่างสีต่างกัน - แนะนำในคำตอบอื่น ๆ - งานอาจเป็นไปได้ว่าบั๊กในรหัสการจัดการสีซึ่งควรทำงานกับสีใดก็ได้และอาจหยุดทำงานในอนาคต เมื่อแก้ไขข้อผิดพลาดนั้น

หากความสามารถในการปิดใช้งานหรือปรับเปลี่ยนพฤติกรรมความคมชัดขั้นต่ำเป็นสิ่งสำคัญสำหรับคุณฉันขอแนะนำให้ Apple ทราบโดยยื่นรายงานที่https://developer.apple.com/bug-reporting/โดยใช้ Apple ID ใด ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.