From e088a739252eaf983ec6001751fd3cd0daeabbb5 Mon Sep 17 00:00:00 2001 From: lacvet Date: Sat, 4 Apr 2026 11:39:47 +0900 Subject: [PATCH] =?UTF-8?q?[Phase=20L5]=20=EB=9F=B0=EC=B2=98=20=EA=B3=A0?= =?UTF-8?q?=EB=8F=84=ED=99=94=205=EB=8B=A8=EA=B3=84=20=EA=B3=84=ED=9A=8D?= =?UTF-8?q?=20=EC=88=98=EB=A6=BD=20=EB=B0=8F=20L4=20=EC=99=84=EB=A3=8C=20?= =?UTF-8?q?=EB=A7=88=ED=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LAUNCHER_ROADMAP.md 업데이트: - Phase L4 전체 ✅ 완료 표시 (L4-1~L4-6 구현 내용 기록) - Phase L5 신규 추가: 전용 핫키·OCR·QuickLook편집·세션 스냅·배치 이름변경·스케줄러 - 각 L5 항목에 C# 인터페이스·클래스 시그니처 수준 설계 명세 추가 - 구현 순서: L5-1 → L5-2 → L5-3 → L5-5 → L5-4 → L5-6 --- docs/LAUNCHER_ROADMAP.md | 88 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 81 insertions(+), 7 deletions(-) diff --git a/docs/LAUNCHER_ROADMAP.md b/docs/LAUNCHER_ROADMAP.md index cbe25a8..d60e034 100644 --- a/docs/LAUNCHER_ROADMAP.md +++ b/docs/LAUNCHER_ROADMAP.md @@ -107,18 +107,92 @@ --- -## Phase L4 — 검색/탐색 UX 혁신 + 생산성 확장 (v1.7.x) +## Phase L4 — 검색/탐색 UX 혁신 + 생산성 확장 (v1.7.x) ✅ 완료 > **방향**: Raycast/Alfred 기능 갭 해소 + 기존 L1-7 미완 기능 이행. 런처 단독 완결형 생산성 강화. +| # | 기능 | 설명 | 상태 | +|---|------|------|------| +| ✅ L4-1 | **파일 탐색기 인라인 패널** | 경로 입력(`C:\`, `D:\`, `~\`) 감지 → 폴더 목록 표시. →/← 키로 폴더 진입/상위 이동. Enter로 탐색기/기본 앱 실행 | 완료 | +| ✅ L4-2 | **QuickLook F3 강화** | PDF(PdfPig 텍스트 추출), 코드 구문강조(14개 언어 배경색+줄번호), Word/Excel(OpenXml) 미리보기 | 완료 | +| ✅ L4-3 | **클립보드 핀 & 카테고리** | Ctrl+P 핀 고정, `#pin/#url/#코드/#경로` 필터, 자동 분류. L1-7 기구현 확인 | 완료 | +| ✅ L4-4 | **검색 히스토리** | ↑/↓ 키로 이전 검색어 탐색. 50개 FIFO `search_history.json` 로컬 저장 | 완료 | +| ✅ L4-5 | **고급 검색 필터 문법** | `ext:.pdf size:>1mb modified:week in:documents type:file` 인라인 필터. SearchFilterParser + FuzzyEngine.SearchWithFilter() | 완료 | +| ✅ L4-6 | **계산기 단위 변환 확장** | `=20km` 자동 제안, `=today+30d` 날짜 계산. UnitConverter.AutoSuggest() + DateShortcut | 완료 | + +--- + +## Phase L5 — 전용 핫키 · OCR · 배치 작업 · 자동화 (v1.7.4~) + +> **방향**: 파워유저의 반복 작업 제거. Raycast의 핫키 할당, Windows OCR 통합, 멀티파일 배치 이름변경, +> QuickLook 인라인 편집, 워크플로우 스냅 6가지로 런처를 "행동 허브"로 확장. + | # | 기능 | 설명 | 우선순위 | |---|------|------|----------| -| L4-1 | **파일 탐색기 인라인 패널** | `cd` + `→` 키로 인라인 탐색기 진입. 경로 브레드크럼, ←/→ 폴더 이동, Ctrl+D 즐겨찾기 핀 | 높음 | -| L4-2 | **QuickLook F3 강화** | PDF(WinRT PdfDocument), 코드 구문강조(확장자별 배경색+라인 번호), Office 텍스트 추출 | 높음 | -| L4-3 | **클립보드 핀 & 카테고리** | Ctrl+P 핀 고정, `#pin/#url/#code` 필터, 자동 분류(URL/코드/경로). L1-7 이행 | 높음 | -| L4-4 | **검색 히스토리** | ↑/↓ 키로 이전 검색어 탐색. 50개 FIFO 로컬 저장. 런처 재시작 후에도 유지 | 중간 | -| L4-5 | **고급 검색 필터 문법** | `ext:.pdf size:>1mb modified:week in:documents` 인라인 필터. FuzzyEngine 파서 레이어 | 중간 | -| L4-6 | **계산기 단위 변환 확장** | `=20km`, `=100°F`, `=today+30d`. 로컬 변환 테이블. `=` 핸들러 확장 | 중간 | +| L5-1 | **항목별 전용 핫키** | 앱·URL·폴더에 `Ctrl+Alt+숫자` 등 글로벌 단축키 직접 할당. `hotkey` 프리픽스로 관리. GlobalHotkeyService에 동적 등록 | 높음 | +| L5-2 | **OCR 화면 텍스트 추출** | `ocr` 명령 또는 캡처에서 F4 → 화면 영역 드래그 → Windows OCR(로컬) 추출 → 클립보드 복사 / 런처 입력 | 높음 | +| L5-3 | **QuickLook 인라인 편집** | F3 미리보기에서 텍스트·마크다운 파일 직접 편집 + Ctrl+S 저장. 변경 감지(수정 표시 `●`), Esc 취소 | 중간 | +| L5-4 | **앱 세션 스냅** | 여러 앱을 지정 레이아웃으로 한번에 열기. `snap 세션이름` → 등록된 앱 목록을 각 레이아웃에 배치 | 중간 | +| L5-5 | **배치 파일 이름 변경** | 다중 선택 후 `rename {패턴}` → 넘버링·날짜·정규식 치환 미리보기 → 일괄 적용 | 중간 | +| L5-6 | **자동화 스케줄러** | `sched` 프리픽스로 시간·앱 기반 트리거 등록. "매일 09:00 = 크롬 열기", "캐치 앱 실행 시 = 알림" | 낮음 | + +### Phase L5 구현 순서 (권장) + +``` +L5-1 (핫키) → L5-2 (OCR) → L5-3 (편집) → L5-5 (배치 이름변경) → L5-4 (세션 스냅) → L5-6 (스케줄러) +``` + +### L5-1 항목별 전용 핫키 — 구현 설계 + +```csharp +// HotkeyAssignment: 단축키 → 실행 대상 매핑 모델 +public record HotkeyAssignment(string HotkeyStr, string TargetPath, string Label); + +// GlobalHotkeyService 확장 +// - RegisterCustomHotkeys(IEnumerable) 추가 +// - 기존 Alt+Space 핫키와 독립 관리 (별도 id 공간) + +// HotkeyHandler (prefix="hotkey"): 등록/삭제/목록 조회 +// 런처 -> "hotkey set ctrl+alt+1 C:\Apps\Chrome.exe 크롬" +// 런처 -> "hotkey list" → 등록된 핫키 목록 +// 런처 -> "hotkey del ctrl+alt+1" +``` + +### L5-2 OCR 화면 텍스트 추출 — 구현 설계 + +```csharp +// Windows.Media.Ocr.OcrEngine (이미 L2-4 ClipboardOcr에서 사용 중) +// OcrHandler (prefix="ocr"): +// 1. 런처 숨김 +// 2. 반투명 오버레이 창(전체화면) 표시 → 마우스 드래그로 영역 선택 +// 3. PrintScreen + crop → BitmapImage → OcrEngine.RecognizeAsync() +// 4. 결과 텍스트 클립보드 복사 + 런처 재표시 (결과 항목으로 표시) +// ScreenRegionSelector: 기존 ScreenCaptureHandler의 SelectionOverlay 재사용 가능 +``` + +### L5-3 QuickLook 인라인 편집 — 구현 설계 + +```csharp +// QuickLookWindow.xaml에 편집 모드 토글 버튼 추가 (타이틀바 우상단 ✏ 아이콘) +// TextScrollViewer → TextBox (편집 모드에서만 활성) +// Ctrl+S → File.WriteAllText() + 저장 완료 토스트 +// 수정 감지: TextBox.TextChanged → 타이틀에 "●" 마커 +// Esc → 저장 안 함 확인(CustomMessageBox) 후 미리보기 모드 복귀 +// 편집 가능 확장자: .txt, .md, .log, .cs, .py, .js, .ts, .json, .xml, .yaml 등 +``` + +### L5-5 배치 파일 이름 변경 — 구현 설계 + +```csharp +// BatchRenameWindow: 선택 파일 목록 + 패턴 입력 + 미리보기 DataGrid +// 패턴 유형: +// {name} → 원본 이름 +// {n:3} → 3자리 순번 (001, 002, ...) +// {date} → 오늘 날짜 (yyyyMMdd) +// {ext} → 확장자 +// 정규식 치환: /old/new/ +// LauncherWindow: 다중 선택(Shift+↑/↓) 후 F2 → BatchRenameWindow 열기 +``` ---