2 คะแนน โดย GN⁺ 20 일 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • macOS มีโครงสร้างที่ ไม่สามารถปิดแอนิเมชันการสลับ Space ได้ ทำให้เมื่อสลับบ่อย ๆ จะรู้สึกถึงความหน่วงได้
  • โซลูชันเดิมอย่างการตั้งค่า “Reduce motion” หรือ yabai window manager ต่างก็มีข้อจำกัด เช่น ยังคงมีความหน่วง หรือ ต้องปิด SIP
  • InstantSpaceSwitcher แก้ปัญหานี้โดยไม่มีข้อจำกัดดังกล่าว ด้วยการ จำลองการปัดแทร็กแพดความเร็วสูง เพื่อให้ สลับได้ทันที
  • ทำงานในรูปแบบแอปแบบเนทีฟโดยไม่ต้องปิด SIP และยังรองรับฟังก์ชัน ย้ายไปยังหมายเลข Space ผ่าน CLI
  • เป็น เครื่องมือเชิงปฏิบัติที่ช่วยให้สลับ Space ได้รวดเร็วในสภาพแวดล้อมมาตรฐานของ macOS โดยตัดความซับซ้อนของเครื่องมือภายนอกเดิมออกไป

ปัญหาการสลับ Space บน macOS และวิธีแก้เดิม

  • macOS มี โครงสร้างที่ไม่สามารถปิดแอนิเมชันตอนสลับ Space ได้ ทำให้เมื่อสลับบ่อย ๆ จะเกิด ความรู้สึกหน่วงสะสมที่น่ารำคาญ
    • Apple ยังคงไม่ตอบรับ คำขอให้ปิดแอนิเมชันมาโดยตลอด
    • แม้เวลาในการสลับจะสั้น แต่ถ้าสลับบ่อยก็จะ รู้สึกว่าช้าลงอย่างชัดเจน
  • วิธีแก้ที่มักถูกแนะนำคือการตั้งค่า “Reduce motion” แต่จะถูกแทนที่ด้วยแอนิเมชันแบบ fade-in จึงยังคงมีความหน่วงอยู่
    • นอกจากนี้การตั้งค่านี้ยังเปิดใช้ prefers-reduced-motion media query ของเว็บเบราว์เซอร์ ทำให้เกิดผลข้างเคียงคือ ปิดการทำงานของเว็บแอนิเมชัน
  • ฟังก์ชัน instant switcher ของ yabai tiling window manager ต้องการ แพตช์ไบนารีของระบบปฏิบัติการ จึงจำเป็นต้องปิด System Integrity Protection (SIP)
    • เมื่อใช้ yabai จะต้อง แทนที่ window manager เริ่มต้น และ ไม่เข้ากัน กับ PaperWM.spoon เป็นต้น
  • ตัวจัดการ virtual space ภายนอกอย่าง FlashSpace, AeroSpace virtual workspaces เป็น การทำงานแบบไม่เนทีฟที่เลียนแบบการสลับ ด้วยวิธีซ่อน/แสดงหน้าต่าง
  • ยังมีวิธีใช้ฟีเจอร์แบบเสียเงินของ BetterTouchTool อย่าง “Move Right/Left Space (Without Animation)” ได้เช่นกัน แต่มีข้อจำกัดคือ ต้องซื้อไลเซนส์แบบเสียเงิน

InstantSpaceSwitcher — เครื่องมือสลับ Space แบบเนทีฟทันที

  • InstantSpaceSwitcher ที่พัฒนาโดย jurplel บน GitHub ช่วยลบข้อจำกัดทั้งหมดข้างต้นและรองรับการ สลับ Space ได้ทันที
    • ให้มาในรูปแบบแอปบนแถบเมนู และทำงานได้โดยไม่ต้องปิด SIP

      • ทำงานโดย จำลองการปัดแทร็กแพดความเร็วสูง เพื่อให้ สลับได้โดยแทบไม่มีความหน่วง
      • มีทั้งฟังก์ชัน ย้ายไปยังหมายเลข Space โดยตรง และ command-line interface (CLI)
      • ตัวอย่างการใช้ CLI:
      .build/release/ISSCli [left|right|index <n>]
      
      • ขั้นตอนการติดตั้งมีดังนี้
      • git clone https://github.com/jurplel/InstantSpaceSwitcher
      • cd InstantSpaceSwitcher
      • ./build.sh
      • หลังจาก build แล้วสามารถรันเป็น แอปแบบเนทีฟ ได้
      • ปัจจุบันใน GitHub repository มี ดาว 1 ดวง (ของผู้เขียนเอง) เท่านั้น และคาดหวังว่าจะมีผู้ใช้ค้นพบและนำเครื่องมือนี้ไปใช้มากขึ้น

ข้อมูลอ้างอิงเพิ่มเติม

  • instantspaces เป็นความพยายามในการแยก instant switcher ของ yabai ออกมา แต่ ใช้งานไม่ได้บน macOS Tahoe
    • แม้พยายามหลายครั้งก็ยังไม่สำเร็จ และ InstantSpaceSwitcher ทำงานได้เสถียรกว่า
    • หากมีผู้ใช้อื่นที่ทำสำเร็จ ผู้เขียน ขอรับฟีดแบ็ก

1 ความคิดเห็น

 
GN⁺ 20 일 전
ความเห็นจาก Hacker News
  • ตั้งแต่เด็กก็ชินกับ แอนิเมชันการสลับ Spaces นี้ เลยไม่เคยคิดว่ามันน่ารำคาญ
    แต่พอซื้อ MacBook ใหม่ ก็เริ่มรู้สึกว่ามันรวนบ่อย เพราะกดคีย์ลัดได้เร็วกว่าการสลับโฟกัสของระบบ
    พอค้นดูก็พบว่าไม่ใช่เพราะ muscle memory ของตัวเองผิด แต่เป็นเพราะบน Mac รุ่นใหม่ที่ใช้จอ 120Hz ความเร็วแอนิเมชันช้าลงจริง
    ถ้าปรับหน้าจอกลับไปที่ 60Hz ก็จะกลับมาเร็วเท่าเดิม
    เลยสงสัยว่าทำไมถึงเกิดการเปลี่ยนแปลงแบบนี้ขึ้นมา และทำไมผ่านไป 5 ปีแล้ว บริษัทมูลค่าตลาด 3.82 ล้านล้านดอลลาร์ ยังไม่แก้ไข
    ดูการถกเถียงที่เกี่ยวข้องได้ใน ฟอรัม Apple และ วิดีโอ YouTube

    • ไม่น่าเชื่อเลยว่า บั๊ก ที่เก่าแบบนี้ยังคงอยู่
      ชวนให้สงสัยว่าวิศวกรของ Apple ใช้ macOS กันจริงหรือเปล่า
    • ผมไม่ค่อยรู้เรื่องการปรับแต่งบน Mac แต่ใน Android กับ Linux ผมเคยปิดแอนิเมชัน แล้วก็ไม่ได้รู้สึกคิดถึงมันเลย
      สุดท้ายมันมีประโยชน์แค่ เอฟเฟกต์ว้าวช่วงแรก เท่านั้น
    • ตอนที่ได้ใช้ MacBook 120Hz ครั้งแรกในปี 2021 ก็รู้สึกได้ทันที
      น่าแปลกใจที่ฟังก์ชัน UI พื้นฐานแบบนี้ยังไม่ได้รับการแก้ไขจนถึงตอนนี้
    • ผมก็เจอปัญหาเดียวกันอยู่เหมือนกัน
      มันน่าหงุดหงิดมากที่ระหว่างสลับ Spaces แล้วคีย์อินพุตไปลงหน้าต่างผิดบาน ตอนนี้เพิ่งรู้ว่าสาเหตุคือ MacBook ใหม่
      โล่งใจจริง ๆ
    • เดาว่าน่าจะเป็นเพราะ วิธีคำนวณแอนิเมชันแบบหน่วงความเร็ว
      คล้ายกับเกมที่ไม่จำกัดเฟรมเรตแล้วการเคลื่อนไหวเปลี่ยนไปตามอัตราเฟรม
  • คิดว่า Apple กำลังทำ ความผิดพลาดร้ายแรง จริง ๆ
    Microsoft ก็เหมือนกัน
    ควรออกแบบอินเทอร์เฟซที่ดีและค่าเริ่มต้นที่สมเหตุสมผล แต่ ไม่ควรมัดมือมัดเท้าผู้ใช้ระดับสูง
    ผู้ใช้ระดับสูงอาจมีจำนวนน้อย แต่เป็นกลุ่มสำคัญที่ช่วยพัฒนาภาษาการออกแบบ ค้นหาบั๊ก และขับเคลื่อนชุมชน
    แต่ Apple กับ Microsoft กลับปิดระบบนิเวศมากขึ้นภายใต้ข้ออ้างเรื่องการควบคุม
    ผลลัพธ์คือผู้ใช้ยิ่งใช้งานได้ลำบากขึ้นเรื่อย ๆ
    นั่นจึงเป็นเหตุผลว่าทำไม ความนิยมของ Linux ถึงกลับสูงขึ้น เพราะมันให้การควบคุมเต็มรูปแบบและอุปสรรคในการเริ่มใช้งานก็ลดลงแล้ว
    Apple ในอดีตเคยรักษาสมดุลนี้ได้ดี แต่ตอนนี้ดูเหมือนเป็นแค่ความหมกมุ่นในการควบคุม

    • ปัญหาคือ ตอนนี้พวกเขาไม่ได้ให้แม้แต่ ค่าเริ่มต้นที่ดี แล้วด้วยซ้ำ
      ดีไซน์ที่แย่มักไม่หายไปง่าย ๆ เลยอยู่ต่อเป็นสิบ ๆ ปี
      เวลาที่เสียไปกับแอนิเมชันไม่ใช่แค่ผู้ใช้ระดับสูงที่เสีย แต่ทุกคนเสียหมด
  • พูดถึง yabai แล้ว ขอแนะนำให้ลอง Aerospace จริง ๆ
    ผมใช้ WM มาหลายตัว แต่นี่เสถียรที่สุดแล้ว
    Aerospace GitHub

    • ผมก็ใช้ Aerospace อยู่ มันทำงานได้ยอดเยี่ยมแทบไม่ต้องตั้งค่าเลย
      ค่าเริ่มต้นก็ดีมาก จนหลายปีมานี้แทบไม่ได้ไปแตะอะไรเลย
      แต่ผมก็ไม่ใช่ ผู้ใช้ระดับสูงของ tiling WM นะ
    • Aerospace เป็นเครื่องมือที่น่าทึ่งจริง ๆ
    • เมื่อก่อนผมใช้ macOS Spaces เยอะมาก แต่พอมีคนแนะนำแล้วเปลี่ยนมาใช้ Aerospace ก็พอใจสุด ๆ
      เคยพิจารณา Yabai เหมือนกัน แต่มีฟีเจอร์ที่ต้องปิด SIP (System Integrity Protection) เลยไม่เอา
    • เมื่อก่อนมันทำงานได้ดี แต่ช่วงนี้กลับชอบทำหน้าต่างหาย จนต้อง รีเซ็ตซ้ำ ๆ
  • ช่วงหลังย้ายมาใช้ macOS เพราะงาน แต่นี่ไม่ใช่ จุดสูงสุดของงานวิศวกรรม เลยจริง ๆ
    อาจเพราะคุ้นกับ Linux desktop ที่ตั้งค่าเองมา พอมาใช้ macOS ก็รู้สึกว่ามันช้า ตั้งค่ายาก และ ไม่เป็นมิตรกับคีย์บอร์ด

  • ก่อนหน้านี้ไม่เคยรู้มาก่อน แต่ตอนนี้เพิ่งรู้ว่า แอนิเมชันการสลับ Spaces ของ macOS น่ารำคาญขนาดนี้

    • แถมบนจอ 120Hz มันยิ่งช้าลง และโฟกัสอินพุตยังค้างอยู่ใน Space เดิมจนกว่าแอนิเมชันจะจบ
    • จากนี้คุณคงจะเริ่มสังเกตเห็นปัญหาอื่น ๆ ด้วย ดังนั้น เพื่อสุขภาพจิต ลืมมันไปจะดีกว่า
  • เพราะบั๊กนี้ของ macOS เลยย้ายไปใช้ Fedora Asahi Remix
    Asahi Remix ใช้ Gnome เป็นฐาน และจัดการหน้าต่างได้สมเหตุสมผลกว่ามาก
    วิดีโอบั๊กอยู่ที่นี่

    • ผมก็ย้ายไป Asahi Linux ด้วยเหตุผลเดียวกัน
      เป็นผู้ใช้ Mac มาตั้งแต่ยุค System 6 ช่วงต้นยุค 90 แต่ตอนนี้ไม่แน่ใจแล้วว่าจะซื้อฮาร์ดแวร์ชิ้นต่อไปจาก Apple หรือไม่
    • ผมใช้ Asahi Alarm (ฐาน Arch) กับ Sway อยู่
      เปลี่ยนทันทีหลังจาก macOS บังคับอัปเดตโดยไม่สนใจว่าผมต้องการหรือไม่
  • ไอเดียในการ สังเคราะห์การปัดอย่างรวดเร็ว เพื่อกำจัดแอนิเมชันการสลับนั้นอัจฉริยะจริง ๆ

  • เป็นเรื่องที่เกี่ยวกันนิดหน่อย แต่เวลาหลังรีบูตแล้ว Finder กู้คืนหลายแท็บ
    ถ้าคลิกแท็บ หน้าต่างจะ ย้ายไปอีก Space แบบฉับพลัน
    เหมือนระบบคิดผิดว่าแท็บในหน้าต่างเดียวกันอยู่คนละ Space
    บั๊กในซอฟต์แวร์ของ Apple ช่วงนี้ดูไม่ใช่แค่กรณียกเว้นธรรมดา แต่เหมือนเกิดจาก โครงสร้างการจำลองโมเดลที่ผิดตั้งแต่ต้น

  • แฮ็กการสลับ Spaces นี้ก็เจ๋งดี แต่ถ้ามีวิธีคืน กริด Spaces แบบ 2D ของ OS X 10.5/10.6 ได้ก็คงดีมาก
    ดีไซน์แบบเชิงเส้นหลัง 10.7 มันเรียบง่ายเกินไป

    • ผมก็คิดถึงฟีเจอร์นั้นมากเหมือนกัน
      พอย้ายจาก macOS ไป KDE ก็ได้ กริด virtual desktop 3x3 กลับมาอีกครั้ง และมันสะดวกมาก
      สามารถตรึงแต่ละเดสก์ท็อปไว้ตามการใช้งานได้ และแอนิเมชันสลับก็ปรับได้อิสระทั้ง เฟด·สไลด์·ความเร็ว
      ความสามารถในการปรับแต่งที่ ยืดหยุ่น แบบนี้คือเสน่ห์ของ KDE จริง ๆ
  • หลังจากคุ้นกับตัวเลือกอย่าง Hyperland และ Niri บน Linux แล้ว ช่วงนี้ผมกำลังลองใช้ OmniWM อยู่

    • แม้ยังอยู่ในช่วงพัฒนาแรก ๆ แต่ ความเร็วในการแก้บั๊ก เร็วมาก
      เวลาจำเป็นต้องใช้ macOS, OmniWM ช่วยให้พอทนได้มากขึ้น
    • ผมไม่ใช้ Spaces หรือ window manager เลย เลยสงสัยว่าแค่ สลับด้วย Cmd+Tab อย่างเดียวผมกำลังพลาดอะไรไปหรือเปล่า
      หรือมันอาจเป็นประสบการณ์ที่เปลี่ยนชีวิตก็ได้?
    • ผมก็เคยคิดแบบนั้น แต่ OmniWM ดูดีมากจนตั้งใจว่าจะลองใช้ทันที