- FyneDesk là môi trường desktop cho Linux/Unix được phát triển bằng ngôn ngữ Go
- Dựa trên bộ công cụ Fyne, hướng đến tính dễ sử dụng và dễ phát triển
- Cung cấp trải nghiệm desktop đầy đủ cùng với các công cụ bên ngoài thiết yếu
- Có thể tăng cường độ ổn định bằng tiện ích fynedesk_runner với chức năng tự động khôi phục
- Là phần mềm ở giai đoạn alpha/beta, hoan nghênh đóng góp mã nguồn mở và phản hồi
Tổng quan dự án
- FyneDesk là môi trường desktop cho Linux hoặc Unix được phát triển bằng ngôn ngữ Go và bộ công cụ Fyne
- Theo đuổi giao diện trực quan tuân theo Material Design và tính thân thiện với người dùng
- Điểm nổi bật là việc phát triển và tham gia đều dễ dàng cho cả người mới lẫn nhà phát triển giàu kinh nghiệm
Các đặc điểm và thế mạnh chính
- Không giống các môi trường desktop hiện có, FyneDesk được viết bằng Go, giúp việc quản lý và bảo trì trở nên thuận tiện hơn
- Dựa trên bộ công cụ Fyne, sở hữu cấu trúc GUI có khả năng mở rộng cao
- Ưu điểm là cài đặt nhẹ và tốc độ khởi chạy nhanh
- Tích cực tiếp nhận phản hồi từ cộng tác viên và người dùng
Phụ thuộc và công cụ bên ngoài
- Để chạy FyneDesk đầy đủ, cần các công cụ bên ngoài sau
- arandr : dùng để thay đổi thiết lập hiển thị
- xbacklight hoặc brightnessctl : dùng để điều chỉnh độ sáng laptop
- connman-gtk : dùng để thiết lập mạng Wi-Fi
- compton : dùng để hỗ trợ compositor
- Vẫn có thể hoạt động mà không có các công cụ trên, nhưng trải nghiệm desktop đầy đủ sẽ bị hạn chế
Cài đặt và chạy
- Có thể cài đặt FyneDesk dễ dàng bằng công cụ Go tiêu chuẩn
- Sau khi cài đặt, có thể chạy ở "chế độ preview", và nếu muốn dùng làm window manager thì cần cấu hình bổ sung
- FyneDesk sẽ xuất hiện trong menu chọn môi trường desktop
- Có thể thử nghiệm trong X window nhúng bằng công cụ Xephyr
fynedesk_runner và độ ổn định
- Để đảm bảo độ ổn định, FyneDesk hỗ trợ tiện ích fynedesk_runner
- Khi chương trình dừng ngoài dự kiến, trạng thái chạy sẽ được tự động khôi phục
- Đây là cấu trúc phù hợp để đánh giá và kiểm thử các bản phát hành trước (alpha/beta)
Hướng dẫn đóng gói và phân phối
- Khi phân phối, đây là dạng nhẹ không kèm các thư viện và phụ thuộc không cần thiết
- Khi kết hợp với các ứng dụng bổ sung như fin (fyshos/fin), có thể mang lại trải nghiệm tích hợp hoàn thiện hơn
- Nếu đóng gói để phân phối trên hệ thống, có thể liên hệ phía dự án để được thêm liên kết chính thức
Đóng góp mã nguồn mở
- Mọi người đều được hoan nghênh đóng góp mã nguồn mở và gửi phản hồi
- Tính đến tháng 3 năm 2024, dự án có 1.300 sao, 54 fork và hơn 8 người đóng góp đang hoạt động
1 bình luận
Ý kiến trên Hacker News
Dự án này trông thực sự rất tuyệt, và tôi càng thích hơn vì nó là một phần của mục tiêu lớn hơn là xây dựng một UI toolkit đa nền tảng https://fyne.io
Tôi mong sẽ có nhiều lập trình viên dám thử sức với những dự án đầy tham vọng như thế này hơn, thay vì lại thêm các wrapper cho OpenAI API
Hy vọng họ sẽ tiếp tục làm tốt
Tôi đã chuyển hẳn sang desktop dùng Wayland, nên nếu FyneDesk chuyển sang Wayland thì tôi rất sẵn lòng dùng thử.
Tôi nghe nói họ đang nhắm tới việc hỗ trợ đầy đủ Wayland trong 5.0.
Tuy vậy tôi vẫn muốn biết ETA, vì bản phát hành trước đã là từ 1,5 năm trước nên tôi đang chờ.
Tôi cũng thấy thông tin rằng nhánh phát hành chính thức 0.4 sẽ là bản cuối cùng dùng X11 và từ 0.5 trở đi sẽ chuyển sang Wayland (bao gồm cả XWayland) https://github.com/FyshOS/fynedesk/releases
Sau đó (khoảng cuối năm nay) họ dự định bắt đầu công việc chuyển sang Wayland.
Họ muốn hỗ trợ cả hai để quá trình chuyển đổi diễn ra suôn sẻ, nhưng hiện vẫn chưa chắc chắn.
Hiện tại họ đang chờ các thay đổi ở thư viện cấp trên được áp dụng.
xdg-desktop-portalhoạt động.Tôi đã thử triển khai color picker trên Arch/Hyprland nhưng hoàn toàn không thành công.
API đó tạo cảm giác thực sự rất tệ.
Nghe như một kiểu thái độ đòi hỏi quyền lợi vậy.
Nếu nghĩ đến bối cảnh ra đời của Go, nó có cảm giác như sự pha trộn giữa Limbo và Oberon-2.
Xét đến chính sách dynamic linking của Go trong môi trường desktop (và gói plugin gần như bị bỏ mặc), tôi từng nghĩ có thể thay thế các hành vi động kiểu Oberon hay Inferno bằng D-Bus hoặc net/rpc.
Nhưng nhìn vào thực tế desktop đang phân mảnh nặng nề, có lẽ chẳng đáng để thật sự lao vào, nên tôi chỉ dừng ở mức tưởng tượng xem cảm giác đó sẽ ra sao thôi.
Chúng tôi đang tích hợp một app editor vào FyshOS (tên đã đổi và chuyển sang https://apptrix.ai)
Có thể xem trong video preview cũ https://youtu.be/XXmDmn-et4E?si=5n1Ao-V6dKurXzS6 (chủ yếu là từ mốc 15:30)
Đó là kỹ thuật nạp trực tiếp và thực thi các object file do compiler tạo ra, khá giống với hệ thống Oberon https://github.com/pkujhd/goloader
Nó đã được merge vào nhánh main từ tháng 3 năm 2024.
Nhánh dev đang được phát triển rất tích cực, đến mức có hơn 100 commit đi trước master.
Việc bản phát hành chính thức gần nhất là vào tháng 3 năm 2024 cũng không có gì đáng lo cả.
Nếu build trực tiếp từ nhánh phát triển thì lúc nào cũng có thể dùng bản mới nhất.
Cá nhân tôi thích dock theo chiều dọc, nhưng cách hiển thị thời gian theo chiều dọc ở đây hơi đáng tiếc.
Có vẻ dự án đã bắt đầu từ 7 năm trước.
Nếu bắt đầu có hỗ trợ Wayland thì tôi nhất định sẽ dùng thử nghiêm túc.
Họ đang chờ các chỉnh sửa ở thư viện cấp trên được áp dụng.
Tôi cũng đã dùng Wayland một thời gian ngắn, nhưng từ góc độ người dùng bình thường thì hoàn toàn không cảm thấy có gì khác.
Tôi muốn biết đây là dự án làm vì sở thích, một phần của hoạt động kinh doanh kiếm tiền, hay là dự án học thuật được một trường đại học hay tổ chức nào đó tài trợ.
Tìm ra thì thấy có hai người trong tài khoản GitHub parent https://github.com/FyshOS
Nhóm nòng cốt có 4 người https://github.com/orgs/FyshOS/people và cũng rất tích cực đón nhận đóng góp từ cộng đồng.
Chúng tôi cũng sẵn sàng cho tài trợ hoặc hợp tác thương mại.
Gần đây tôi đã thử nghiệm khá nhiều thứ với Fyne và thấy khá thích.
Tôi từng muốn vọc một desktop environment có thể tùy biến, nhưng quá trình thiết lập rắc rối quá nên cứ chần chừ, còn với Go thì lại thấy có hy vọng hơn.
Chúng tôi đang cố gắng để trải nghiệm phát triển desktop environment trở nên dễ nhất có thể.
Ví dụ, ngay cả module cho panel hay desktop cũng chỉ cần viết một hàm trả về
fyne.CanvasObject, nên việc phát triển cũng đơn giản như làm panel trong một ứng dụng Fyne.Tôi muốn hỏi liệu có điểm gì lạ cần lưu ý khi dùng trên Pop!_OS 22 không.