Natty Narwhal Ubuntu

Ubuntu คืออะไร?
Ubuntu เป็นชุดแจกจ่ายลินุกซ์ (Linux Distribution) ซึ่งใช้งานได้ฟรีๆ โดยฟรีในความหมายนี้ มีสองประการ
1. ใช้ฟรี (Free Beer) คือสามารถใช้งานได้ โดยไม่เสียค่าใช้จ่ายใดๆ
2. เสรีภาพ (Freedom) คือมีอิสระในการใช้งาน สามารถใช้งาน แก้ไข ดัดแปลง แต่งเติม แจกจ่าย คัดลอกได้ตามต้องการ
โดย ใน Ubuntu นี้เองจะประกอบด้วยซอฟต์แวร์ Open Source คุณภาพดีหลายๆ ตัว (ยกเว้นบางตัว อาจไม่ใช่ Open Source เช่น driver อุปกรณ์ต่างๆ ที่จำเป็นต้องใช้ให้ระบบทำงานได้เต็มประสิทธิภาพ โดย Ubuntu เองจะไม่แถมพวกนี้ลงในแผ่นติดตั้งให้มาก จะต้องติดตั้งภายหลังผ่านอินเทอร์เน็ต)

Ubuntu นี้พัฒนาโดยชุมชน โดยมีบริษัท Canonical ให้การสนับสนุน ดังนั้นคุณๆ เองก็สามารถมีส่วนร่วมในการพัฒนา Ubuntu ได้เช่นเดียวกัน
Ubuntu มีการออกรุ่นใหม่ทุกๆ 6 เดือน โดยในแต่ละรุ่นจะมีการสนับสนุน ยาว 18 เดือน และรุ่นที่ต่อท้ายด้วย LTS (ปัจจุบันนี้คือ 6.06 และ 8.04) จะมีการสนับสนุนนานเป็นพิเศษถึง 3 ปีบนเดสก์ท็อป และ 5 ปีบนเซิร์ฟเวอร์ และสามารถอัพเกรดระหว่างรุ่นต่างๆ ได้

วิวัฒนาการของ Ubuntu
*Ubuntu 5.04
*Ubuntu 6.06 LTS "Dapper Drake"
*Ubuntu 7.04 "Feisty Fawn"
*Ubuntu Studio 7.04
*Ubuntu 9.10 "Karmic Koala"
*Ubuntu 10.04 LTS "Lucid Lynx"
*Ubuntu 10.10 Maverick Meerkat

การเปลี่ยนแปลงครั้งสำคัญของ Ubuntu กับ Natty Narwhal

Ubuntu เป็นดิสโทรที่ผูกกับระบบเดสก์ท็อป GNOME อย่างแนบแน่น โดยเฉพาะกระบวนการออกรุ่นที่ออกทุก 6 เดือนตาม GNOME (Ubuntu จะออกช้ากว่า GNOME ประมาณหนึ่งเดือนเสมอ) แต่ในช่วง 1-2 ปีให้หลัง Ubuntu ก็มีทิศทางการพัฒนาที่หันเหออกจาก GNOME อย่างชัดเจน โดยเฉพาะเมื่อ GNOME ยกเครื่องระบบเดสก์ท็อปของตัวเองใหม่ใน GNOME 3 ที่ใช้ GNOME Shell เป็นส่วนติดต่อผู้ใช้แบบใหม่ สถานการณ์กลายเป็นว่า Ubuntu ไม่ยอมใช้ GNOME Shell แต่เลือกสร้างระบบเดสก์ท็อป Unity ของตัวเอง (รายละเอียดอ่านจาก สงครามภายในโลกโอเพนซอร์ส เมื่อ GNOME ไม่เห็นด้วยกับ Ubuntu)

Unity เปิดตัวครั้งแรกเมื่อเดือน พ.ค. 2010 โดยเริ่มใช้กับ Ubuntu 10.10 Maverick Meerkat ในฐานะอินเทอร์เฟซสำหรับเน็ตบุ๊ก ในช่วงแรก Unity ยังไม่ค่อยลงตัวนัก แต่ทางทีมงาน Ubuntu ก็ค่อยๆ แก้ไขบั๊กเรื่อยมา พอมาถึงรุ่น 11.04 ก็ตัดสินใจใช้ Unity เป็นอินเทอร์เฟซหลักทั้งเดสก์ท็อปและเน็ตบุ๊ก

Unity เป็นอินเทอร์เฟซที่เรียกว่า "สร้างขึ้นโดย Ubuntu และเพื่อ Ubuntu" อย่างเต็มปาก ตอนนี้ก็ชัดเจนแล้วว่า Ubuntu จะมุ่งไปในทิศทางนี้ ในขณะที่ดิสโทรอื่นๆ อย่าง OpenSUSE หรือ Fedora มุ่งไปในทาง GNOME Shell ตาม GNOME 3

Natty Narwhal เป็น Ubuntu รุ่นแรกที่นำ Unity มาใช้อย่างเป็นทางการ ซึ่งถือเป็นการเปลี่ยนแปลงครั้งสำคัญนับตั้งแต่เกิดโครงการ Ubuntu ขึ้นมา รีวิวชิ้นนี้จะเจาะลึกไปที่ Unity เป็นหลัก และจะไม่พูดถึงของใหม่อย่างอื่นๆ ใน Natty อย่าง Firefox 4, LibreOffice, Banshee ซึ่งไม่ใช่ "หน้าใหม่" ในโลกของลินุกซ์

เริ่มต้นกับ Unity

หน้าจอมาตรฐาน

flickr:5702927976

สิ่งที่หายไปคือ panel ด้านล่างของหน้าจอ และเมนูสำหรับเรียกโปรแกรมที่อยู่ด้านบนของหน้าจอ ส่วนสิ่งที่เพิ่มเข้ามาคือ "Unity Launcher" ที่ขอบซ้ายของจอ

ดูจากหน้าตาแล้ว Unity Launcher จะคล้ายกับ Dock ของ Mac OS X หรือ Superbar ของ Windows 7 ซึ่งก็เป็นความเข้าใจที่ถูกต้องในระดับหนึ่ง แต่กระบวนการทำงานเรียกโปรแกรม-สลับงานทั้งหมดของ Unity นั้นก็มีความแตกต่างออกไปบ้าง จนเป็นเอกลักษณ์ของตัวเองไม่น้อย

การทำงานกับ Unity
หมายเหตุ: การอธิบายกระบวนการทำงานของ Unity โดยใช้ข้อความ+ภาพทำได้ยากมาก ผมแนะนำว่าเพื่อความเข้าใจที่ดี ผู้อ่านควรทดสอบ Ubuntu 11.04 ด้วยตัวเอง (เป็น live image ก็ทำได้ง่ายมากแล้ว) หรืออย่างน้อยๆ ลองหาวิดีโอใน YouTube ดูประกอบก็ได้
การเรียกโปรแกรมจาก Unity Launcher

flickr:5702357093

ดูจากหน้าตาของ Unity Launcher แล้วก็น่าจะเดากันได้ว่า การคลิกที่ไอคอนของโปรแกรมคือการเรียกโปรแกรมนั้นๆ ขึ้นมา อันนี้เข้าใจง่ายตรงไปตรงมาครับ
จากภาพผมคลิกไอคอนแรก Home Folder โปรแกรมจัดการไฟล์ Nautilus ก็โผล่ขึ้นมาให้เห็น สังเกตว่าตรงไอคอน Home Folder จะมีสามเหลี่ยมขึ้นมาสองอัน อันทางซ้ายมือหมายถึงว่าโปรแกรมกำลังรันอยู่ ส่วนไอคอนทางขวามือบอกว่าเป็นโปรแกรม active ณ ขณะนั้น

flickr:5702926238

ในกรณีที่มีไอคอนบน Unity Launcher มากๆ ไอคอนที่อยู่ท้าย ๆ จะถูกย่อลงตามภาพ (เมื่อเอาเมาส์ไปชี้ก็จะกลับสู่สภาพเดิม)

flickr:5702357227

Unity ยังมีฟีเจอร์ด้าน accesability สำหรับเรียกโปรแกรมโดยไม่ต้องใช้เมาส์ โดยกดปุ่ม Super (Windows) ค้างไว้ จะมีหมายเลขปรากฏขึ้นมาตามลำดับ เราก็กดปุ่มตัวเลขให้ตรงตามโปรแกรมเป็นพอ
Context menu ของ Unity Launcher
ถ้าคลิกขวาที่ไอคอนใน Unity จะมี context menu ปรากฏขึ้นมา อันนี้จะคล้ายกับ Mac OS X คือมีคำสั่งให้เลือกว่าจะเก็บไว้ใน Unity Launcher หรือไม่ และคำสั่งปิดโปรแกรม

เมนูของ Unity Launcher จะรองรับคำสั่งพิเศษแบบเดียวกับ Jump List ของ Windows 7 ด้วย ตัวอย่างในภาพคือโปรแกรมจับหน้าจอ Shutter แสดงคำสั่งที่ใช้บ่อยหลายอัน
Global Menu ย้ายเมนูบาร์ไปไว้ด้านบน

จุดที่น่าสังเกตอีกอย่างคือ "เมนูบาร์" ที่เคยอยู่ใต้ชื่อหน้าต่าง ถูกย้ายไปไว้ในแถบด้านบนสุดของหน้าจอ อันนี้เหมือนกับ Mac OS X แบบเด๊ะๆ แต่จะว่าลอกก็คงพูดได้ไม่เต็มปาก (เพราะอะไร? อ่านต่อไปครับ) แนวทางนี้ถูกเรียกว่า "Global Menu" เพราะพื้นที่แสดงเมนูอันเดียวใช้ได้กับทุกโปรแกรม
เหตุผลที่เมนูบาร์ถูกนำไปไว้ด้านบน เป็นเพราะ Ubuntu ต้องการเพิ่มพื้นที่แสดงผลในแนวตั้งให้มากที่สุดนั่นเอง
การรันโปรแกรมแบบเต็มหน้าจอ

จากภาพก่อนหน้านี้ ผมรัน Nautilus ในโหมดหน้าต่าง ทีนี้ลองกดปุ่ม maximize เพื่อขยายเต็มจอ จะได้ผลลัพธ์ดังภาพข้างบน
จะเห็นว่า Unity Launcher หายไป ส่วนโปรแกรม Nautilus ถูกขยายเต็มหน้าจอ โดยปุ่มควบคุมหน้าต่าง 3 ปุ่มถูกย้ายไปอยู่ในแถบด้านบนสุด (พื้นที่ที่เคยแสดง titlebar หายไป)
แถบด้านบนสุดจะทำหน้าที่สองอย่าง คือ
1. แสดงข้อความที่เคยอยู่ใน titlebar
2. แสดงเมนูบาร์
วิธีการสลับระหว่างสองโหมดนี้ก็มีหลายทาง อย่างแรกคือกดปุ่ม Alt ข้อความไตเติลจะกลายเป็นเมนูบาร์ (ลักษณะเดียวกับ Firefox 4) อย่างที่สองคือลากเมาส์ขึ้นไปชนขอบบนสุดของหน้าจอ ก็จะได้ผลแบบเดียวกัน
จุดนี้ทำให้ Unity ต่างกับ Mac OS X เพราะแถบข้างบนสุดใช้ประโยชน์ได้สองอย่าง (กรณีของ Mac OS X ใช้เป็นเมนูบาร์ได้อย่างเดียว) แนวคิดเหล่านี้พัฒนามาจาก Ubuntu Netbook Remix ในอดีต ที่ต้องดิ้นรนเพื่อสร้างพื้นที่แสดงผลในแนวตั้งเช่นกัน
เท่าที่ผมใช้ก็พบว่าไม่มีปัญหาอะไรครับ ยิ่งคนที่คุ้นเคยกับ Mac OS X มาแล้ว ยิ่งปรับตัวได้ง่าย
การเรียก Unity Launcher ในโหมดเต็มหน้าจอ

เมื่อโปรแกรมของเราถูกสั่ง maximize ในหัวข้อก่อน Unity Launcher ก็หายไปจากหน้าจอ การเรียกมันกลับมาก็เดาได้ไม่ยาก เพียงแค่ลากเมาส์ไปชนขอบซ้ายสุดของหน้าต่าง Unity Launcher จะกลับมาอีกครั้งในรูป overlay คือ "ลอยทับ" หน้าต่างที่อยู่ข้างใต้
แนวคิดนี้ไม่ต่างอะไรกับ autohide ของ Taskbar หรือ Dock
การสลับหน้าต่าง
GNOME ใช้แนวคิดการมอง "หน้าต่าง" แบบเดียวกับ Windows คือ "หน้าต่าง" เป็นวัตถุชนิดเดียวบน Taskbar หนึ่งโปรแกรมมีกี่หน้าต่างไม่สนใจ เพราะระบบจะสนใจการ "สลับ-เปลี่ยน-ปิด" หน้าต่างเท่านั้น
แนวคิดนี้จะต่างจาก Mac OS X ที่แยกชนิดของ "โปรแกรม" และ "หน้าต่าง" ทำให้การจัดการโปรแกรม/หน้าต่างมีความซับซ้อนขึ้น (ซึ่งคนใช้แมคใหม่ๆ จะงงกับ "การปิดหน้าต่างไม่ปิดโปรแกรม" นั่นเอง)
Unity Launcher การ "สลับหน้าต่าง" แบ่งได้เป็น 2 กรณีย่อย
• สลับไปยังหน้าต่างของโปรแกรมอื่น
• สลับไปยังหน้าต่างอื่นของโปรแกรมเดียวกัน
กรณีแรกตรงไปตรงมา เพราะเราคลิกที่ไอคอนของโปรแกรมนั้นๆ บน Launcher ก็จะเรียกหน้าต่างของโปรแกรมนั้นขึ้นมาแสดง
ส่วนกรณีที่สอง เราต้องคลิกไปที่ไอคอนของโปรแกรมเดิม (ซึ่งจะแสดงจำนวนหน้าต่างเป็น "จุดสีขาว" แบบเดียวกับ Mac OS X) ผลก็คือหน้าจอแบบ Expose นั่นเอง

แนวทางการสลับหน้าต่างแบบนี้จะคล้ายๆ กับ Superbar ของ Windows 7 ที่แสดง "ภาพพริวิวของหน้าต่างที่เปิดอยู่" เหนือไอคอนของโปรแกรม เพียงแต่กรณีของ Unity จะแสดงพรีวิวเต็มหน้าจอ ต่างไปจาก Windows 7 ที่แสดงภาพพรีวิวขนาดเล็กๆ เหนือไอคอน
การสลับ Workspace
เดสก์ท็อปของลินุกซ์มีแนวคิดของ workspace หรือพื้นที่ทำงานหลายอัน มานานแล้ว และมันก็ตามมาใน Unity ด้วย

วิธีการใช้งาน คือกดไอคอนที่สามจากด้านล่าง (รูปสี่เหลี่ยม 4 อัน) จะพบหน้าจอมุมสูงของ workspace ทั้งสี่อัน เลือกย้ายโปรแกรมกันได้ตามสะดวก (ช็อตคัตของหน้าจอเลือก workspace คือ Super+W)
การเรียกโปรแกรมที่ไม่ได้อยู่บน Launcher
ไอคอนบน Unity Launcher มีเพียงไม่กี่อันเท่านั้น คำถามคือเราจะเรียกโปรแกรมอื่นๆ ที่เหลือได้อย่างไร?

คำตอบก็คือไอคอน Ubuntu เล็กๆ ที่อยู่มุมซ้ายบนสุดของหน้าจอ เมื่อกดแล้วจะพบกับหน้าต่างลอย (overlay) สีเทาเข้มดังภาพ
หน้าต่างนี้เทียบได้กับ Start Menu ของ Unity ครับ แถวบนคือหมวดของโปรแกรมที่ใช้บ่อย ส่วนแถวล่างคือช็อตคัตของโปรแกรมที่ใช้บ่อย (โปรแกรมทั้งหมดต้องกด More Apps)
แต่เอาเข้าจริงแล้ว เราแทบไม่ได้คลิกอะไรในหน้าจอนี้เลย เพราะมันออกแบบมาให้เรา "พิมพ์" ชื่อโปรแกรมในช่องค้นหา ลักษณะเดียวกับ Start Menu ของวินโดวส์รุ่นหลังๆ (ถ้าใครเคยใช้ GNOME Do, Launchy หรือ Quicksilver จะเข้าใจได้ไม่ยาก)
หน้าจอเรียกโปรแกรมนี้สามารถใช้ช็อตคัตปุ่ม Super (หรือปุ่ม Windows) เรียกมันขึ้นมาได้ ดังนั้นกระบวนการทำงานจะเป็นกด Super แล้วพิมพ์ชื่อโปรแกรมที่ต้องการ แล้วกด Enter เพื่อเรียกโปรแกรมนั่นเอง (ส่วนโปรแกรมที่ใช้บ่อยขึ้เกียจพิมพ์ ก็นำไปไว้ใน Unity Launcher ซะ)
รู้จักกับ Lens
แพลตฟอร์ม GNOME 3 มีโปรแกรมใหม่ตัวหนึ่งชื่อว่า Zeitgeist ทำหน้าที่เก็บ metadata ของโปรแกรม ไฟล์ ข้อมูล กิจกรรมต่างๆ ของผู้ใช้ ทำให้โปรแกรมรุ่นใหม่สามารถเรียกใช้ข้อมูลเหล่านี้ เพื่อสร้างการใช้งานที่มีความหมายมากขึ้นได้
Unity ก็เรียกใช้ข้อมูลจาก Zeitgeist เช่นกัน ผ่านแนวคิดที่เรียกว่า "เลนส์" (lens) ซึ่งจะมองว่ามันเป็น "ฟิลเตอร์" ก็ได้
Ubuntu 11.04 ให้ "เลนส์" มาตรฐานมาสองตัว มันคือไอคอนรูปแว่นขยายสองอันท้ายใน Unity Launcher

อันแรกรูปเครื่องหมายบวกคือ Application Lens ซึ่งจะ "กรอง" เอาโปรแกรมต่างๆ มาแสดงให้เราเห็นเป็น 3 หมวด ได้แก่
• โปรแกรมที่ใช้บ่อย (Most Frequency Used)
• โปรแกรมทั้งหมดที่อยู่ในเครื่อง (Installed)
• โปรแกรมที่เลือกติดตั้งเพิ่มได้ (Apps Available for Download)

อันที่สองรูปเอกสารคือ Files Lens จะ "กรอง" ไฟล์และโฟลเดอร์ที่เราน่าจะใช้บ่อยๆ 3 หมวด ได้แก่
• ไฟล์ล่าสุดที่เปิด (Recent)
• ไฟล์ที่ถูกดาวน์โหลดมา (Downloads)
• โฟลเดอร์ที่ใช้บ่อย (Favorite Folders)
แนวคิดเรื่อง Lens ไม่จำกัดเฉพาะโปรแกรมหรือไฟล์เท่านั้น มันสามารถนำไปพลิกแพลงได้อีกมาก เช่น
• Lens สำหรับแสดงข้อความทวีต (จากโปรแกรม Gwibber)
• Lens สำหรับแสดงเพลงบนร้านค้า Ubuntu One Music Store
• Lens สำหรับแสดงวิดีโอที่น่าสนใจบน YouTube
• Lens สำหรับแสดงหนังสือจาก Google Books
รายละเอียดลองดูใน OMG Ubuntu ครับ
การปรับแต่ง Unity Launcher
จุดอ่อนของ Unity Launcher คือมันยังใหม่มาก หลายจุดยังทำไม่เสร็จดี และตอนนี้ก็ปรับแต่งอะไรแทบไม่ได้เลย แม้แต่ขนาดของตัว Launcher เองก็ปรับไม่ได้ ปรับให้ Unity ไม่ autohide ก็ทำไม่ได้

ทางแก้แบบอ้อมๆ ก็มีครับ นั่นคือโปรแกรม CompizConfig Settings Manager (CCSM) ต้องลงเพิ่มจาก Ubuntu Software Center มันมาพร้อมกับปลั๊กอินในการปรับแต่ง Unity ดังภาพ

โปรแกรม CCSM สามารถปรับแต่ง Unity ได้พอสมควร เช่น ปรับขนาดของไอคอน (จากภาพลดขนาดเหลือ 32 จากขนาดปกติ 48), ปรับไม่ให้ autohide, เปลี่ยนปุ่มลัดสำหรับสั่งงานต่างๆ และปรับสี-แอนิเมชัน

คนอื่นจะชอบยังไงไม่รู้ แต่ผมลองมาหลายท่าแล้ว พบว่าสั่งให้ Unity ปรากฏตัวอยู่ตลอด ดีกว่าให้มัน autohide ก็ตั้งค่าไปตามนั้น (เวลา maximize โปรแกรมเต็มหน้าจอ จะสวยกว่ามาก)
Indicator/Notifier
Ubuntu 10.04 Lucid Lynx ที่ออกเมื่อ 1 ปีก่อน เริ่มนำระบบ panel/indicator/notification แบบใหม่มาใช้ ทำให้กระบวนการแจ้งเตือนรวมศูนย์อยู่ที่เดียวกันทั้งหมด ใช้งานง่ายไม่เกะกะ ระบบนี้ถูกปรับปรุงให้สมบูรณ์ขึ้นใน Ubuntu 10.10 Maverick Meerkat และเมื่อมันเดินทางมาถึง Natty Narwhal ก็ต้องถือว่ามันเติบโตเต็มที่แล้ว โปรแกรมสำคัญๆ รองรับเกือบครบแล้ว

Natty ตัดเอา Panel แบบเก่าของ GNOME 2.x ทิ้งไปเลย ดังนั้น Panel Applet แบบเก่าๆ จึงไม่สามารถใช้งานได้ (ต้องเป็น Indicator Applet แบบใหม่ของ Ubuntu เท่านั้น) อย่างไรก็ตาม Applet ที่ Natty ให้มาก็ถือว่าครอบคลุมงานทั่วๆ ไปเกือบหมดแล้ว
ผู้ที่ต้องการปรับแต่ง Indicator เพิ่มเติม สามารถหาข้อมูลได้จาก OMG Ubuntu หมวด Indicator Applets
Scrollbar แบบลอย

การเปลี่ยนแปลงสำคัญอีกอย่างของ Ubuntu 11.04 คือ scrollbar ที่เปลี่ยนจากแบบเก่าๆ มาเป็นแบบ overlay (ตัวแถบเลื่อนปรากฏเมื่อเอาเมาส์ไปชี้ - ข่าวเก่า) ซึ่งได้แรงบันดาลใจมาจากระบบปฏิบัติการสมาร์ทโฟนรุ่นใหม่ๆ
เหตุผลของการเปลี่ยนแปลงครั้งนี้ก็เพราะต้องการเพิ่มเนื้อที่แสดงผล ลดความเกะกะของ scrollbar บนหน้าจอ และเตรียมพร้อมต่อโน้ตบุ๊กหน้าจอสัมผัสที่กำลังได้รับความนิยมเพิ่มขึ้น เรื่อยๆ นั่นเอง

Scrollbar แบบใหม่จะยังงงๆ ไม่ค่อยสม่ำเสมออยู่บ้าง บางครั้งจะปรากฏนอกขอบหน้าต่าง (เหมือนภาพก่อนหน้านี้) บางครั้งจะปรากฏภายในหน้าต่าง (เหมือนภาพนี้) และบางโปรแกรมที่ไม่ได้เขียนด้วย GTK+ แท้อย่าง Firefox ก็จะยังใช้ scrollbar แบบเก่าอยู่
Ubuntu One

บริการซิงค์ไฟล์ Ubuntu One ก็เริ่มมีฟีเจอร์อื่นๆ งอกขึ้นมาแล้ว เช่น Contacts Sync และ Bookmarks Sync แถมตัวโปรแกรม Ubuntu One เองก็ถูกปรับอินเทอร์เฟซไปจากเดิมมาก