Theppitak's blog

My personal blog.

10 พฤศจิกายน 2554

My Desktop

หลังจากที่ใช้ GNOME 3 มาพักหนึ่ง พยายามทำความคุ้นเคย ปรับเปลี่ยนไปมา จนในที่สุดก็มาลงตัวที่รูปแบบนี้:

scaled desktop screenshot

กล่าวคือ เป็น GNOME fallback ที่หน้าตาคล้ายกับ ของเดิม แต่ก่อนที่จะมาลงเอยที่แบบนี้ ผมได้ทดลอง GNOME Shell ใน GNOME 3 มาแล้ว พบว่ามีความไม่สะดวกหลายอย่าง:

  • Stateful UI เป็นสิ่งที่ผมมีปัญหามาตลอด ไม่ว่าจะในเว็บ ในสมาร์ทโฟน หรือบนเดสก์ท็อป เพราะมันไม่สามารถใช้ความเคยชินเพียงอย่างเดียวได้ ต้องใช้สายตาสังเกตความเปลี่ยนแปลงบนหน้าจอ โดยเฉพาะ Activity mode ของ GNOME Shell ที่ไปซ่อนอยู่ข้างหลัง ต้องกดปุ่ม logo บนแป้นพิมพ์ หรือแย่กว่านั้นคือต้องเลื่อนเมาส์ไปไกลถึงมุมบนซ้ายของหน้าจอ เพื่อจะเผยสิ่งที่ต้องการขึ้นมาเมื่อต้องการเรียกโปรแกรมหรือแค่สลับหน้าต่าง แทนที่จะให้เห็นได้เลย

    จริงอยู่ว่าในเดสก์ท็อปสุดท้ายของผม ผมใช้ window list แบบเมนูที่มุมบนขวา ซึ่งก็เลื่อนเมาส์ไปหาไกลไม่ต่างกัน แต่มันไม่ได้ทำให้เกิด surprise วูบวาบทั้งหน้าจอ หรือซุกซ่อนไม่ให้ผู้ใช้เห็น แค่แสดงพฤติกรรมปกติของเมนูเท่านั้น และตัวเมนูก็กินเนื้อที่น้อย การเลื่อนเมาส์ต่อจากนั้นเพื่อเลือกหน้าต่างมันลากไม่ไกลเหมือน Activity mode ของ GNOME Shell

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

  • Linear Workspace Layout ใน GNOME Shell ยังคงสามารถสลับ workspace ด้วยแป้นพิมพ์เหมือนเดิมก็จริง แต่ไม่สามารถจัดเรียง workspace แบบหลายแถวให้เป็น 2×2 แบบที่ผมเคยใช้มาก่อนได้ ต้องไล่สลับ workspace เรียงลำดับทีละอัน จากเดิมที่สามารถเปลี่ยนได้ทั้งทางซ้าย-ขวา และบน-ล่าง ทำให้สามารถสลับไป workspace ใด ๆ ก็ได้ภายในไม่เกิน 2 stroke

  • New Terminal Window ด้วยความที่ launcher ของ GNOME Shell เป็นแบบ dock ทำให้เมื่อเปิดเทอร์มินัลไปแล้ว การคลิกที่ launcher อีกครั้งกลายเป็นการโฟกัสไปที่หน้าต่างเดิม ไม่ใช่การเปิดหน้าต่างใหม่ ถ้าต้องการเปิดหน้าต่างใหม่ จะต้องใช้ Ctrl+click ซึ่งไม่ intuitive ถ้าไม่ไปอ่านเจอใน Cheat Sheet ผมคงไม่รู้วิธีเด็ดขาด เพราะการใช้แป้นพิมพ์ร่วมกับเมาส์ไม่ใช่สิ่งที่ใช้กันบ่อยในเดสก์ท็อปทั่วไป

    อย่างไรก็ดี หลังจากพบวิธีการแล้ว มันก็ยังเป็นวิธีที่งุ่มง่ามอยู่ดี เพราะกว่าจะเปิดได้ต้องเข้า Activity mode ก่อน แล้วกวาดสายตาตามหน้าจอที่เปลี่ยนแปลง แล้วต้องกด Ctrl+click อีกชั้น เป็นการทำงานที่มากเกินไปเมื่อเทียบกับการเลื่อนเมาส์ไปคลิก launcher ธรรมดาในแบบเก่า สามารถทำมือเดียวได้เลย

    ผลก็คือ ผมแก้ปัญหานี้ด้วยการสร้าง keyboard shorcut สำหรับเปิดเทอร์มินัล แล้วก็ใช้ keyboard shortcut เป็นหลัก หรือถ้ามีเทอร์มินัลเดิมเปิดอยู่แล้ว ก็ใช้วิธีกด Ctrl+Shift+N ง่ายกว่าใช้วิธีของ GNOME Shell เยอะ

  • Multiload Applet เป็นสิ่งที่ขาดไม่ได้เลย ผมรู้สึกสบายใจที่มีมาตรวัดการทำงานของ CPU และการจราจรเครือข่ายบอกอยู่ตลอดเวลา เพื่อจะได้ประเมินโหลดของเครื่อง หรือเอะใจได้ทันท่วงทีเมื่อมีความผิดปกติในการรับ-ส่งข้อมูลในเครือข่าย แต่พาเนลของ GNOME Shell เป็นพาเนลโง่ ๆ เพิ่มแอพเพล็ตใด ๆ ไม่ได้เลย ต้องรอ GNOME Shell extension ที่จะมาอุดช่องว่างตรงนี้ ในขณะที่พาเนลของ fallback สามารถเพิ่มแอพเพล็ตได้ง่าย ๆ เลย

  • Accidental Maximization การ maximize หน้าต่างด้วยการลากไปชนพาเนลด้านบนนั้นสร้างปัญหาให้ผมอย่างมาก เพราะผมไม่มีนิสัย maximize หน้าต่างเลย โดยเฉพาะกับเทอร์มินัลที่ต้องการรักษาความกว้างไว้ที่ 80 คอลัมน์ และด้วยลักษณะการไม่ maximize ก็ทำให้ผมชอบจัดหน้าต่างให้ชิดขอบ โดยไม่เปลี่ยนขนาด ปรากฏว่าวิธี maximize ของ GNOME Shell ทำให้ผมเสียเวลานานกว่าเดิมในการจัดหน้าต่าง ต้องถอน ๆ ชน ๆ พาเนลบนอยู่นานเพื่อไม่ให้มัน maxmize จนสุดท้ายถึงกับเลี่ยงการจัดหน้าต่างชิดขอบบนไปเลย หันไปชิดขอบล่างแทน

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

อย่างไรก็ดี ข้อดีของ GNOME Shell ที่ผมพบก็มีเหมือนกัน:

  • Single-Workspace Secondary Display เขาเรียกว่าอะไรไม่รู้แหละ แต่มันคือการไม่เปลี่ยน workspace ในจอที่สองตามจอหลัก ซึ่งสะดวกมากสำหรับการวางหน้าต่างที่ต้องการให้อยู่อย่างถาวรไม่ว่าจะย้ายไป workspace ไหน เช่น หน้าต่าง chat, หน้าต่างเฝ้าสังเกตระบบ ฯลฯ แต่เรื่องนี้ก็ไม่ใช่ข้อได้เปรียบอะไรมากมาย เพราะในแบบเก่ายังสามารถกำหนดให้ แสดงบนพื้นที่ทำงานเสมอ ได้เหมือนกัน

หลังจากใช้ความพยายามอยู่พักหนึ่ง ผมจึงตัดสินใจทิ้ง GNOME Shell แล้วกลับมาใช้ fallback session แทน ซึ่งก็ไม่ผิดหวัง หลังจากที่พบวิธีจัดการแอพเพล็ตและพาเนลด้วยการใช้ Alt+right-click แทนการใช้ right-click ธรรมดา คราวนี้พาเนลก็กลับมาเป็นของผมเหมือนเดิมละ

ผมปรับแต่งพาเนลดังนี้:

  • ปรับ workspace layout ให้เป็น 2×2
  • ลบ workspace switcher ในพาเนลด้านล่างแล้วมาเพิ่มในพาเนลด้านบนแทน
  • ใช้ window list menu ในพาเนลด้านบนแทน task bar ด้านล่าง
  • ตัดพาเนลด้านล่างทิ้ง
  • ปรับแต่งเวลาให้แสดงรายงานอากาศด้วย เพราะช่วงนี้อากาศเปลี่ยนแปลงบ่อย เริ่มหนาวแล้ว
  • เพิ่ม multiload applet แสดงกราฟการใช้ CPU, หน่วยความจำ, เครือข่าย, ฮาร์ดดิสก์
  • เพิ่ม launcher สำหรับโปรแกรมที่ใช้บ่อย
  • เลื่อน user menu จากมุมบนขวาไปอยู่ถัดจากเมนูที่มุมบนซ้าย ซึ่งจะเข้ากับเมนู ระบบ ของเดิมพอดี และให้มุมบนขวาสำหรับ window list menu เพราะใช้บ่อย
  • เพิ่ม keyboard shortcut สำหรับเรียกโปรแกรมพื้นฐาน เช่น เทอร์มินัล, เว็บเบราว์เซอร์, เครื่องคิดเลข

แค่นี้ผมก็กลับมามีความสุขกับการทำงานเหมือนเดิม และถ้าจะไปเซ็ตเครื่องให้ผู้ใช้มือใหม่ใช้ ผมก็คงใช้ fallback session เหมือนกัน ไม่ต้องการเพิ่มภาระในการ support ให้กับตัวเอง :P

GNOME Fallback (หรือกำลังจะถูกเปลี่ยนชื่อเป็น GNOME Classic ใน Debian ในอนาคตอันใกล้) จงเจริญ!

Update (2011-11-11 08:50+0700): เพิ่มข้อมูลที่เพิ่งนึกได้ เรื่อง Accidental Maxmimization และการรองรับ single-workspace secondary display

ป้ายกำกับ: ,

03 พฤศจิกายน 2554

ThaiLaTeX Work Plan Completed

น่าจะถือได้ว่าเสร็จแล้วสำหรับ แผนงาน ThaiLaTeX และฟอนต์ ที่ได้วางไว้ หลังจากที่ได้ออก ThaiFonts-Arundina 0.1.3 ที่รองรับการใช้งานใน LaTeX และ ThaiFonts-Scalable 0.4.17 ที่ได้ปรับกระบวนการ build ให้ใช้ทรัพยากรร่วมจาก ThaiLaTeX แล้ว รวมทั้งการอัปโหลดแพกเกจเข้า Debian และ CTAN ด้วย

สำหรับ Debian นั้น ทุกอย่างได้ทยอยเปลี่ยนใน unstable โดยรักษา functionality ตลอดทุกขั้นการอัปเกรด และถ้าไม่เจอปัญหาอะไรร้ายแรง อีกประมาณ 10 วันก็คงจะย้ายเข้า testing โดยอัตโนมัติ ส่วน Ubuntu นั้นผมไม่แน่ใจ เพราะนี่มีการทำให้เกิด source package ชื่อใหม่ การย้ายเข้า 12.04 อาจไม่เป็นไปโดยอัตโนมัติ ซึ่งผมเองก็ไม่แน่ใจกระบวนการของ Ubuntu ว่าต้องติดต่ออะไรใครหรือเปล่า ณ ขณะที่เขียน blog นี้ ยังไม่มีแพกเกจไหนย้ายเข้า Ubuntu เลย คงต้องรอดูอีกสักพัก (เป็นอีกครั้งที่ทำให้อยากมี MOTU คนไทยมาช่วยทำงานทางฝั่ง Ubuntu)

สรุปแผนงานครั้งนี้ สิ่งที่ได้ก็คือ:

  • ลดขั้นตอนการอัปเกรดฟอนต์ใน LaTeX แทนที่จะต้องคัดลอกมาใส่ ThaiLaTeX ทุกรุ่น ต่อไปก็จะอัปเกรดได้ทันทีที่ออกฟอนต์รุ่นใหม่
  • โค้ดข้อกำหนดภาษาไทย (thai.ldf) สำหรับ Babel สะอาดขึ้นมาก จนทำให้พร้อมส่งเข้า Babel มากขึ้นมาก
  • ผู้ใช้สามารถใช้ฟอนต์ชุด Arundina เพิ่มเติม โดยใน Debian ก็ติดตั้งแพกเกจ latex-fonts-sipa-arundina แล้วใช้คำสั่งนี้ใน preamble ของเอกสาร:
    \usepackage{fonts-arundina}
    
    ก็จะเป็นการกำหนดฟอนต์แบบ roman, san-serif และ teletype ให้เป็นชุด Arundina โดยอัตโนมัติ (ตัวอย่างเอกสาร)

สิ่งที่อาจจะทำต่อไปในอนาคต (ถ้ามีเวลา) ก็คือ:

  • ทำความสะอาดและส่งข้อกำหนดภาษาไทยเข้ารวมใน Babel ซึ่งจะทำให้ไม่จำเป็นต้องมี ThaiLaTeX อีกต่อไป
  • ทำฟอนต์ชุดประกวด (สารบรรณ) ของ DIP-SIPA ที่กำลังอยู่ระหว่างดำเนินการเปิดเสรี ให้ใช้กับ LaTeX ได้ แต่ต้องรอให้ SIPA release ฟอนต์อย่างเป็นทางการ หรือมีการดำเนินการอย่างใดอย่างหนึ่งที่เหมาะสมเสียก่อน

แต่เรื่องเหล่านี้คงต้องพักไว้ก่อน เพราะมีอีกเรื่องที่ควรไปสะสาง คือเรื่อง security hardening build flags ในแพกเกจในความดูแลของผม เนื่องจากเป็น release goal หนึ่งของ Wheezy

ป้ายกำกับ: , ,

hacker emblem