프로젝트 소개

Omega는 Rust를 사용하여 Omarchy 데스크톱 환경을 확장하기 위한 강력하고 타입이 지정된 선언적 접근 방식을 제공합니다. 구성 파일을 표준 Cargo 워크스페이스로 취급함으로써, 개발자는 독립적인 Rust 크레이트로서 위젯, 컨트롤, 자동화를 작성할 수 있습니다. 이 아키텍처는 각 플러그인이 자체 프로세스에서 실행되도록 보장하므로, 하나의 플러그인에서 발생한 충돌이 전체 셸을 다운시키지 않아 시스템 안정성이 향상됩니다. 이 프레임워크는 사용자 정의 플러그인과 기본 시스템 상태 간의 격차를 해소합니다. Omega는 이러한 프로세스를 감독하고 공유 시스템 통합을 중개하여, Rust 코드가 표시되어야 하는 내용과 상호 작용 방식만 설명하는 데 집중할 수 있도록 합니다. 구성은 매우 구조화되어 있습니다: `system/` 디렉토리는 데스크톱 레이아웃과 자동화를 정의하고, `units/` 아래의 개별 크레이트는 특정 플러그인을 구현합니다. 이러한 플러그인은 시스템 선언이 강력한 Rust 타입을 통해 설정과 표면을 참조할 수 있도록 라이브러리를 노출하여, 컴파일 시간 안전성과 일관성을 보장합니다. Omega의 핵심 기능 중 하나는 셸 구성 자체를 관리하는 능력입니다. 일단 채택되면, Rust 선언은 전체 `shell.json` 파일의 진실 원천이 됩니다. 이를 통해 네이티브 Omarchy 위젯과 사용자 정의 Omega 플러그인을 단일 레이아웃 내에서 원활하게 통합할 수 있습니다. `omega` CLI는 워크스페이스 설정(`omega init`), 플러그인 크레이트 스캐폴딩(`omega new`), 구성 컴파일 및 활성화(`omega build`)와 같은 명령어로 이 워크플로우를 지원합니다. `omega shell diff` 및 `omega shell apply`와 같은 고급 명령은 외부 편집과 생성된 구성 간의 충돌을 관리하여, 설정의 선언적 특성이 유지되도록 합니다. 개발자는 선언적 뷰를 사용하여 대화형 UI를 만들 수 있습니다. 예를 들어, 위젯은 시스템 상태(예: `Audio` 또는 `Volume`)에 대한 타입이 지정된 참조를 보유할 수 있으며, 이러한 상태를 수정하기 위한 명령을 정의할 수 있습니다. Omega는 이러한 타입 정의에서 필요한 구독 및 권한을 자동으로 유도합니다. 또한 이 프레임워크는 `omega build --watch`를 통한 개발 중 핫 리로딩을 지원하며, 명령줄을 통해 데몬 상태, 로그, 플러그인 상태를 검사하는 도구를 제공합니다. 이를 통해 Omega는 데스크톱 환경에 대한 깊고 프로그래밍적인 제어를 원하면서 Rust의 안전성과 성능을 활용하고자 하는 사용자에게 강력한 도구가 됩니다.