- FyneDesk คือ สภาพแวดล้อมเดสก์ท็อปสำหรับ Linux/Unix ที่พัฒนาด้วยภาษา Go
- สร้างบนพื้นฐานของ Fyne toolkit โดยมุ่งเน้น การใช้งานที่เรียบง่าย และ การพัฒนาที่ทำได้ง่าย
- มอบ ประสบการณ์เดสก์ท็อปแบบครบถ้วน ร่วมกับเครื่องมือภายนอกที่จำเป็น
- สามารถเสริมความเสถียรได้ด้วยยูทิลิตี fynedesk_runner ที่มี ฟังก์ชันกู้คืนอัตโนมัติ
- ในฐานะซอฟต์แวร์เวอร์ชันอัลฟา/เบตา จึงยินดีต้อนรับ การมีส่วนร่วมโอเพนซอร์สและฟีดแบ็ก
ภาพรวมโครงการ
- FyneDesk คือ สภาพแวดล้อมเดสก์ท็อปสำหรับ Linux หรือ Unix ที่พัฒนาด้วยภาษา Go และ Fyne toolkit
- มุ่งสู่ UI ที่ใช้งานเข้าใจง่ายตามแนวทาง Material Design และ เป็นมิตรกับผู้ใช้
- จุดเด่นคือ ทั้งนักพัฒนามือใหม่และผู้มีประสบการณ์สามารถพัฒนาและมีส่วนร่วมได้ง่าย
คุณสมบัติเด่นและจุดแข็ง
- FyneDesk แตกต่างจากสภาพแวดล้อมเดสก์ท็อปแบบเดิมตรงที่เขียนด้วย ภาษา Go ทำให้จัดการและบำรุงรักษาได้ง่าย
- บนพื้นฐานของ Fyne toolkit จึงมีโครงสร้าง GUI ที่ ขยายต่อได้สูง
- จุดเด่นคือ ติดตั้งได้เบา และเปิดใช้งานได้รวดเร็ว
- เปิดรับ ฟีดแบ็กจากผู้มีส่วนร่วมและผู้ใช้ อย่างกระตือรือร้น
การพึ่งพาและเครื่องมือภายนอก
- เพื่อให้ FyneDesk ทำงานได้อย่างสมบูรณ์ จำเป็นต้องมีเครื่องมือภายนอกต่อไปนี้
- arandr : สำหรับเปลี่ยนการตั้งค่าจอแสดงผล
- xbacklight หรือ brightnessctl : สำหรับปรับความสว่างของโน้ตบุ๊ก
- connman-gtk : สำหรับตั้งค่าเครือข่าย Wi-Fi
- compton : สำหรับรองรับ compositor
- แม้จะทำงานได้โดยไม่มีเครื่องมือเหล่านี้ แต่ ประสบการณ์เดสก์ท็อปแบบครบถ้วนจะถูกจำกัด
การติดตั้งและการรัน
- สามารถติดตั้ง FyneDesk ได้ง่ายด้วยเครื่องมือ Go มาตรฐาน
- หลังติดตั้งสามารถรันใน "โหมดพรีวิว" ได้ และหากต้องการใช้เป็น window manager จะต้องตั้งค่าเพิ่มเติม
- จะมี FyneDesk แสดงในเมนูเลือกสภาพแวดล้อมเดสก์ท็อป
- สามารถทดสอบในหน้าต่าง X ภายในได้ด้วยเครื่องมือ Xephyr
fynedesk_runner และความเสถียร
- เพื่อเพิ่มความเสถียร FyneDesk รองรับยูทิลิตี fynedesk_runner
- หากโปรแกรมหยุดทำงานโดยไม่คาดคิด จะกู้คืนสถานะการทำงานโดยอัตโนมัติ
- เป็นโครงสร้างที่เหมาะกับการประเมินและทดสอบเวอร์ชันก่อนเผยแพร่ (อัลฟา/เบตา)
แนวทางการแพ็กเกจและการแจกจ่าย
- เมื่อนำไปแจกจ่าย จะอยู่ในรูปแบบ น้ำหนักเบา ที่ไม่มีไลบรารีและการพึ่งพาที่ไม่จำเป็น
- เมื่อใช้งานร่วมกับแอปเสริมอย่าง fin (fyshos/fin) ก็สามารถมอบประสบการณ์แบบบูรณาการที่สมบูรณ์ยิ่งขึ้นได้
- หากแพ็กเกจเพื่อแจกจ่ายบนระบบและติดต่อไปยังโครงการ ก็สามารถเพิ่มลิงก์อย่างเป็นทางการได้
การมีส่วนร่วมแบบโอเพนซอร์ส
- ยินดีต้อนรับ ทุกคนให้มีส่วนร่วมในโอเพนซอร์สและส่งฟีดแบ็ก
- ณ เดือนมีนาคม 2024 มี 1,300 ดาว, 54 ฟอร์ก และ ผู้มีส่วนร่วมมากกว่า 8 คน กำลังเคลื่อนไหวอยู่
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
โปรเจ็กต์นี้ดูยอดเยี่ยมมาก และยิ่งชอบเข้าไปอีกเพราะมันเป็นส่วนหนึ่งของเป้าหมายที่ใหญ่กว่าคือการสร้าง UI toolkit ข้ามแพลตฟอร์ม https://fyne.io
อยากเห็นนักพัฒนาที่กล้าลุยโปรเจ็กต์ทะเยอทะยานแบบนี้เพิ่มขึ้นอีก แทนที่จะมีแต่ OpenAI API wrapper โผล่ออกมา
หวังว่าจะเดินหน้าทำสิ่งดี ๆ แบบนี้ต่อไป
ฉันย้ายไปใช้เดสก์ท็อปที่เป็น Wayland ล้วนแล้ว เพราะงั้นถ้า FyneDesk เปลี่ยนไปใช้ Wayland ก็จะยินดีลองใช้อย่างมาก
ได้ยินมาว่ากำลังตั้งเป้ารองรับ Wayland แบบสมบูรณ์ใน 5.0
แต่ก็สงสัยว่า ETA คือเมื่อไร เพราะรีลีสล่าสุดก็ผ่านไป 1.5 ปีแล้วเลยยังรออยู่
ฉันยังเห็นข้อมูลด้วยว่ารีลีสบรাঞ্চ 0.4 จะเป็นตัวสุดท้ายที่ใช้ X11 และตั้งแต่ 0.5 เป็นต้นไปจะย้ายไปใช้ Wayland (รวม XWayland) https://github.com/FyshOS/fynedesk/releases
หลังจากนั้น (น่าจะช่วงปลายปีนี้) ก็มีแผนจะเริ่มงานย้ายไป Wayland
เราอยากรองรับทั้งสองอย่างเพื่อให้การเปลี่ยนผ่านราบรื่น แต่ตอนนี้ก็ยังไม่แน่นอน
ตอนนี้กำลังรอให้การแก้ไขในไลบรารีต้นน้ำถูกนำมาใช้
ฉันพยายามทำ color picker บน Arch/Hyprland แต่ไม่สำเร็จเลย
API มันให้ความรู้สึกว่าออกแบบมาได้แย่มาก
ฟังดูเหมือนท่าทีแบบรู้สึกว่าตัวเองมีสิทธิ์เรียกร้องเกินไป
ถ้าคิดถึงภูมิหลังการเกิดขึ้นของ Go มันก็ให้ความรู้สึกเหมือนส่วนผสมของ Limbo กับ Oberon-2
เมื่อมองจากนโยบาย dynamic linking ของ Go (รวมถึงแพ็กเกจ plugin ที่แทบถูกทิ้งร้าง) ฉันเลยคิดว่าในเดสก์ท็อปอาจแทนพฤติกรรมแบบไดนามิกของ Oberon หรือ Inferno ด้วย D-Bus หรือ net/rpc ได้
แต่พอเห็นความกระจัดกระจายของเดสก์ท็อปในโลกจริงแล้ว ก็คงไม่ค่อยคุ้มที่จะลงมือท้าทายจริง ๆ แค่ลองจินตนาการว่ามันจะออกมาเป็นแบบไหนเท่านั้น
ตอนนี้เรากำลังรวมแอป editor เข้ากับ FyshOS (ชื่อเปลี่ยนแล้วและย้ายไปที่ https://apptrix.ai)
ดูได้จากวิดีโอตัวอย่างเก่า https://youtu.be/XXmDmn-et4E?si=5n1Ao-V6dKurXzS6 (ส่วนที่เกี่ยวข้องหลัก ๆ เริ่มราว 15:30)
เป็นเทคนิคที่โหลดและรัน object file ที่ compiler สร้างขึ้นโดยตรง คล้ายกับระบบ Oberon https://github.com/pkujhd/goloader
มันถูก merge เข้า main branch เมื่อเดือนมีนาคม 2024
dev branch ยังมีการพัฒนาอย่างคึกคักมาก โดยมี commit นำหน้า master มากกว่า 100 รายการ
ดังนั้นการที่รีลีสทางการล่าสุดเป็นเมื่อมีนาคม 2024 ก็ดูไม่ใช่ปัญหาอะไรเลย
ถ้าบิลด์จาก development branch โดยตรง ก็จะได้ใช้เวอร์ชันล่าสุดเสมอ
ส่วนตัวฉันชอบ dock แนวตั้ง แต่รู้สึกว่าการแสดงเวลาในแนวตั้งยังน่าเสียดายอยู่
ดูเหมือนว่าโปรเจ็กต์นี้เริ่มเมื่อ 7 ปีก่อน
ถ้าเริ่มรองรับ Wayland เมื่อไร ฉันตั้งใจจะลองใช้อย่างจริงจังแน่นอน
กำลังรอให้การแก้ไขในไลบรารีต้นน้ำถูกนำเข้า
ฉันเองก็เคยลองใช้ Wayland ช่วงสั้น ๆ แต่ในฐานะผู้ใช้ทั่วไปกลับไม่รู้สึกถึงความต่างอะไรเลย
สงสัยว่ามันเป็นงานอดิเรก เป็นส่วนหนึ่งของธุรกิจหารายได้ หรือเป็นโปรเจ็กต์เชิงวิชาการที่มีมหาวิทยาลัยหรือหน่วยงานใดสนับสนุนหรือเปล่า
ดูแล้วในบัญชี GitHub หลักมีอยู่สองคน https://github.com/FyshOS
ทีมหลักมี 4 คน https://github.com/orgs/FyshOS/people และก็เปิดรับการมีส่วนร่วมจากชุมชนอย่างจริงจัง
เรายังเปิดรับ sponsorship และความร่วมมือเชิงพาณิชย์ด้วย
ช่วงนี้ฉันกำลังทดลองอะไรหลายอย่างกับ Fyne และค่อนข้างชอบมัน
ถึงจะอยากลองเล่นกับเดสก์ท็อปที่ปรับแต่งได้ แต่ขั้นตอน setup มันวุ่นวายเกินไปเลยลังเลอยู่ ทว่าเพราะมันเป็น Go เลยรู้สึกว่าพอมีความเป็นไปได้ขึ้นมา
เราพยายามทำให้ประสบการณ์พัฒนาเดสก์ท็อปง่ายที่สุดเท่าที่จะเป็นไปได้
ตัวอย่างเช่น โมดูลของ panel หรือเดสก์ท็อปก็แค่เขียนฟังก์ชันที่คืนค่า
fyne.CanvasObjectเท่านั้น เลยพัฒนาได้ง่ายเหมือนสร้าง panel ในแอป Fyneอยากรู้ว่ามีข้อควรระวังหรือจุดแปลกอะไรเป็นพิเศษสำหรับ Pop!_OS 22 ไหม