한선씨 네이티브 맥 파일 관리자 (.app)
Xcode/Swift 없이 크라우니/한선씨 언어 + crownyc 컴파일러만으로 만든 실제 macOS 네이티브 GUI 프로그램.
개요
- 소스:
한선씨(.한선)→hanseonc_high컴파일 →.toau→crownyc_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) 추가, 코드서명