- จุดที่น่าหงุดหงิดที่สุดในการอัปเกรดเป็น macOS 26 ไม่ใช่บั๊ก แต่คือปัญหา ความไม่สอดคล้องกันของมุมหน้าต่าง โดยประเด็นสำคัญไม่ใช่แค่ความโค้งมนที่มากเกินไป แต่คือการที่แต่ละแอปถูกทำต่างกันจนขาดความสม่ำเสมอ
- วิธีแก้เดิมต้อง ปิดใช้งาน SIP ซึ่งอาจเพิ่มความเสี่ยงด้านความปลอดภัย และยังซับซ้อนเพราะต้องแก้ไขไลบรารีของแอประบบอย่าง Safari โดยตรง
- ใช้แนวทางที่ มีผลเฉพาะกับแอปภายนอก โดยไม่ต้องปิด SIP ด้วยการแทนที่เมธอดของคลาส
NSThemeFrame (swizzling) เพื่อทำให้รัศมีมุมของหน้าต่างแอปผู้ใช้ทั้งหมดเป็น 23.0 เท่ากัน
- หลังคอมไพล์และเซ็นชื่อ dylib แล้ว สามารถตั้งให้มีผลถาวรได้ด้วยการ ฉีดอัตโนมัติตอนบูต ผ่าน LaunchAgents plist
- ผลลัพธ์คือหน้าต่างแอปทั้งหมดมีความโค้งมนเหมือนกัน กลายเป็น “ดีไซน์ที่แย่อย่างสม่ำเสมอ” แต่ได้เอฟเฟกต์ภาพที่เป็นหนึ่งเดียวกัน
ที่มาของปัญหา
- macOS 26 นอกจากจะมีบั๊กหลายอย่างแล้ว ปัญหา มุมหน้าต่างไม่สอดคล้องกัน ก็เด่นชัดมาก
- สิ่งที่ชวนรำคาญยิ่งกว่าความโค้งมนของมุมที่มากเกินไป คือ ความไม่สม่ำเสมอทางภาพ ที่แต่ละแอปจัดการต่างกัน
- งานออกแบบ UI แพร่กระจายตามกันได้ง่าย นักออกแบบมักมีแนวโน้มทำตามดีไซน์ของบริษัทใหญ่ และมีโอกาสที่ปรากฏการณ์นี้จะยิ่งขยายวง
- ตัวอย่าง: เวลาถกเถียงเรื่องดีไซน์ มักมีธรรมเนียมในวงการที่สรุปกันด้วยคำถามแนวว่า "Apple วาดปุ่มนี้อย่างไร"
ปัญหาของวิธีแก้แบบเดิม
- ผู้ใช้บางส่วนพยายามแก้ปัญหานี้ด้วยวิธี ปิดใช้งาน SIP (System Integrity Protection)
- เมื่อปิด SIP ความปลอดภัยของไดเรกทอรี
/root จะหายไป และต้อง แก้ไขไลบรารีระบบโดยตรง ที่แอประบบอย่าง Safari ใช้งานอยู่
- แม้จะมีมุมมองว่าหากเครื่องถูกบุกรุกไปแล้ว ประสิทธิภาพการป้องกันจริงของ SIP ก็มีจำกัด แต่ความเป็นไปได้ของช่องโหว่ด้านความปลอดภัยก็ยังคงมีอยู่
แนวทางทางเลือก: ทำให้แอปภายนอกเหมือนกันทั้งหมด
- แทนที่จะมุ่งไปที่การลบมุมออก เลือกแนวทาง ทำให้ทุกอย่างโค้งมนขึ้น ให้เป็นแบบเดียวกัน
- ใช้วิธีฉีด dylib ที่มีผลเฉพาะกับแอปผู้ใช้ (แอปภายนอก) โดย ไม่ต้องปิด SIP
- นำโค้ดจากโซลูชันเดิมที่ใช้ลบมุมมาฟอร์กแล้วแก้ไขต่อ
การทำงานเชิงเทคนิค
- ทำ เมธอด swizzling กับ 4 เมธอดต่อไปนี้ของคลาส
NSThemeFrame
_cornerRadius → คืนค่า 23.0
_getCachedWindowCornerRadius → คืนค่า 23.0
_topCornerSize → คืนค่า CGSizeMake(23.0, 23.0)
_bottomCornerSize → คืนค่า CGSizeMake(23.0, 23.0)
- แอประบบของ Apple ที่มีคำนำหน้า com.apple. รวมถึงเครื่องมือ CLI และเดมอน จะถูกยกเว้นไม่ให้ใช้การปรับนี้
- คอมไพล์เป็น universal dylib ที่รองรับทั้งสถาปัตยกรรม
arm64e และ x86_64
การติดตั้งและการบังคับใช้แบบอัตโนมัติ
- คอมไพล์ SafariCornerTweak.dylib ด้วย clang คัดลอกไปยัง
/usr/local/lib/ แล้วเซ็นชื่อด้วย codesign
- ตั้งค่าตัวแปรสภาพแวดล้อม
DYLD_INSERT_LIBRARIES ผ่าน LaunchAgents plist (com.local.dyld-inject.plist)
- เมื่อลงทะเบียนด้วย
launchctl load ~/Library/LaunchAgents/com.local.dyld-inject.plist ระบบจะฉีด dylib ให้อัตโนมัติทุกครั้งที่บูต
- สุดท้าย มุมของหน้าต่างแอปทั้งหมดจะโค้งมนเท่ากัน กลายเป็น “ดีไซน์ที่แย่อย่างสม่ำเสมอ” แต่ให้ผลลัพธ์ที่ดูเป็นหนึ่งเดียวกันทางสายตา
2 ความคิดเห็น
ยังไม่อัปเดตอยู่เลย..
ความเห็นจาก Hacker News
หลังอัปเกรด macOS ก็เกิดปัญหาที่ WindowServer ใช้ CPU เกิน 100%
แม้แต่ในหน้าต่างบันทึกไฟล์ก็ยังวางชื่อไฟล์ไม่ได้ และช่อง URL ของ Safari ก็ทำงานแปลกๆ
ลองปรับให้เร็วขึ้นได้นิดหน่อยด้วยการเปิด ลดความโปร่งใส, ปิดการแยก Space ตามแอป, และซ่อนไอคอนบนเดสก์ท็อปใน Finder
แนะนำ App Tamer สำหรับจำกัดการใช้ CPU ของแอปเบื้องหลัง (แต่ใช้ไม่ได้ผลกับ WindowServer หรือ kernel_task)
ช่วงนี้ Apple ให้ความรู้สึกเหมือนไม่มีคนกุมพวงมาลัยอยู่เลย การต้องรอหลายวินาทีทุกครั้งที่เปิดหน้าต่างหรือสลับแอปถือเป็นปัญหาร้ายแรง
หวังว่าสักวัน AI จะออกแบบ OS ใหม่ เพื่อให้ Apple·Microsoft·Google กลับมาแข่งขันกันอีกครั้ง
ใช้ M2 Air เปิดแท็บกับแอปพร้อมกันหลายสิบอย่างก็ไม่มีปัญหา สมัยก่อนบูตทีใช้เวลา 3 นาที ติดตั้งเกมทีใช้ 30 นาที แต่ตอนนี้แทบจะทันที
ไม่ชอบดีไซน์ของ macOS Tahoe โดยเฉพาะ Apple Music ที่เปลี่ยนไปจนแปลกแบบอธิบายไม่ถูก
แต่ส่วนใหญ่ยังพอเมินได้ ยกเว้น ดีไซน์แท็บ ที่น่าเกลียดเกินไป รู้สึกว่าถอยหลังลงทุกด้านเมื่อเทียบกับของเดิม
การที่ประเด็นเรื่องมุมหน้าต่างกลายเป็นดราม่าใหญ่ได้ อาจแปลว่า macOS เป็น OS ที่ขัดเกลามาดีมาก ก็ได้
ผมรักลินุกซ์นะ แต่การถกเถียงแบบนี้สุดท้ายก็มองได้ว่าเป็นคำชม
การ ปัดการแจ้งเตือนใน Tahoe ของ macOS ยุ่งยากเกินไป
ปุ่ม “Liquid Glass” ตอบสนองช้า และกว่าจะให้การแจ้งเตือนหายไปก็มีดีเลย์ แอปเพลงที่อัปเดตก็แย่มากเหมือนกัน
คนชอบยึดติดกับ SIP(System Integrity Protection) แต่จริงๆ แล้วมัน ไม่ได้ช่วยป้องกันแรนซัมแวร์เลย
ถ้าใช้ package manager อย่าง npm หรือ pip นอก VM มันก็อันตรายยิ่งกว่าเปิด SIP ไว้อีก
rmข้อมูลก็หายได้อยู่ดีแต่เพราะมี SIP อย่างน้อยก็ยัง บูตเข้า safe mode เพื่อกู้คืน ได้
ผมใช้ Linux กับ Windows อย่างละครึ่ง แต่ด้วยเหตุผลพวกนี้เลยใช้ Mac เป็นเครื่องหลักไม่ได้
Dock กับพฤติกรรมของโหมดเต็มหน้าจอ มันแปลกเกินไป และการที่ปิดหน้าต่างแล้วแอปยังรันอยู่ก็ชวนสับสน
ผมชอบที่ยังมีคนสังเกตรายละเอียดเล็กๆ แบบนี้อยู่ รู้สึกเหมือนเราได้รับการปกป้องจาก ความช่างสังเกต ของพวกเขา
macOS ตอนนี้ให้ความรู้สึกเหมือน Harley Davidson กับ Volvo Truck ควบรวมกัน แล้วพยายามรวมดีไซน์เข้าด้วยกัน
กลายเป็นผลลัพธ์จากการประนีประนอมเพื่อให้แบรนด์ดูเป็นหนึ่งเดียว
UI ของ macOS ดูเหมือนออกแบบมาบนสมมติฐานว่าผู้ใช้จะไม่ใช้หน้าต่างแบบเต็มจอ แต่จะ เปิดค้างไว้ขนาดกลางๆ
แต่สำหรับแอปที่ใช้จอใหญ่จริงๆ อย่างเบราว์เซอร์หรือ IDE นี่เป็นสมมติฐานที่แปลกมาก
ตอนนี้การซ้อนหน้าต่างไว้แล้ว สลับด้วยการคลิกครั้งเดียว กลับมีประสิทธิภาพกว่า
แต่ UI ใหม่ก็เปลืองพื้นที่มาก และ การลากมุมเพื่อปรับขนาด ก็น่าหงุดหงิด
แท็บทรงแคปซูล (pill tabs) นี่แหละที่ขัดตาที่สุด
เป็น ดีไซน์ประหลาด ที่ทั้งรบกวนสายตาและส่งข้อมูลได้แย่