FyneDesk: Go 언어로 작성된 완전한 Linux 데스크탑 환경
(github.com/FyshOS)- FyneDesk는 Go 언어로 개발된 Linux/Unix용 데스크탑 환경임
- Fyne 툴킷 기반으로 간편한 사용성과 개발 용이성을 지향함
- 필수 외부 툴과 함께 전체 데스크탑 경험을 제공함
- 자동 복구 기능을 갖춘 fynedesk_runner 유틸리티로 안정성 강화 가능함
- 알파/베타 버전 소프트웨어로서 오픈소스 기여와 피드백을 환영함
프로젝트 개요
- FyneDesk는 Go 언어와 Fyne 툴킷을 활용하여 개발된 Linux 또는 Unix용 데스크탑 환경임
- 머티리얼 디자인을 따르는 직관적인 UI와 사용 친화성을 추구함
- 초보 및 숙련 개발자 모두에게 개발과 참여가 쉽다는 점이 특징임
주요 특징 및 강점
- FyneDesk는 기존의 데스크탑 환경과 달리 Go 언어로 작성되어 관리 및 유지보수에 용이함
- Fyne 툴킷을 기반으로 확장성 높은 GUI 구조를 갖춤
- 가벼운 설치와 빠른 실행 속도가 장점임
- 기여자 및 사용자의 피드백을 적극적으로 수용하고 있음
의존성 및 외부 도구
-
FyneDesk를 제대로 실행하려면 다음 외부 툴이 필요함
- arandr : 디스플레이 설정 변경용
- xbacklight 또는 brightnessctl : 노트북 밝기 조절용
- connman-gtk : Wi-Fi 네트워크 설정용
- compton : 컴포지터 지원용
- 위 도구 없이도 동작하지만, 완전한 데스크탑 경험이 제한됨
설치 및 실행
- 표준 Go툴로 FyneDesk를 쉽게 설치 가능함
- 설치 후 "프리뷰 모드" 로 실행할 수 있으며, 윈도우 매니저로 사용하려면 추가 설정이 필요함
- 데스크탑 환경 선택 메뉴에서 FyneDesk가 노출됨
- Xephyr 도구로 내장 X 윈도우에서 테스트 가능함
fynedesk_runner와 안정성
-
FyneDesk는 안정성 확보를 위하여 fynedesk_runner 유틸리티를 지원함
- 예측하지 못한 프로그램 중지시, 실행 상태를 자동 복구함
- 사전 배포 버전(알파/베타) 평가 및 테스트에 적합한 구조임
패키징 및 배포 안내
- 배포 시에는 필수 라이브러리 및 종속성 없는 경량 형태임
- fin (fyshos/fin) 등의 부가 애플리케이션과 결합 시 완성도 높은 통합 경험 가능함
- 시스템에 패키징하여 배포 시, 프로젝트 측에 연락하면 공식 링크 추가 가능함
오픈소스 기여
- 누구나 오픈소스 기여와 피드백을 환영함
- 2024년 3월 기준 1,300개 스타, 54개 포크, 8명 이상의 기여자가 활동 중임
Hacker News 의견
- 나도 Nvidia 때문에 Wayland을 지원하지 않는 데스크톱으로 옮길 생각이 없지만, 댓글에서 느껴지는 비관적인 분위기에는 동의하지 않음
이 프로젝트는 정말 멋져 보이고, 특히 플랫폼을 넘나드는 UI 툴킷을 만들려는 더 큰 목표의 일부라서 더욱 마음에 듦 https://fyne.io
이런 야심찬 프로젝트에 도전하는 개발자가 더 많아졌으면 하는 바람임, OpenAI API 래퍼 같은 건 그만 나왔으면 좋겠음
좋은 일 계속 이어나갔으면 하는 생각임- Wayland 지원 상황을 잘 모르겠지만, 관련해서 작업 중인 것으로 알고 있음 https://github.com/FyshOS/fynedesk/issues/76
- 이 프로젝트는 현재 X11 기반임
나는 완전히 Wayland 기반 데스크톱으로 옮겼기 때문에 만약 FyneDesk가 Wayland로 변경된다면 정말 기쁘게 사용해 볼 생각임
Wayland의 완전한 지원을 5.0에서 목표로 작업 중이라는 소식을 들었음
다만 ETA(예상 일자)가 궁금함, 지난 릴리즈가 1.5년 전이라서 기다리는 중임
공식 릴리즈 브랜치 0.4가 X11의 마지막이고 0.5부터는 Wayland(XWayland 포함)로 전환된다는 소식도 확인했음 https://github.com/FyshOS/fynedesk/releases- 외부 요인들 때문에 계획이 바뀌어서, 다음 릴리즈는 X11 기반이 될 예정임
그 후(올해 말쯤) Wayland로의 전환 작업을 시작할 계획임
이전을 원활하게 하기 위해 두 가지 모두 지원하고 싶지만, 아직은 확실하지 않은 상황임 - Wayland 작업은 다음 메이저 릴리즈 후에 시작할 것으로 보면 됨
현재는 상위 라이브러리의 수정이 적용되기를 기다리고 있음 - X11을 Wayland에서 돌릴 수 있게 해주는 완벽한 호환 레이어가 있는 줄 알았는데, 그게 아닌지 궁금함
- xdg-desktop-portal의 동작 방식이 정말 마음에 들지 않음
Arch/Hyprland에서 컬러 피커 구현을 시도했지만 전혀 성공하지 못했음
API가 정말 나쁘게 느껴짐 - 준비가 됐을 때 나오는 것이고, 내가 직접 도와주면 릴리즈가 더 빨리 나올 수도 있을 것임
마치 권리를 주장하는 듯한 태도처럼 보임
- 외부 요인들 때문에 계획이 바뀌어서, 다음 릴리즈는 X11 기반이 될 예정임
- 나에게는 modern한 Oberon과 Inferno 계열 운영 체제 사용자 경험의 토대가 될 수도 있다고 생각함
Go의 등장 배경을 생각하면, Limbo와 Oberon-2의 요소가 혼합된 느낌임
데스크톱 환경에서 Go의 다이나믹 링크 정책(그리고 거의 포기된 플러그인 패키지)을 고려해, Oberon이나 Inferno에서의 동적 동작들을 D-Bus나 net/rpc로 대체할 수도 있겠다는 생각을 해봄
하지만 데스크톱 파편화가 심한 현실을 보면, 실제로 도전할 가치는 많이 없을 것 같고 그냥 이런 느낌이 어떨지 상상해 보는 수준임- 내 목표는 개발자나 코딩을 배우는 사람에게 최고의 데스크톱을 만드는 것임
우리는 FyshOS에 앱 에디터를 통합 중임 (이름은 변경되어 https://apptrix.ai로 이전함)
예전 미리보기 영상에서 확인도 가능함 https://youtu.be/XXmDmn-et4E?si=5n1Ao-V6dKurXzS6 (주로 15:30부터 관련된 내용) - Go 플러그인의 현황에 대안이 있긴 함
Oberon 시스템과 비슷하게, 컴파일러가 생성하는 객체 파일을 직접 불러와 실행시키는 기술임 https://github.com/pkujhd/goloader
- 내 목표는 개발자나 코딩을 배우는 사람에게 최고의 데스크톱을 만드는 것임
- 개발 브랜치의 마지막 커밋이 3일 전이었으니 개발이 계속 진행 중임
main 브랜치에는 2024년 3월에 병합됐음- master 브랜치는 릴리즈에만 쓰이고 있음
dev 브랜치는 100개 이상의 커밋이 master보다 앞서 있을 정도로 매우 활발하게 개발 중임
마지막 정식 릴리즈가 2024년 3월이란 것도 충분히 문제없게 느껴짐
개발 브랜치에서 직접 빌드하면 항상 최신 상태로 사용할 수 있음 - HN에서 흔히 볼 수 있는, 남의 노력을 은근히 비꼬는 식의 댓글임
- master 브랜치는 릴리즈에만 쓰이고 있음
- 완전 새로 개발된 데스크톱 치고는 꽤 괜찮아 보인다는 인상임
개인적으로 세로 방향의 도크(독)를 좋아하는데, 세로 방향 시간 표시 방식이 아쉽게 느껴짐- master 브랜치의 마지막 업데이트가 작년이고, develop 쪽도 활동이 많지 않음
프로젝트가 7년 전에 시작된 것으로 보임 - 새 거라고? Wayland는 지원하지도 않는 것처럼 보임
- master 브랜치의 마지막 업데이트가 작년이고, develop 쪽도 활동이 많지 않음
- 이제는 Wayland가 필수가 되어버림
Wayland 지원이 시작된다면 꼭 제대로 써볼 생각임- Wayland 작업은 다음 메이저 릴리즈 이후에 시작될 것으로 기대할 수 있음
상위 라이브러리에서 수정 사항이 적용되기를 기다리고 있음 - 솔직하게 궁금한데, 이유가 뭔지 알고 싶음
나도 Wayland를 잠깐 써봤지만, 그냥 사용자 입장에서 뭐가 다른지 전혀 못 느꼈음
- Wayland 작업은 다음 메이저 릴리즈 이후에 시작될 것으로 기대할 수 있음
- 혹시 궁금한 사람이 있을까 싶어 알아봤는데, 창 장식/버튼을 오른쪽으로 옮길 수 있는 기능이 버전 0.2에 추가되어 있음
- 프로젝트의 배경과 목적이 궁금해서 찾아봤음
이게 취미로 한 건지, 수익 사업의 일환인지, 대학 같은 데에서 후원받는 학술 프로젝트인지 등등 궁금했음
찾아보니 parent 깃헙 계정에 두 명이 있음 https://github.com/FyshOS- 이 프로젝트는 순수하게 필요하다고 생각해서 자원봉사 오픈소스로 개발 중임
핵심 팀원이 4명이고 https://github.com/orgs/FyshOS/people 커뮤니티 기여도 적극적으로 받고 있음
스폰서십이나 상업적 파트너십에도 열려 있음
- 이 프로젝트는 순수하게 필요하다고 생각해서 자원봉사 오픈소스로 개발 중임
- 정말 흥미롭고 직접 써보고 싶은 생각임
최근 Fyne으로 여러가지를 실험 중이었는데 꽤 마음에 들었음
커스터마이즈 가능한 데스크톱 환경을 만지고 싶긴 해도 셋업 과정이 너무 골치 아파서 망설였었는데, Go라서 가능성이 생기는 느낌임- 한번 써보는 걸 추천함
데스크톱 환경 개발을 최대한 쉽게 경험할 수 있도록 하려 함
예를 들어, 패널이나 데스크톱의 모듈도 그냥 함수를 써서fyne.CanvasObject
를 반환하면 되니까, Fyne 앱에서 패널 만드는 느낌으로 개발이 쉬움
- 한번 써보는 걸 추천함
- 이번 주말에 꼭 써볼 예정임
Pop!_OS 22에서 주의해야 할 특이한 점이 있는지 궁금함