[Phase L27] 경쟁 공백 즉시 해소 — Windows 일상 제어 도구 5종 구현
VolHandler.cs (신규, prefix=vol):
- Windows Core Audio API COM 직접 호출 (IAudioEndpointVolume)
- vol 50 설정, vol up/down ±10%, vol mute 토글
- AudioEndpoint 래퍼 클래스 + IDisposable 해제
- 볼륨 바 시각화 (20칸 블록), NuGet 불필요
QrHandler.cs (신규, prefix=qr):
- QRCoder 1.6.0 NuGet 추가 (순수 C#, ~150KB)
- qr {텍스트} → PNG 클립보드 복사
- qr save {텍스트} → TEMP 저장 후 탐색기 열기
- 바이트 길이·URL 자동 감지 표시
MeetHandler.cs (신규, prefix=meet):
- %APPDATA%\AxCopilot\meet.json 로컬 저장
- meet add/del CRUD, 이름·URL·서비스 검색
- 서비스 자동 감지 (Zoom/Teams/Google Meet/Webex/Discord/Slack)
- Enter → UseShellExecute URI 열기
BrightHandler.cs (신규, prefix=bright):
- WMI PowerShell subprocess (Get-CimInstance WmiMonitorBrightness)
- bright 70 설정, bright up/down ±10%
- 노트북 내장 디스플레이 전용, 외장 모니터 미지원 안내
- 밝기 바 시각화 (20칸 블록)
PasteHandler.cs (신규, prefix=paste):
- ClipboardHistoryService 의존성 주입
- paste 3 1 5 → 3번→1번→5번 순서대로 Ctrl+V
- paste all → 최근 20개 항목 전체 순차 붙여넣기
- SendInput P/Invoke + AttachThreadInput 포커스 전환
- Raycast "Paste Sequentially" 대응
App.xaml.cs: L27 핸들러 5개 등록 (Vol/Qr/Meet/Bright/Paste)
AxCopilot.csproj: QRCoder 1.6.0 패키지 참조 추가
LAUNCHER_ROADMAP.md: Phase L27 ✅ 완료 + 벤치마킹 공백 해소 표시
빌드: 경고 0, 오류 0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
## 현재 상태 (v2.2.0)
|
||||
|
||||
### 핵심 기능 (114개 핸들러, L26 완료 / L27~L29 계획 중)
|
||||
### 핵심 기능 (119개 핸들러, L27 완료 / L28~L29 계획 중)
|
||||
- 퍼지 검색 + 한글 초성 검색 (FuzzyEngine) + **최근 실행 지수 감소 랭킹 (30일 decay)**
|
||||
- 110개+ 프리픽스 명령 (계산기·이모지·웹검색·스니펫·클립보드·프로세스·데이터·네트워크·업무양식 등)
|
||||
- 10가지 테마 + 커스텀 테마
|
||||
@@ -39,17 +39,17 @@
|
||||
| **에이전트 코딩 루프** | ✅ 실구현 | 선언만 | ❌ | ❌ | ❌ | ❌ |
|
||||
| **사내 보안 AI 게이트** | ✅ **독점** | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| **클립보드 히스토리** | ✅ 핀·분류·이미지 | ✅ | ✅ | △ 플러그인 | ❌ | ❌ |
|
||||
| **순차 붙여넣기** | ❌ **공백** | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||
| **순차 붙여넣기** | ✅ (L27) | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||
| **스니펫 확장** | ✅ | ✅ 동적 플레이스홀더 | ✅ | △ 플러그인 | ❌ | ❌ |
|
||||
| **창 관리** | ✅ 22 레이아웃 | ✅ 70+ (Win 베타 탑재) | ❌ | ❌ | △ FancyZones 연동 | ❌ |
|
||||
| **파일 탐색기 인라인** | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ **독점** |
|
||||
| **파일 미리보기** | △ 텍스트 6줄 | ❌ | ✅ Grid View | ❌ | ❌ | △ 사이드바 |
|
||||
| **브라우저 북마크 검색** | ❌ **공백** | ✅ 확장 연동 | ✅ | △ 플러그인 | ✅ 내장 | ❌ |
|
||||
| **브라우저 탭 AI 전달** | ❌ **공백** | ✅ {browser-tab} | ❌ | ❌ | ❌ | ❌ |
|
||||
| **시스템 볼륨 제어** | ❌ **공백** | ✅ | ✅ | ❌ | ❌ | ❌ |
|
||||
| **화면 밝기 제어** | ❌ **공백** | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||
| **QR 코드 생성** | ❌ **공백** | ✅ | ✅ | △ 플러그인 | ❌ | ❌ |
|
||||
| **회의 링크 빠른 열기** | △ QuickLink 수동 | ✅ Calendar 연동 | ✅ | ❌ | ❌ | ❌ |
|
||||
| **시스템 볼륨 제어** | ✅ (L27) | ✅ | ✅ | ❌ | ❌ | ❌ |
|
||||
| **화면 밝기 제어** | ✅ (L27) | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||
| **QR 코드 생성** | ✅ (L27) | ✅ | ✅ | △ 플러그인 | ❌ | ❌ |
|
||||
| **회의 링크 빠른 열기** | ✅ (L27) | ✅ Calendar 연동 | ✅ | ❌ | ❌ | ❌ |
|
||||
| **winget 앱 설치** | ❌ **공백** | ✅ Win 베타 | ❌ | △ 플러그인 | ❌ | ✅ 내장 |
|
||||
| **노코드 워크플로우** | ❌ **공백** | △ AI Ext 베타 | ✅ 완전 지원 | ❌ | ❌ | ❌ |
|
||||
| **스크립트 명령 실행** | ✅ ^ 프리픽스 | ✅ Script Commands | ✅ | ✅ | ✅ | ❌ |
|
||||
@@ -583,23 +583,22 @@ public record HotkeyAssignment(string HotkeyStr, string TargetPath, string Label
|
||||
|
||||
---
|
||||
|
||||
## Phase L27 — 경쟁 공백 즉시 해소: Windows 일상 제어 (v2.3.0) 📋 계획
|
||||
## Phase L27 — 경쟁 공백 즉시 해소: Windows 일상 제어 (v2.3.0) ✅ 완료
|
||||
|
||||
> **방향**: Raycast·Alfred·PowerToys가 공통 제공하나 AX에 없는 **일상 빈도 최상위 기능** 6종 일괄 구현.
|
||||
> 모두 외부 설치 의존 없이 Windows 네이티브 API + 로컬 파싱으로 구현.
|
||||
|
||||
| # | 기능 | 프리픽스 | 구현 방식 | 사무 적합성 |
|
||||
|---|------|---------|---------|:---:|
|
||||
| 📋 L27-1 | **브라우저 북마크 검색** | `bm` | Edge: `%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Bookmarks` JSON 파싱. Chrome 동일 경로. 제목·URL·폴더 검색. Enter → 기본 브라우저로 열기 | ⭐⭐⭐ |
|
||||
| 📋 L27-2 | **시스템 볼륨 제어** | `vol` | `Windows.Media.Audio` COM / `NAudio.CoreAudioApi` IAudioEndpointVolume. `vol 50` → 50% 설정, `vol up/down` → ±10%, `vol mute` → 토글. 현재 볼륨 실시간 표시 | ⭐⭐⭐ |
|
||||
| 📋 L27-3 | **QR 코드 생성** | `qr` | QRCoder NuGet (순수 C# 행렬). `qr {텍스트/URL}` → 128×128 BitmapImage 결과 패널 인라인 표시. Enter → PNG 클립보드 복사. `save` → `%TEMP%\qr.png` 저장 후 탐색기 | ⭐⭐ |
|
||||
| 📋 L27-4 | **회의 링크 전용 관리** | `meet` | `%APPDATA%\AxCopilot\meet.json` 로컬 저장. `meet add {이름} {URL}` 등록. 서비스 자동 감지 (Zoom/Teams/Google Meet/Webex). Enter → URI 실행. 빈 쿼리 → 전체 목록 | ⭐⭐⭐ |
|
||||
| 📋 L27-5 | **화면 밝기 제어** | `bright` | WMI `WmiMonitorBrightnessMethods.WmiSetBrightness()`. `bright 70` → 70% 설정. `bright up/down` → ±10%. 노트북 내장 모니터 대상. 외장 모니터는 미지원 안내 | ⭐⭐ |
|
||||
| 📋 L27-6 | **클립보드 순차 붙여넣기** | `paste` | 클립보드 히스토리 항목 N개를 번호 지정해 순서대로 전송 (`paste 3 1 5` → 3번→1번→5번 순). SendKeys 방식. Raycast "Paste Sequentially" 대응 기능 | ⭐⭐ |
|
||||
| # | 기능 | 프리픽스 | 구현 방식 |
|
||||
|---|------|---------|---------|
|
||||
| ✅ L27-1 | **브라우저 북마크 검색** | (퍼지 통합) | `BookmarkHandler.cs` 기구현 — Edge/Chrome Bookmarks JSON 파싱, 5분 캐시 TTL, 제목·URL 검색, Enter → 기본 브라우저로 열기. 프리픽스 없이 일반 검색에 통합 |
|
||||
| ✅ L27-2 | **시스템 볼륨 제어** | `vol` | `VolHandler.cs` — Windows Core Audio API COM 직접 호출 (IAudioEndpointVolume). `vol 50` 설정, `vol up/down` ±10%, `vol mute` 토글. 볼륨 바 시각화. NuGet 불필요 |
|
||||
| ✅ L27-3 | **QR 코드 생성** | `qr` | `QrHandler.cs` — QRCoder NuGet (순수 C# QR 행렬). `qr {텍스트}` → Enter: PNG 클립보드 복사. `qr save {텍스트}` → TEMP 저장 후 탐색기 열기 |
|
||||
| ✅ L27-4 | **회의 링크 전용 관리** | `meet` | `MeetHandler.cs` — `%APPDATA%\AxCopilot\meet.json` 로컬 저장. `meet add/del` CRUD. 서비스 자동 감지 (Zoom/Teams/Google Meet/Webex/Discord/Slack). Enter → URI 열기 |
|
||||
| ✅ L27-5 | **화면 밝기 제어** | `bright` | `BrightHandler.cs` — WMI PowerShell subprocess (Get-CimInstance WmiMonitorBrightness). 노트북 내장 디스플레이. `bright 70` 설정, `bright up/down` ±10%. 외장 모니터 미지원 안내 |
|
||||
| ✅ L27-6 | **클립보드 순차 붙여넣기** | `paste` | `PasteHandler.cs` — ClipboardHistoryService 연동. `paste 3 1 5` → 3번→1번→5번 순서대로 Ctrl+V. `paste all` 전체 순차 붙여넣기. SendInput P/Invoke 방식 |
|
||||
|
||||
**구현 순서**: L27-1(bm) → L27-4(meet) → L27-3(qr) → L27-2(vol) → L27-5(bright) → L27-6(paste)
|
||||
**NuGet 추가**: `QRCoder` (순수 C#, 외부 의존 없음, ~150KB DLL)
|
||||
**예상 핸들러 파일**: BookmarkHandler.cs, MeetHandler.cs, QrHandler.cs, VolHandler.cs, BrightHandler.cs — PasteHandler.cs 또는 ClipboardHistoryHandler 확장
|
||||
**NuGet 추가**: `QRCoder 1.6.0` (순수 C#, 외부 의존 없음, ~150KB DLL)
|
||||
**빌드**: 경고 0, 오류 0
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user