Files

3.2 KiB

Photo Renamer

macOS용 Electron 데스크톱 앱입니다. 폴더 안의 이미지 파일을 그리드로 확인하면서 순서를 조정하고, 일괄 이름 변경, 폴더 이동, 삭제를 수행할 수 있습니다.

주요 기능

  • 이미지 폴더 열기 및 사이드바 폴더 탐색
  • 파일 탐색기 표시/숨김 토글 및 상태 저장
  • 썸네일 그리드 표시와 지연 로딩
  • 드래그 앤 드롭으로 카드 순서 변경
  • 선택 파일 또는 전체 파일의 순차 이름 변경
  • 폴더 선택 시 이미지 유무와 관계없이 폴더명을 파일명 prefix로 자동 적용
  • 사이드바 폴더로 파일 이동, 파일명 충돌 시 새 이름으로 이동
  • 삭제 파일 staging 및 Undo/Redo
  • Hover 이미지 미리보기 토글
  • Ctrl+스크롤 썸네일 크기 조절
  • Finder 스타일 카드 선택
    • Click, Shift+Click, Cmd+Click
    • Rubber-band drag
    • Arrow, Home, End 키보드 네비게이션
    • Shift+Arrow/Home/End 범위 추가 선택

설치 및 실행

npm install
npm start

처음 설정부터 실행하려면:

./setup.sh

빌드

macOS 앱 번들만 빌드:

npm run build

DMG 패키지까지 생성:

npm run dist

빌드 결과는 dist/ 아래에 생성됩니다. 로컬에 유효한 Apple Developer 코드서명 인증서가 없으면 electron-builder가 코드서명을 건너뛰며 경고를 출력할 수 있습니다.

키보드 단축키

동작
Cmd+O 폴더 열기
Cmd+S 이름 변경 실행
A 전체 선택
Cmd+Z Undo
Cmd+Shift+Z Redo
Space Hover 미리보기 on/off
D 파일 탐색기 표시/숨김
Backspace / Delete 선택 파일 삭제
ArrowLeft / ArrowRight / ArrowUp / ArrowDown 해당 방향 카드로 이동 및 단독 선택
Home / End 첫 카드 / 마지막 카드로 이동 및 그리드 최상단 / 최하단 스크롤
Shift+Arrow* / Shift+Home / Shift+End 기존 선택을 유지하면서 anchor부터 타겟까지 범위 추가 선택

입력 모드와 관계없이 동작하도록 키보드 처리는 e.code 기준입니다. 모달이 열려 있을 때는 전역 단축키가 동작하지 않습니다.

프로젝트 구조

assets/
├── icon.png
└── icon.icns

src/
├── main/       # Electron main process, filesystem IPC
├── preload/    # contextBridge API
└── renderer/   # UI, selection, grid, rename/move/delete flows

Electron 보안 설정은 contextIsolation: true, nodeIntegration: false를 사용합니다. 파일 시스템 접근은 src/main/에만 두고, renderer는 window.api를 통해 IPC만 호출합니다.

개발 메모

  • 테스트와 린트 스크립트는 현재 구성되어 있지 않습니다.
  • 설정값은 app.getPath('userData')/config.json에 저장됩니다. 최근 폴더, Hover 미리보기, 사이드바 폭, 파일 탐색기 표시 상태, 썸네일 크기, 창 위치/크기를 포함합니다.
  • 삭제 Undo를 위해 삭제된 파일은 userData/deleted_staging/ 아래에 임시 보관됩니다.
  • 자세한 코드 작업 규칙과 아키텍처 메모는 AGENTS.md를 참고하세요.