Theppitak's blog

My personal blog.

28 พฤศจิกายน 2555

My Alternative Desktops (3) - Xfce

จาก E17 และ LXDE ก็ถึงคราวของ Xfce ละ

Xfce 4 วางตัวไว้เป็น desktop environment ที่ใช้ GTK+ เป็นหลัก จึงเป็นทางเลือกที่ใกล้เคียงกับ GNOME แต่เบากว่า ผมเองเคยใช้แบบโฉบ ๆ เมื่อหลายปีก่อน แล้วก็กลับไปใช้ GNOME เหมือนเดิมเพราะยังมีพันธกิจกับ GNOME อยู่

หน้าจอที่ปรับแต่งจนสามารถใช้สองจอแล้ว เป็นแบบนี้:

Xfce dual monitor screenshot

ซึ่งผ่านการปรับแต่งดังนี้

สองจอ

Xfce ก็เหมือนกับ LXDE ตรงที่เครื่องมือตั้งค่าจอภาพ คือ xfce4-display-settings ตั้งได้แค่การเปิด/ปิดจอภาพ ความละเอียด ความถี่การรีเฟรช และบวกการหมุนจอและกลับซ้ายเป็นขวาได้ด้วย แต่ไม่สามารถตั้งค่าการต่อชนพื้นที่จอได้

Xfce4 Display Settings

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

Xfce4 Background Settings

เรียกได้ว่า กลไกภายในรองรับการใช้สองจอเต็มที่แล้ว ยังขาดก็แต่การตั้งค่าจอภาพในเครื่องมือตั้งค่า!

สำหรับ Xfce ไม่จำเป็นต้องตั้งปุ่มลัดสำหรับสลับการใช้จอเดียว/สองจอ สามารถบังคับใช้สองจอได้เลย ถ้าถอดจอนอกออก มันจะปรับ layout เป็นจอเดียวโดยอัตโนมัติ และเมื่อต่อจอนอกเข้ามาใหม่ มันก็จะปรับเป็นสองจอโดยอัตโนมัติเช่นกัน ดังนั้น สคริปต์ที่ต้องใช้จากคราวที่แล้วจึงมีเพียง dual.sh เท่านั้น

เนื่องจากอาจมีการกำหนดอย่างอื่นอีกในอนาคตนอกเหนือจากเรื่องจอภาพ ผมจึงไม่เรียก dual.sh ตรง ๆ แต่จะเรียกผ่านสคริปต์ ~/bin/xfce-init ที่เขียนขึ้นเองแทน:

$ cat > ~/bin/xfce-init <<EOF
#!/bin/sh

$HOME/.screenlayout/dual.sh
EOF
$ chmod +x ~/bin/xfce-init

จากนั้น ก็ไปกำหนดให้วาระของ Xfce เรียกสคริปต์นี้ในตอนเริ่มด้วย โดยใช้เมนู Settings > Session and Startup > Application Autostart

Xfce Session Startup

เกจ์วัดต่าง ๆ

Xfce ปกตินั้น ไม่มีเครื่องมือแสดงสถานะเครื่องอะไรมากนัก แต่มีปลั๊กอินเพิ่มเติมจาก Xfce Goodies ที่สามารถติดตั้งเพิ่มเติมได้ มีแพกเกจใน Debian ด้วย โดยถ้าติดตั้ง xfce4-goodies ก็จะได้ปลั๊กอินทั้งหมด แต่ผมเลือกติดตั้งเฉพาะที่ใช้ คือ:

  • xfce4-cpugraph-plugin (แสดงโหลดของซีพียูคอร์ต่าง ๆ พร้อมกราฟ)
  • xfce4-netload-plugin (แสดงขีดปริมาณข้อมูลเครือข่ายขาเข้า-ออก)
  • xfce4-places-plugin (เมนูไดเรกทอรีต่าง ๆ สำหรับสั่งเปิดด้วย file manager หรือเทอร์มินัลก็ได้)
  • xfce4-sensors-plugin (แสดงขีดอุณหภูมิต่างของซีพียู ฮาร์ดดิสก์)
  • xfce4-systemload-plugin (แสดงขีดการใช้ทรัพยากรต่าง ๆ ของระบบ)
  • xfce4-weather-plugin (แสดงรายงานอากาศ)

อื่น ๆ

  • ธีมของวิดเจ็ต (Settings > Appearance > Style หรือ xfce4-appearance-settings)
  • ธีมของหน้าต่าง (Settings > Window Manager หรือ xfwm4-settings) พร้อมกับตั้งให้ snap หน้าต่างกับขอบหน้าต่างอื่นด้วย (Advanced > Windows snapping > Snap windows to other windows)
  • ภาพพื้นหลัง (Settings > Desktop > Style หรือ xfdesktop-settings)
  • ปุ่มลัดสำหรับเรียกโปรแกรม (Settings > Keyboard > Application Shortcuts หรือ xfce4-keyboard-settings)
  • Xfce สามารถเปิดใช้ compositing ได้ถ้าต้องการ (Settings > Window Manager Tweaks หรือ xfwm4-tweaks-settings ที่แท็บ Compositor) แต่ตอนนี้ยังก่อน

ปัญหา Slow key

ผมใช้ Xfce อยู่หลายวัน ก็รู้สึกสบายดี เป็นธรรมชาติ มีเฟอร์นิเจอร์ที่ต้องการครบครัน แต่มีเรื่องกวนใจอยู่เรื่องหนึ่ง คือถ้าผมกดปุ่ม Shift ค้างเกิน 10 วินาที เช่น อาจเป็นตอนเลือกด้วยเมาส์ด้วยการกด Shift ประกอบ ปรากฏว่าจะมี notification ว่า Slow key is enabled ซึ่งเป็นการเปิดฟังก์ชันสิ่งอำนวยความสะดวก (accessibility) ป้องกันการรัวปุ่มสำหรับคนที่นิ้วมีปัญหายกขึ้นเร็วไม่ได้ แต่ละปุ่มต้องกดค้างประมาณ 1 วินาทีถึงจะได้ตัวอักษร ซึ่งทำให้ผมแทบพิมพ์อะไรไม่ได้เลย ต้องไปคอยสั่งปิดที่ Settings > Accessibility ด้วยการสั่งเปิดครั้งหนึ่ง แล้วสั่งปิดอีกครั้ง (เพราะค่าตั้งตรงนั้นก็ไม่ได้เปิดอยู่)

จาก Debian #657969 ทำให้ได้รู้ว่าเป็นปัญหาเฉพาะกับผู้ที่เข้าระบบผ่าน GDM เท่านั้น โดย GDM จะเปิดฟังก์ชัน AccessX ไว้ ทำให้มีการตรวจสอบพฤติกรรมแป้นพิมพ์เพื่อเปิดใช้สิ่งอำนวยความสะดวก และความเห็นหนึ่งใน RedHat #816764 ได้บอกว่าได้ติดต่อนักพัฒนาต้นน้ำแล้ว ซึ่งต้นน้ำได้แก้ปัญหานี้ทันทีใน git และผู้ดูแลแพกเกจ Xfce ใน Debian กำลังปรึกษา release team ว่าสามารถแก้ปัญหานี้ใน Wheezy ที่กำลัง freeze อยู่ได้หรือไม่ แต่ในระหว่างนี้ ผู้ใช้สามารถแก้ขัดได้โดยใช้คำสั่ง xkbset -a

$ sudo apt-get install xkbset
$ xkbset q | grep Accessibility
Accessibility Features (AccessX) = On
$ xkbset -a
$ xkbset q | grep Accessibility
Accessibility Features (AccessX) = Off

ก็จัดการเพิ่มคำสั่งลงใน ~/bin/xfce-init ของผมเสีย:

$ vi ~/bin/xfce-init
#!/bin/sh

$HOME/.screenlayout/dual.sh
xkbset -a

ปัญหาก็หายเป็นปลิดทิ้ง

ประเมินผล

  • เรื่องการใช้สองจอ Xfce ทำได้ดี ยกเว้นการตั้งค่าที่ยังต้องใช้ ARandR ช่วย แต่หลังจากนั้นก็ไหลลื่นตลอด ในแง่นี้ถือว่า Xfce ทำได้ดีกว่า LXDE แต่ก็ยังด้อยกว่า E17
  • การแสดงสถานะการทำงานของเครื่อง Xfce มีให้ครบตามความต้องการ
  • นาฬิกาและปฏิทิน พาเนลของ Xfce ปกติมีแต่นาฬิกา ไม่มีปฏิทิน ต้องเรียก Orage ขึ้นมาต่างหาก ซึ่งจะได้ปฏิทินที่เชื่อมรวมกับ evolution-data-server เกินความต้องการไปหน่อย แต่ก็ถือว่ามีให้ใช้
  • flash drive เสียบแล้วเมานท์ได้ ไม่มีปัญหา
  • suspend เครื่องได้ ล็อคหน้าจอได้
  • workspace จัดเรียง 2x2 ได้ เปลี่ยน workspace ด้วยแป้นพิมพ์ได้รอบทิศเหมือน GNOME 2
  • การใช้งานโดยรวม ให้ความรู้สึกเหมือน GNOME ที่คุ้นเคย ทำงานได้ไหลลื่นไม่มีสะดุด

เมื่อเทียบกันระหว่าง E17, LXDE และ Xfce แล้ว ผมชอบ Xfce ที่สุด แม้การเซ็ตจอจะขลุกขลักกว่า E17 แต่หลังจากนั้นมันอัตโนมัติหมด ถือว่ายอมรับได้ ฟีเจอร์ต่าง ๆ ก็มีครบตามที่ต้องการใช้ และยังมีความคาบเกี่ยวกับ GNOME อยู่มาก ทำให้ยังเชื่อมโยงกับงานเดิมที่ทำกับ GNOME ได้อยู่

ส่วนอีกสองตัวนั้น ผมชอบ E17 ในแง่ความเนี้ยบของกราฟิกส์ และความสมบูรณ์ของการพัฒนา ติดแต่ว่ามอดูลที่ให้มีน้อยไปหน่อย (มี third party อยู่บ้าง แต่ยังไม่มีเป็นแพกเกจใน Debian) มีปัญหาการ suspend เครื่อง และการใช้ toolkit ที่แตกต่างจาก GNOME ก็ทำให้เชื่อมโยงกับงานเก่าได้ลำบาก

ส่วน LXDE นั้น ผมชอบในความเบา ความเร็ว และการใช้ฟีเจอร์ร่วมกับ GNOME บางส่วน แต่ติดที่ความขาดแคลนต่าง ๆ โดยเฉพาะการรองรับสองจอที่ยังขาด

ตอนนี้ ผมก็เลยยึด Xfce เป็นที่พักพิงมาระยะหนึ่งแล้ว app บางตัวที่เคยเลือกใช้เพราะมัน เชื่อมรวมกับ GNOME ได้ดี จนพอมาใช้ Xfce แล้วกลายเป็น ดีเกินไป โดยมีอะไรประหลาดโผล่มาเยอะ ก็เปลี่ยนไปใช้ตัวอื่น เช่น เปลี่ยนจาก empathy กลับมาหา pidgin เพื่อหลบจากไดอะล็อกทั้งหลายของ gnome-keyring ส่วน app อื่น ๆ ก็คงจะพิจารณาเป็นกรณีไป

อ้อ! กลับมาที่การเปรียบเทียบการใช้หน่วยความจำเสียหน่อย.. ระบบที่ปรับแต่งแล้วของผมใช้หน่วยความจำดังนี้ (วัดด้วยการรีบูต เปิดเทอร์มินัล 1 หน้าต่าง และเรียก gnome-system-monitor ขึ้นมาอ่านหน่วยความจำเหมือนกันทุกตัว เพื่อให้โหลดที่เพิ่มจากระบบเปล่า ๆ มีพอ ๆ กัน):

E17 193 MB
LXDE 203 MB
Xfce 252 MB
GNOME Fallback 456 MB
GNOME Shell 544 MB

ที่ E17 กลายเป็นแชมป์แทนนั้น เกิดจากการ unload มอดูลที่ผมไม่ได้ใช้ เช่น Gadget (desklet)

Update: Xfce ที่ผมทดสอบ เป็นรุ่น 4.8 ยังไม่สามารถเซ็ตสองจอผ่านเครื่องมือของ Xfce เองได้ แต่ไปเห็นข่าวว่า Xfce 4.12 สามารถเซ็ตได้แล้ว ก็คงรอรุ่นใหม่ครับ

ป้ายกำกับ: ,

27 พฤศจิกายน 2555

My Alternative Desktops (2) - LXDE

ตอนที่แล้ว ผมพูดถึงการทดลองเดสก์ท็อปทางเลือกกับ E17 ไปแล้ว ตอนนี้ก็จะพูดถึง LXDE บ้าง

LXDE เขาอ้างว่าเป็น desktop environment ที่กินทรัพยากรน้อยที่สุด ซึ่งจากการทดลองวัดเทียบหน่วยความจำที่ใช้ ก็กินหน่วยความจำต่ำที่สุดในบรรดาตัวเลือกต่าง ๆ จริง แต่ตำแหน่งแชมป์นี้ ก็มาจากความจำกัดจำเขี่ย ให้มาเท่าที่จำเป็นจริง ๆ

หน้าจอที่ผมปรับแต่งจนสามารถใช้สองจอได้แล้ว เป็นแบบนี้:

LXDE dual monitor screenshot

พูดถึงการปรับแต่งก่อน

สองจอ

ด่านแรกก็จอดเสียแล้ว ปรากฏว่า LXDE เป็นเดสก์ท็อปที่รองรับการใช้สองจอได้แย่ที่สุดในบรรดาเดสก์ท็อปที่ทดลองใช้ และจากคำตอบหนึ่งของนักพัฒนา ทำให้รู้ว่าเรื่องนี้กว่าจะแก้คงอีกนาน

LXDE มีเครื่องมือชื่อ lxrandr สำหรับตั้งการต่อจอภาพเหมือนกัน แต่สามารถทำได้แค่เปิด/ปิดจอ และกำหนดความละเอียดของแต่ละจอเท่านั้น เมื่อเปิดใช้สองจอแล้ว สิ่งที่ได้คือการแสดงเนื้อหาที่เหมือนกันเท่านั้น ไม่สามารถเอาเนื้อที่จอมาเรียงต่อกันได้

lxrandr

วิธีแก้คือต้องกลับไปหา xrandr หรือถ้าหรูหน่อยก็ ARandR ซึ่งเป็น GUI ที่ช่วย detect ช่องต่อจอภาพ กำหนดความละเอียดและการวางพื้นที่ แล้วเขียนเป็น shell script สำหรับสั่ง xrandr อีกทีหนึ่ง

ARandR

เมื่อสั่งบันทึก ก็จะได้ shell script อยู่ในไดเรกทอรี ~/.screenlayout/ เนื่องจากผมต้องใช้ทั้งจอเดียวและสองจอ ผมจึงตั้งค่าสองแบบ ตั้งชื่อสคริปต์เป็น dual.sh สำหรับการใช้สองจอ และ single.sh สำหรับการใช้จอเดียว

จากนั้นก็กำหนด key binding สำหรับสั่งเมื่อจะใช้จอเดียวหรือสองจอ

$ vi ~/.config/openbox/lxde-rc.xml

เพิ่ม element เหล่านี้ลงใน element <keyboard>:

  <keybind key="W-2">
    <action name="Execute">
      <command>~/.screenlayout/dual.sh</command>
    </action>
  </keybind>
  <keybind key="W-1">
    <action name="Execute">
      <command>~/.screenlayout/single.sh</command>
    </action>
  </keybind>

ออกจากระบบแล้วเข้าใหม่ จากนั้น เมื่อจะใช้สองจอ ก็กด Super+2 เมื่อจะใช้จอเดียวก็กด Super+1 แต่ช้าก่อน.. ปัญหายังไม่หมดแค่นั้น

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

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

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

$ cat > ~/bin/lxde-dual <<EOF
#!/bin/sh

# Set dual monitor RandR
$HOME/.screenlayout/dual.sh

# Set panel width
sed -i 's/width=.*/width=1280/' $HOME/.config/lxpanel/LXDE/panels/panel
lxpanelctl restart
EOF
$ chmod +x ~/bin/lxde-dual

และ

$ cat > ~/bin/lxde-single <<EOF
#!/bin/sh

# Set single monitor RandR
$HOME/.screenlayout/single.sh

# Set panel width
sed -i 's/width=.*/width=1366/' $HOME/.config/lxpanel/LXDE/panels/panel
lxpanelctl restart
EOF
$ chmod +x ~/bin/lxde-single

จากนั้นก็กลับไปแก้ ~/.config/openbox/lxde-rc.xml อีกครั้ง ให้มาเรียกสองสคริปต์นี้:

  <keybind key="W-2">
    <action name="Execute">
      <command>~/bin/lxde-dual</command>
    </action>
  </keybind>
  <keybind key="W-1">
    <action name="Execute">
      <command>~/bin/lxde-single</command>
    </action>
  </keybind>

คราวนี้ เมื่อกดปุ่มลัดทั้งสอง ก็จะได้ทั้งการใช้จอเดียว/สองจอ และพาเนลก็จะกว้างเท่ากับจอซ้ายสุดที่มีด้วย

ยังมีเรื่องภาพพื้นหลังที่ LXDE ไม่มองแยกจอกันอีก ต้องหาภาพที่กว้างเท่ากับสองจอรวมกันถึงจะพอดี แต่ผมปล่อยไว้งั้นแหละ ใช้วิธีเรียงแบบปูกระเบื้องต่อกันเอา ภาพหน้าจอของ LXDE จึงดูอัปลักษณ์นิดหน่อย

จบแล้ว.. นี่เพิ่งเรื่องต่อสองจอเท่านั้นนะ ยังไม่นับตอนที่ไปต่อโปรเจกเตอร์แล้วความละเอียดโปรเจกเตอร์เป็นอย่างอื่นอีก แค่คิดก็มันแล้ว ถึงตอนนั้นค่อยว่ากันอีกที

การปรับแต่งทั่วไป

  • กำหนดธีมของ GTK+ ให้เป็น Adwaita (ปรับแต่งพื้นโต๊ะ > Customize Look and Feel)
  • กำหนดธีมของ Openbox window manager (ปรับแต่งพื้นโต๊ะ > Openbox Configuration Manager)
  • เปลี่ยนภาพพื้นหลัง (คลิกขวาที่พื้นโต๊ะ เลือก Desktop Preferences)
  • ปรับพาเนล เพิ่ม launcher, เพิ่มแอพเพล็ต:
    • Battery Monitor
    • Network Status Monitor
    • CPU Usage Monitor

ประเมินผล

  • เรื่องการใช้สองจอ LXDE ทำได้แย่ที่สุด เรียกว่าไม่รองรับเลยจะดีกว่า เพราะทุกอย่างได้มาจากการแฮ็กเอาทั้งนั้น
  • การแสดงสถานะการใช้งานเครื่อง LXDE ขาดแคลนเอามาก สิ่งที่มีให้มีเพียงขีดประจุไฟแบตเตอรี่, สถานะเครือข่าย และการใช้ซีพียูเท่านั้น แต่ยังถือว่าดีกว่า E17 อยู่หน่อยหนึ่ง อย่างน้อยก็สามารถแสดงสถานะเครือข่ายได้
  • นาฬิกาและปฏิทิน โอเค คือใช้วิดเจ็ตของ GNOME เลย เสียอยู่อย่างคือตัวเลขบอกเวลาจะล็อคไว้เป็นสีขาวเสมอ ซึ่งทำให้มองตัวเลขไม่เห็นเมื่อเปลี่ยนสีพื้นของพาเนลเป็นสีอ่อน
  • thumb drive เสียบแล้วเมาทน์ได้ ถือว่าโอเค
  • suspend โน้ตบุ๊กได้ ไม่มีปัญหา
  • workspace วางเรียงได้แบบแถวเดียวเท่านั้น จัดเรียง 2x2 ไม่ได้
  • UI ทำแบบพื้นฐานที่สุด launcher คลิกแล้วไม่ยุบ แต่เรียกโปรแกรมให้ โดยเคอร์เซอร์เมาส์ไม่มีอะไรบ่งบอกว่ากำลังโหลดอยู่ (ดูไฟฮาร์ดดิสก์เอา)
  • การล็อคหน้าจอ ยังมีปัญหา เนื่องจากอิงอาศัย xscreensaver หรือ gnome-screensaver แต่ไม่มีช่องทางเรียกดีมอนของทั้งสองขึ้นมารอ (คงต้องแฮ็กเองอีกแล้ว)

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

ป้ายกำกับ: ,

26 พฤศจิกายน 2555

My Alternative Desktops (1) - E17

สองเดือนก่อน ผมได้ซ้อมหนีภัย GNOME Fallback ถูกกำจัด ด้วยการพยายามปรับแต่ง GNOME Shell จนสามารถทนใช้มันได้ แต่หลังจากนั้นไม่นาน (ตั้ง 20 วันแน่ะ) ผมก็ต้องยกธงขาว และ กลับไปใช้ Fallback ตามเดิม เพราะยังคงรำคาญ animation เงาดำ และความหน่วงต่าง ๆ ที่เกิดขึ้นใน GNOME Shell จนกระทั่งไฟมาลนก้นอีกครั้ง เมื่อทีม GNOME ได้ผลสรุปว่าจะตัด Fallback mode ทิ้งจริง ๆ แม้ต่อมาจะมีข่าวว่า จะยังคงจัดเตรียม "Classic mode" ใน GNOME Shell ให้ โดยผ่าน extension ต่าง ๆ ที่จะออกพร้อม GNOME อย่างเป็นทางการโดยไม่ให้มีช่วงรออัปเกรดก็ตาม มันก็ไม่ได้แก้ปัญหาความรำคาญของผมได้อยู่ดี

เพราะฉะนั้น ก็ได้เวลาลงมือปฏิบัติจริงแล้ว ไม่ใช่แค่ทดลองอีกต่อไป ทางเลือกต่าง ๆ ที่ผมทดลองก็มี E17, LXDE และ Xfce ก็เลยจะบันทึกการทดลองเป็นรายตัวไป

ก่อนอื่น problem definition ของผมคือ:

  • การใช้สองจอ ผมเสียบจอเพิ่มเมื่ออยู่บ้าน ใช้จอเดียวเมื่อออกไปข้างนอก และหลายครั้งต้องต่อโปรเจกเตอร์เพื่อนำเสนองาน ดังนั้น เดสก์ท็อปต้องรองรับการใช้สองจอสลับกับจอเดียวอย่างสะดวกสบาย
  • การแสดงสถานะการใช้งานต่าง ๆ เช่น เครือข่าย ซีพียู หน่วยความจำ อุณหภูมิของเครื่องที่จุดต่าง ๆ ซึ่งอันหลังสุดนี่สำคัญมาก เนื่องจากเครื่องผมร้อนง่าย และระบบมักจะปิดตัวเมื่อเครื่องร้อน
  • นาฬิกาและปฏิทิน เป็นแอพเพล็ตที่ขาดไม่ได้เวลาทำงาน
  • flash drive ควรสามารถเสียบแล้วเมานท์ให้ทันที
  • ไม่มี animation หวือหวา ไม่มี edge tiling ไม่มี top-left hot corner งี่เง่าเหมือน GNOME Shell
  • มีพาเนลสำหรับวางแอพเพล็ตและ launcher เป็นแถบเล็ก ๆ และ launcher ต้องไม่เป็น dock (กล่าวคือ ทำให้ตัด WindowMaker และเหล่า GNUstep ออกจากจอเรดาร์ไปได้ รวมทั้ง GNOME Shell และ Unity ด้วย)

E17

เริ่มที่ตัวแรก คือ E17 เพื่อนเก่าสมัยเตาะแตะกับลินุกซ์ เดสก์ท็อปแบบสองจอที่ผมปรับแต่งแล้วเป็นอย่างนี้ (ซีกซ้ายคือจอนอก ซีกขวาคือจอโน้ตบุ๊ก):

E17 dual monitor screenshot

การปรับแต่งทั่วไป

ในการเรียกครั้งแรก จะมี wizard ให้ตั้งค่าเริ่มต้น เช่น จะใช้ compositing หรือไม่ เลือกภาษาที่จะใช้ (ยังไม่มีภาษาไทย) ฯลฯ ซึ่งเมื่อเซ็ตเสร็จแล้ว มันจะสร้างไดเรกทอรี ~/.e/ ที่เก็บค่า config ต่าง ๆ ให้ ดังนั้น ถ้าอยากให้เริ่ม wizard ใหม่ ก็เพียงแต่ลบไดเรกทอรีนี้ หรือเปลี่ยนชื่อหลบ แล้วเข้าระบบใหม่

ผมลองเปิดโหมด composition ใช้อยู่พักหนึ่ง แรก ๆ ก็ตื่นเต้นดีตามปกติน่ะแหละ แต่พอใช้งานทุกวัน ก็คิดว่าปิดก่อนดีกว่า ถึงแม้จะชอบที่หน้าต่างที่ไม่ได้โฟกัสจะโปร่งแสงมองทะลุได้ ช่วยให้วางหน้าต่างซ้อนทับกันโดยยังเทียบเนื้อหาข้ามหน้าต่างได้ก็ตามที แต่ยังไงก็ตาม ผมทน E17 ได้มากกว่า compiz นะ อาจเป็นเพราะ animation มันทำในปริมาณพอเหมาะกว่า บางที ผมอาจจะกลับมาใช้ compositing อีกในอนาคตก็ได้

การปิด compisiting ทำได้โดย unload มอดูล Composite โดยเรียกเมนู Settings > Modules เลือกแท็บ Look ก็จะเห็นรายการมอดูล Composite อยู่ในนั้น

E17 Compositing setting

โหมดการโฟกัส อันนี้แล้วแต่ถนัด ผมเคยชอบการโฟกัสแบบ sloppy คือตามหน้าต่างล่าสุดที่เมาส์เคลื่อนไปวาง ไม่ใช่การคลิกเพื่อโฟกัสพร้อมกับยกหน้าต่างขึ้น ซึ่งทำให้สะดวกกับการทำงานในหน้าต่างที่วางก่ายกันหลายบานได้สะดวก โดยไม่ต้องยกหน้าต่างขึ้นมาทับกันเสมอไป แต่พอไปใช้ GNOME ก็ติดนิสัยคลิกเพื่อโฟกัสเสียแล้ว ตอนนี้ก็เลยลองกลับมาใช้ sloppy ดู โดยไม่เอามาเป็นเกณฑ์ตัดสินเลือกเดสก์ท็อปถ้ามันทำให้เกิดความไม่สะดวก เพราะการตั้งให้เป็นการคลิกเพื่อโฟกัสนั้นทำได้ไม่ยาก (เมนู Settings > Settings Panel แท็บ Windows รายการ Window Focus)

E17 เปล่า ๆ จะได้โปรแกรม GTK+ ที่เปล่าเปลือย ไม่มีธีม ควรกำหนดธีมเสียก่อนโดยเลือกเมนู Main > Settings > Settings Panel และที่แท็บ Look หัวข้อ Applications ก็เลือกธีม Adwaita

E17 application theme setting

สิ่งจำเป็นอีกอย่างคือ system tray หรือ notification area ซึ่งโปรแกรมใหม่ ๆ จะใช้กันเป็นปกติ ก็ควรจะเปิดใช้ โดยโหลดมอดูล Systray ก่อน แล้วจะสามารถเพิ่ม Systray ใน shelf (ศัพท์ที่ E17 ใช้เรียก panel) ได้

E17 systray module loading

การเพิ่ม system tray ใน shelf ก็เพียงคลิกขวาที่ shelf ที่ต้องการ เลือกเมนู Contents แล้วก็เลือกแอพเพล็ตเพิ่มตามปกติ

E17 (LXDE และ Xfce ด้วย) มีความน่ารักกว่า GNOME ตรงที่เวลาต้องการ context menu ของพาเนล ไม่จำเป็นต้องไปเล็งหาที่ว่างระหว่างแอพเพล็ต โดยถ้าเราคลิกขวาโดนแอพเพล็ต GNOME จะให้แต่ context menu ของแอพเพล็ต แต่ E17 (และ LXDE, Xfce) จะเพิ่มเมนูของ shelf ต่อท้ายให้ด้วย

default ของ E17 นั้น วางพาเนลไว้ด้านล่างตรงกลาง แต่ผมชอบให้มันติดมุมมากกว่า ก็จัดตำแหน่งได้โดยคลิกขวาที่ shelf เลือกเมนู Settings แล้วก็ไปเลือกตำแหน่งในแท็บ Position

E17 shelf position setting

ส่วนถ้าต้องการ shelf ที่พาดยาวตลอดขอบจอ ก็ไปที่แท็บ Size แล้วปิดตัวเลือก Shrink to Content Width แต่ตอนนี้ผมแอบปล่อยไว้เฉย ๆ ให้ shelf มันสั้นจู๋อยู่ที่มุมจอไปก่อน

launcher ใน shelf ของ E17 จะบรรจุอยู่ในสิ่งที่เรียกว่า IBar การเพิ่ม launcher ก็ทำได้โดยคลิกขวาในกรอบ IBar แล้วเลือกเมนู IBar > Contents ก็จะได้กล่องโต้ตอบสำหรับเพิ่ม application ต่าง ๆ พร้อมกับจัดลำดับได้ด้วย

มีสิ่งที่ชื่อคล้ายกับ IBar อยู่บน shelf ด้วย คือ IBox ซึ่งจะเป็นพื้นที่เก็บหน้าต่างที่ย่อเก็บ โดยจะแสดงเป็นไอคอนให้คลิกเพื่อเรียกหน้าต่างคืน

E17 มีรายการ config ที่ละเอียดมากมาย จนเขาบอกว่า ทำเสร็จหมดจะได้ดิสโทรใหม่เลย ดังนั้น จะขอพูดถึงเท่านี้ก่อน แล้วมาวิจารณ์กัน

  • เรื่องการใช้สองจอ E17 ทำได้ดีทีเดียว แค่เสียบจอเข้ามา มันก็จัดการเอาพื้นที่สองจอมาเชื่อมกันให้เลย โดยให้จอนอกอยู่ด้านซ้าย ซึ่งตรงกับความต้องการของผมพอดี และเมื่อถอดจอนอกออก ก็จะปรับพื้นที่เหลือจอเดียวโดยอัตโนมัติ
  • การแสดงสถานะการใช้งานเครื่อง E17 ไม่ค่อยมีอะไรให้ นอกจาก cpufreq gadget ที่เป็นหน้าปัดเข็มแสดงความถี่ซีพียู กับ gadget แสดงประจุไฟของแบตเตอรี่เท่านั้น โดยมี gadget แสดงอุณหภูมิเครื่องที่อ่านค่า sensor ไม่ได้ ถ้าต้องการสิ่งเหล่านี้อาจต้องติดตั้งอย่างอื่นเพิ่มเอง เช่น GKrellM
  • นาฬิกาและปฏิทินของ E17 ถือว่าโอเค ตัว gadget สามารถเอามาวางบนพื้นโต๊ะแบบ desklet ได้ด้วย แต่เนื่องจากผมไม่ค่อยใช้ desklet ก็เลยใช้แต่บน shelf เท่านั้น
  • thumb drive เสียบแล้วมีไอคอนขึ้นที่พื้นโต๊ะทันที

ปัญหาจุกจิกที่พบ:

  • มี system monitor น้อย ทำให้ไม่ค่อยรู้สถานะการทำงานของเครื่อง
  • suspend โน้ตบุ๊กไม่ได้ พยายามแก้ปัญหาจากข้อมูลใน Debian #538091 อยู่เหมือนกัน แต่ยังไม่มีวี่แววว่าจะได้ จะใช้วิธีระดับต่ำก็ต้องเป็น root เสียก่อน ซึ่งอันตรายถ้าระหว่างนั้นโน้ตบุ๊กตกไปอยู่ในมือคนอื่น
  • workspace เปลี่ยนด้วยแป้นพิมพ์ได้แบบเป็นลำดับเส้นตรง 1, 2, 3, 4 เท่านั้น แม้จะจัด virtual desktop ให้เป็น 2x2 แล้วก็ตาม
  • การจัด virtual desktop เป็น 2x2 จะทำให้มีการเลื่อนไป workspace บน/ล่างเมื่อลากเมาส์ไปชนขอบบน/ล่าง ซึ่งบ่อยครั้งไม่ใช่เจตนา เช่น เจตนาจะลากกรอบล่างของหน้าต่างเพื่อปรับขนาดเท่านั้น (สรุปว่า E17 ไม่เหมาะกับการใช้ virtual desktop แบบเรียงหลายแถว)

ปัญหาเหล่านี้พอมีทางแก้ไข เช่น ขาด system monitor ก็ใช้ GKrellM, ใช้ workspace 2x2 ไม่ถนัดก็ใช้แบบเส้นตรงแทน โดยเริ่มใช้ที่ workspace ที่ 2 จากนั้นจะมี workspace ซ้าย-ขวาให้เลื่อนใช้ได้ ยังคงเหลือเฉพาะปัญหาการ suspend เครื่องเท่านั้นที่เป็นอุปสรรค

โดยภาพรวมแล้ว E17 นับว่าเป็นมืออาชีพทีเดียว memory footprint ก็ถือว่าต่ำเมื่อเทียบกับ GNOME ถ้าแก้ปัญหาเรื่อง suspend โน้ตบุ๊กได้ ก็สามารถใช้แทน GNOME ได้เลยทีเดียว

ไว้ blog หน้าเขียนถึง LXDE และ Xfce ต่อครับ

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

10 กันยายน 2555

My GNOME Shell Workarounds

จากที่เคยเขียนถึง สารพัดปัญหาของ GNOME Shell ที่ทำให้แม้ปัจจุบันผมก็ยังคงใช้ Fallback หรือที่เรียกว่า GNOME Classic ใน Debian เป็นเดสก์ท็อปหลักอยู่

แต่ในรอบการพัฒนา GNOME 3.8 นี้ เรื่องแรกที่เขาเอาขึ้นโต๊ะคุยก็คือ จะลบหรือจะปรับปรุง Fallback mode ทำให้เริ่มรู้สึกไม่ปลอดภัย เรามันก็แค่เสียงเล็ก ๆ เสียงหนึ่งในโลกกว้างใหญ่ (ยังเข็ดเรื่อง ส้นตีน ไม่หาย) เลยต้องหาทางหนีทีไล่เอาไว้ เร็ว ๆ นี้ไปตามอ่าน thread หนึ่งใน G+ เห็น Alan Cox บอกว่าชอบ E17 รวมทั้งเคยเห็นแฮกเกอร์หลายคนชอบ ตัวเองก็เคยใช้ตั้งแต่สมัยตั้งไข่กับลินุกซ์ เลยกลับมาลองใช้ได้พักหนึ่ง ก็เห็นพัฒนาการเยอะทีเดียว โดยยังคงคอนเซ็ปต์เดิมไว้ คือการดึงความสามารถของ graphics card ออกมาใช้ให้เต็มที่

ทางเลือกให้โดดหนีมีเยอะแยะ ไหนจะ Xfce หรือ LXDE อีก แต่กระนั้นก็ขอลองสู้กับ GNOME Shell อีกสักตั้งน่า

ในบรรดาปัญหาต่าง ๆ ของ GNOME Shell ที่ผมมี คิดว่าที่ทนได้ยากที่สุดมีอยู่สองเรื่อง:

  • hot corner คือมุมบนซ้ายที่เมื่อลากเมาส์ไปชนจะเป็นการเปลี่ยนเข้า activity mode เป็นเรื่องน่ารำคาญอันดับหนึ่ง เพราะเกิดอุบัติเหตุทำให้งานสะดุดได้ง่ายมาก โดยเฉพาะพื้นที่บนซ้ายของหน้าจอมักอยู่ใกล้กับเมนูของโปรแกรมต่าง ๆ โอกาสอุบัติเหตุจึงสูงมาก เรื่องนี้แทบทุกคนในบ้านที่ใช้ GNOME Shell ต่างบ่นอุบทั้งนั้น
  • accidental maximization คือชื่อที่ผมอยากจะเรียกแทนสิ่งที่เขาเรียกกันว่า auto maximization หรือ edge tiling เพราะนิสัยการใช้หน้าต่างของผมนั้น แทบจะไม่เคย maximize หน้าต่างเลย และมักจะเรียง title bar ของหน้าต่างซ้อนลดหลั่นกันลงมาจากบนขวามาทางล่างซ้าย ทำให้เลือกหน้าต่างได้ง่าย แต่พอเจอ GNOME Shell แค่ผมจะเริ่มจัดหน้าต่างแบบนี้ มันก็ maximize ให้ผมเสียแล้ว ต้องชักกะเย่อกับมันไปมา กว่าจะวางหน้าต่างแรกชนขอบบนได้ ทำให้กลายเป็นโรคกลัวขอบบนไปเลย ครั้นจะเลี่ยงมาเรียงจากข้างล่างแทน title bar มันก็อยู่ด้านบน หน้าต่างที่สูงไม่เท่ากันก็กะระยะยากอีก

ลองพยายามแก้ทีละเปลาะ

ปัญหา hot corner นั้น แก้ได้โดยติดตั้งส่วนขยาย No Topleft Hot Corner โดยติดตั้งได้ผ่านเว็บ (ยังไม่มีใน Debian) ติดตั้งแล้ว hot corner ก็ไม่มากวนใจอีกต่อไป

ปัญหา accidental maximization นี่ งมอยู่นาน เพราะเห็น dconf ของ mutter ให้ปิด edge-tiling ได้ แต่แก้ยังไงก็ไม่มีผล เพิ่งมาพบทีหลังว่า GNOME Shell มัน override ค่านี้อีกชั้น

วิธีแก้ก็คือแก้คีย์ edge-tiling ในหัวข้อ org.gnome.shell.overrides ให้เป็น false โดยอาจจะสั่งผ่าน GSettings ดังนี้:

$ gsettings set org.gnome.shell.overrides edge-tiling false

หรือจะแก้ผ่าน dconf-editor ตรง ๆ ก็ได้ ซึ่งจะทำให้เราสามารถไปแก้คีย์อื่นได้ด้วย โดยเฉพาะต้องแก้ button-layout เพื่อให้สามารถ maximize หน้าต่างในกรณีที่ต้องการได้อยู่:

gnome-shell twist with dconf-editor

ถ้าจะสั่งผ่านเทอร์มินัลก็:

$ gsettings set org.gnome.shell.overrides button-layout \
  "menu:minimize,maximize,close"

system monitor นั้น ผมใช้ส่วนขยาย system-monitor ซึ่งจะแสดงกราฟบนพาเนลด้านบน

และเพื่อแก้ความงุ่มง่ามในการเรียกโปรแกรมของ Activities mode ผมเลยติดตั้งส่วนขยาย Frippery Panel Favorites ซึ่งจะเอารายการใน dash ขึ้นมาเป็น launcher บนพาเนล ทำให้เรียกโปรแกรมที่ใช้บ่อยได้ในคลิกเดียวเหมือนใน GNOME 2 แถมยังเปิดหน้าต่างเทอร์มินัลใหม่ได้เรื่อย ๆ อีกด้วย เพราะไม่ได้เป็น dock เหมือน dash

ก็ค่อย ๆ ปรับแต่งไปทีละนิดครับ

Update: (2012-09-11 09:45) เพิ่ม Frippery Panel Favorites

ป้ายกำกับ: ,

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

ป้ายกำกับ: ,

hacker emblem