[Phase L5] 런처 고도화 5단계 계획 수립 및 L4 완료 마킹
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
This commit is contained in:
@@ -107,18 +107,92 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Phase L4 — 검색/탐색 UX 혁신 + 생산성 확장 (v1.7.x)
|
## Phase L4 — 검색/탐색 UX 혁신 + 생산성 확장 (v1.7.x) ✅ 완료
|
||||||
|
|
||||||
> **방향**: Raycast/Alfred 기능 갭 해소 + 기존 L1-7 미완 기능 이행. 런처 단독 완결형 생산성 강화.
|
> **방향**: 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 즐겨찾기 핀 | 높음 |
|
| L5-1 | **항목별 전용 핫키** | 앱·URL·폴더에 `Ctrl+Alt+숫자` 등 글로벌 단축키 직접 할당. `hotkey` 프리픽스로 관리. GlobalHotkeyService에 동적 등록 | 높음 |
|
||||||
| L4-2 | **QuickLook F3 강화** | PDF(WinRT PdfDocument), 코드 구문강조(확장자별 배경색+라인 번호), Office 텍스트 추출 | 높음 |
|
| L5-2 | **OCR 화면 텍스트 추출** | `ocr` 명령 또는 캡처에서 F4 → 화면 영역 드래그 → Windows OCR(로컬) 추출 → 클립보드 복사 / 런처 입력 | 높음 |
|
||||||
| L4-3 | **클립보드 핀 & 카테고리** | Ctrl+P 핀 고정, `#pin/#url/#code` 필터, 자동 분류(URL/코드/경로). L1-7 이행 | 높음 |
|
| L5-3 | **QuickLook 인라인 편집** | F3 미리보기에서 텍스트·마크다운 파일 직접 편집 + Ctrl+S 저장. 변경 감지(수정 표시 `●`), Esc 취소 | 중간 |
|
||||||
| L4-4 | **검색 히스토리** | ↑/↓ 키로 이전 검색어 탐색. 50개 FIFO 로컬 저장. 런처 재시작 후에도 유지 | 중간 |
|
| L5-4 | **앱 세션 스냅** | 여러 앱을 지정 레이아웃으로 한번에 열기. `snap 세션이름` → 등록된 앱 목록을 각 레이아웃에 배치 | 중간 |
|
||||||
| L4-5 | **고급 검색 필터 문법** | `ext:.pdf size:>1mb modified:week in:documents` 인라인 필터. FuzzyEngine 파서 레이어 | 중간 |
|
| L5-5 | **배치 파일 이름 변경** | 다중 선택 후 `rename {패턴}` → 넘버링·날짜·정규식 치환 미리보기 → 일괄 적용 | 중간 |
|
||||||
| L4-6 | **계산기 단위 변환 확장** | `=20km`, `=100°F`, `=today+30d`. 로컬 변환 테이블. `=` 핸들러 확장 | 중간 |
|
| 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<HotkeyAssignment>) 추가
|
||||||
|
// - 기존 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 열기
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user