Skip to content

플러그인 관리

Lertaro는 고도로 모듈화된 플러그인 아키텍처를 갖추고 있습니다. 핵심 확장 기능, 네이티브 C# 플러그인, Flow Launcher 커뮤니티 플러그인을 설정 → 플러그인에서 통합 관리할 수 있습니다.

1. 페이지 레이아웃 및 SDK 버전

  • Plugin SDK 배지: 우측 상단에 현재 로드된 Lertaro.PluginSdk 버전이 표시됩니다. 클릭하면 개발자 가이드로 바로 이동합니다.
  • 좌우 2단 독립 스크롤: 좌측에는 설치된 플러그인 목록, 우측에는 선택된 플러그인의 상세 정보 및 설정 폼이 표시되며 각각 독립적으로 스크롤됩니다.

2. 플러그인 상세 정보 및 구성 요소 제어

좌측 목록에서 플러그인을 선택하면 우측에 아이콘, 이름, 버전 및 설명이 표시됩니다.

세부정보 탭 (Details)

  • 구성 요소 목록: 등록된 모든 하위 기능 컴포넌트(검색 소스, 액션 제공자, 퀵 내비게이션 항목, 미리보기 핸들러 등)를 분류별로 표시.
  • 컴포넌트 개별 스위치: 각 항목마다 활성화 체크박스가 제공됩니다. 자물쇠 아이콘이 있는 필수 핵심 구성 요소는 비활성화할 수 없습니다.
  • 전체 선택 / 전체 해제: 그룹 내 여러 항목이 있을 경우 편리하게 일괄 토글할 수 있는 링크 제공.
  • 상세 툴팁: 각 항목의 **(!)**에 마우스를 올리면 컴포넌트의 상세 설명과 동작 방식을 확인할 수 있습니다.

구성 탭 (Configure)

  • 인라인 설정 폼: 플러그인 고유의 설정 항목(텍스트 상자, 숫자 조절, 토글, 드롭다운, 하위 탭 등)이 팝업 창 없이 우측 패널에 직접 렌더링됩니다.
  • 아이콘 입력 필드: 스키마 키가 Icon인 텍스트 입력에는 아이콘 미리보기가 표시되며 WPF Path Data를 입력할 수 있습니다. 전체 SVG/XML 문서를 붙여 넣으면 경로 데이터를 자동으로 추출해 결합하고, 유효하지 않은 내용은 지운 뒤 테마가 적용된 대화상자로 알립니다.
  • 여러 줄 설정 편집기: StringList 필드는 확장된 편집기에서 자동 줄바꿈을 지원합니다. 실제 줄바꿈에는 구분을 위한 옅은 표시가 나타나지만, 이 표시는 화면에만 표시되며 저장 값이나 복사한 텍스트에는 포함되지 않습니다.
  • 안전한 임시 적용 및 롤백: 변경 사항은 저장 전까지 메모리에 유지되며, 다른 플러그인으로 이동하거나 페이지를 떠나도 사라지지 않습니다. 설정 창 하단의 적용 또는 확인을 누르면 편집한 모든 플러그인 설정이 한 번에 저장되고, 취소(또는 창을 닫는 동작)는 이전에 저장된 값으로 되돌립니다.

CoreExtensions 검색 유형 필터

설정 → 플러그인 → CoreExtensions → 구성 → 검색 필터에서 전체 검색 창 왼쪽에 표시되는 유형 필터를 관리할 수 있습니다. 파일과 폴더는 항상 사용할 수 있으며 문서, 이미지, 동영상 필터는 각각 비활성화할 수 있습니다.

사이드바 사용자 지정 필터 목록에서는 표시 이름, 선택적인 WPF Path Data 아이콘 및 와일드카드 규칙으로 필터를 추가할 수 있습니다. 이름이 비어 있거나 확장 후 규칙이 비어지는 항목은 숨겨지며, 아이콘을 비워 두면 기본 아이콘을 사용합니다. 이름은 표시 전용이며 @ 참조에 사용되지 않습니다. @ 참조는 규칙 필드에서만 유효하며, @키워드는 기존 사용자 지정 필터 목록의 일치하는 키워드를 확장합니다. 해당 필터가 비활성화되어 있어도 참조할 수 있습니다. 참조는 재귀적으로 확장되고 중복 패턴은 제거되며, 알 수 없거나 순환하는 참조에서는 일치 규칙이 생성되지 않습니다.

CoreExtensions 인라인 검색 창

설정 → 플러그인 → CoreExtensions → 구성 → 탐색기 인라인 창에서 인라인 창에 빠른 명령 표시를 끌 수 있습니다. 인라인 창은 플러그인 빠른 명령(예: "快捷命令" 그룹)이 파일 결과보다 앞에 나오고 기본 선택되는 유일한 곳이므로, Enter는 일치한 파일을 여는 대신 명령을 실행합니다. 끄면 인라인 검색은 파일만 대상으로 합니다. 빠른 창과 메인 창에는 영향을 주지 않습니다.

브라우저 북마크 및 방문 기록

브라우저 북마크 및 방문 기록 플러그인은 설정한 Chromium 계열 브라우저와 Firefox 프로필 폴더를 검색할 수 있습니다. 기본 트리거는 북마크가 bb, 방문 기록이 bh이며, 플러그인 설정에서 두 키워드를 변경하거나 북마크와 방문 기록 인덱싱을 각각 끌 수 있습니다.

차단 목록에는 한 줄에 하나의 문자열을 입력합니다. 북마크나 방문 기록의 제목 또는 URL에 규칙 중 하나가 포함되면 해당 항목을 숨깁니다. 대소문자를 구분하지 않는 리터럴 포함 검색이며 퍼지 매칭은 사용하지 않습니다. 규칙은 북마크와 방문 기록 모두에 적용되고 플러그인이 캐시 데이터를 다시 불러온 후 반영됩니다.

브라우저의 로컬 데이터베이스에 일치하는 웹사이트 아이콘이 있으면 플러그인이 데이터베이스를 복사하지 않고 읽기 전용으로 가져와 결과에 표시합니다. 웹사이트 아이콘을 읽을 수 없으면 설정한 브라우저 아이콘을 사용하고, 그마저 없으면 기본 북마크 또는 방문 기록 아이콘을 사용합니다.

3. Flow Launcher 커뮤니티 생태계 지원

네이티브 Lertaro.PluginSdk 플러그인뿐만 아니라, 내장된 Flow Launcher Bridge를 통해 Flow Launcher 커뮤니티 플러그인을 완벽하게 실행할 수 있습니다.

다중 언어 런타임 및 완전 격리 환경

  • 다양한 언어 호환: C# (.NET), Python 3.12, Node.js v20 LTS 및 실행 파일(.exe) 기반의 Flow 플러그인을 네이티브급으로 실행.
  • 시스템 오염 없는 독립 환경: Python(FlowData\PythonEmbeded-{arch}) 및 Node.js(FlowData\NodeEmbeded-{arch}) 런타임은 Lertaro 데이터 디렉토리에 자동 격리 배치되어 Windows 전역 PATH를 전혀 건드리지 않습니다.
  • 의존성 자동 설치: 최초 로드 시 requirements.txt(Python pip) 또는 package.json(Node.js npm)을 감지하여 필요한 패키지를 백그라운드에서 자동 설치합니다.

스토어 및 패키지 관리 명령

Lertaro 검색창에서 명령어를 입력하여 Flow 플러그인을 직접 관리할 수 있습니다:

  • flow install <키워드>: Flow.Launcher 공식 커뮤니티 리포지토리를 검색하고 원클릭으로 다운로드, 압축 해제, 의존성 설치까지 자동 완료.
  • flow update: 설치된 모든 Flow 플러그인의 업데이트를 확인하고 일괄 갱신.
  • flow uninstall <플러그인명>: 플러그인을 안전하게 제거하고 로컬 디렉토리를 정리.
  • 수동 설치: 다운로드한 폴더를 <사용자데이터>\FlowData\Plugins\에 직접 넣어도 인식됩니다.

설정, 트리거 키워드 및 리치 미리보기

  • ActionKeyword 변경: 설정 → 플러그인 → Flow Launcher Bridge → 구성에서 각 Flow 플러그인의 활성화 여부와 호출 키워드(ActionKeyword)를 개별 변경 가능(FlowData\Settings\Plugins.json에 영구 보관).
  • 동적 설정 폼: YAML/JSON 템플릿(SettingsTemplate.yaml/.json) 및 C# WPF 패널(ISettingProvider)에 완벽 대응하며 다크/라이트 테마 및 다국어 i18n을 지원.
  • WebView2 리치 미리보기: 사전(MDict), 실시간 날씨, API 디버깅, 웹 스냅샷 등 인터랙티브 미리보기를 QuickLook 패널 내에서 매끄럽게 자동 렌더링.
  • 호스트 기능과의 완벽한 통합:Flow 플러그인이 API를 통해 폴더를 열 때 호스트에 구성된 서드파티 파일 관리자를 자동으로 따르고, 메시지 상자는 호스트 테마 다이얼로그로 렌더링되며, 내부 로그는 설정 센터 로그 뷰어로 통합됩니다.
  • 목록 확인: 검색창에 flow를 입력하여 로드된 모든 Flow 플러그인과 트리거 키워드를 즉시 조회할 수 있으며, 플러그인을 선택하면 설정의 해당 구성 그룹으로 바로 이동합니다.

4. 오디오 장치 선택기

오디오 장치 선택기는 Windows 전용 네이티브 플러그인입니다. ad를 입력하면 현재 활성화된 출력 및 입력 장치가 표시되고, 장치를 선택하면 해당 기본 멀티미디어 장치로 설정됩니다. 트리거 키워드 뒤에 장치 이름을 입력하여 결과를 필터링할 수도 있습니다.

설정에서 트리거 키워드를 변경하고 결과에 표시할 이름을 친숙한 이름, 장치 이름 또는 장치 설명 중에서 선택할 수 있습니다. 기본 출력 또는 입력 엔드포인트를 변경하며 볼륨, 음소거 또는 애플리케이션별 오디오 라우팅은 제어하지 않습니다.

5. 콘텐츠 검색

콘텐츠 검색 플러그인은 설정한 로컬 문서의 본문을 검색합니다. 구성 탭에서 트리거 키워드, 모니터링 폴더, 인덱싱 확장자, 파일별 크기 제한, 인덱스 크기 제한, 전체 경로 제외 정규식을 설정할 수 있습니다. 기본 트리거는 cs이므로 cs 프로젝트 계획을 입력하면 문서 본문을 검색하고 일부 내용과 함께 일치하는 파일을 표시합니다.

설정에는 인덱스 지우기인덱스 재구축도 있습니다. 지우기는 콘텐츠 인덱스만 삭제하고, 재구축은 삭제한 뒤 모든 모니터링 폴더를 다시 스캔합니다. 두 작업 모두 Lertaro의 일반 파일 이름 인덱스는 삭제하지 않습니다.

6. 플러그인 실행 상태

설정 → 플러그인 → 실행 상태 탭에서는 Lertaro가 실행되는 동안 설치된 플러그인의 호스트 측 호출 상황을 확인할 수 있습니다. 값은 플러그인별로 집계되며 탭을 열어 둔 동안 갱신됩니다.

  • 플러그인 필터: 필터 상자에서 플러그인 이름을 퍼지 검색할 수 있습니다.
  • 정렬 가능한 열: 열 머리글을 클릭하면 오름차순, 내림차순, 기본 플러그인 순서로 차례로 전환됩니다.
  • 제공 지표: 호출 횟수, 평균 소요 시간, 최근 소요 시간, 최대 소요 시간, 관리 메모리 할당량 및 관찰된 예외 수입니다.
  • 세션 범위: 통계는 현재 Lertaro 프로세스가 실행되는 동안 누적되며 재시작하면 초기화됩니다. 0은 해당 측정 호출이 아직 기록되지 않았다는 뜻입니다. 관리 메모리 할당량은 측정된 호출이 할당한 메모리이며 플러그인의 전체 전용 메모리 사용량을 의미하지 않습니다.