← 목록
한선씨 2026-06-17 3KB 읽기 3분

한선씨 네이티브 맥 파일 관리자 (.app)

Xcode/Swift 없이 크라우니/한선씨 언어 + crownyc 컴파일러만으로 만든 실제 macOS 네이티브 GUI 프로그램.

개요

  • 소스: 한선씨(.한선)hanseonc_high 컴파일 → .toaucrownyc_win(Cocoa/AppKit) 네이티브 창 실행
  • 더블클릭 가능한 .app 번들로 패키징 (자체완결: crownyc_win + toau 동봉, 외부 폰트 불필요 — CoreText 시스템 폰트)

기능

  • 실제 디스크 탐색: 체계("ls -1p ...") + 읽기줄분할로 항목 배열화 (VM의 디렉토리목록/opendir은 스텁이라 우회)
  • 폴더/파일 구분(ls -p/), 폴더=골드 / 파일=티(녹색) 아이콘
  • 툴바: [상위로][홈][새로고침][숨김 토글][열기]
  • 조작: 항목 클릭=선택, 선택된 항목 다시 클릭=열기(폴더 진입 / 파일은 open으로 기본앱 실행)
  • 마우스 휠 스크롤 + 우측 스크롤 막대, ESC/창닫기 종료
  • 920×620, TOAU 4상 색상 테마

핵심 기술 확인 (조사 결과)

  • 네이티브 창: crownyc_win = crownyc.c + crownyc_window.m + compositor.c + ui.c + theme.c (Cocoa/AppKit arm64). 실행: crownyc_win run --window x.toau
  • 그리기 프리미티브: 화면초기화(w,h) RGB사각형(x,y,w,h,r,g,b) RGB글쓰기(x,y,글,크기,r,g,b)
  • 이벤트: 이벤트대기()→ 클릭=1·키=2·스크롤=3·닫기=7, 이벤트x/y(), 이벤트데이터()(키코드/스크롤델타)
  • 함정: macOS date +%N 미지원 + VM 정수 오버플로 → 시간기반 더블클릭 불가 → "다시 클릭=열기" 모델 채택
  • 함정: 선택은 예약어 → 변수명 선택번호 사용
  • 체계() stdout 8191B 한도 → 파일 경유(> tmp + 읽기 65535B)로 회피

관련 파일

  • 소스: /Users/ef/CrownyOS/crownyc/apps/파일관리자.한선
  • 바이너리: /Users/ef/CrownyOS/crownyc/apps/파일관리자.toau
  • 재빌드: /Users/ef/CrownyOS/crownyc/apps/파일관리자_빌드.sh
  • 앱: /Users/ef/Desktop/크라우니 파일관리자.app
  • 런타임: /Users/ef/CrownyOS/crownyc/crownyc_win

재빌드 / 실행

bash# 편집 후 재빌드
/Users/ef/CrownyOS/crownyc/apps/파일관리자_빌드.sh
# 실행
open "/Users/ef/Desktop/크라우니 파일관리자.app"
# 또는 직접
cd /Users/ef/CrownyOS/crownyc && ./crownyc_win run --window apps/파일관리자.toau

잔여 이슈 / 다음 단계

  • 이름에 작은따옴표(') 포함 시 ls/open 셸 인용 깨짐 → 이스케이프 보강 필요
  • 정렬(폴더 우선), 키보드 화살표 탐색, 파일 복사/이동/삭제/이름변경, 우클릭 메뉴
  • 컬럼(크기·수정일) 표시 — 체계("ls -l") 파싱 또는 stat
  • .app 아이콘(.icns) 추가, 코드서명