mirror of
https://github.com/alexpasmantier/television.git
synced 2025-07-29 06:11:37 +00:00
1 line
66 KiB
JavaScript
1 line
66 KiB
JavaScript
"use strict";(self.webpackChunktelevision_website=self.webpackChunktelevision_website||[]).push([[9090],{5404:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>t});var i=s(6672);const r={},l=i.createContext(r);function d(e){const n=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),i.createElement(l.Provider,{value:n},e.children)}},9842:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>t,default:()=>a,frontMatter:()=>d,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"Users/cli","title":"CLI Reference","description":"Television (tv) is a cross-platform, fast and extensible general purpose fuzzy finder TUI. This document provides a comprehensive reference for all CLI options, modes, restrictions, and usage patterns.","source":"@site/../docs/01-Users/09-cli.md","sourceDirName":"01-Users","slug":"/Users/cli","permalink":"/television/docs/Users/cli","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":9,"frontMatter":{},"sidebar":"docSidebar","previous":{"title":"Themes","permalink":"/television/docs/Users/themes"},"next":{"title":"\ud83c\udf7f Community Channels (unix)","permalink":"/television/docs/Users/community-channels-unix"}}');var r=s(3420),l=s(5404);const d={},t="CLI Reference",o={},c=[{value:"Table of Contents",id:"table-of-contents",level:2},{value:"Overview",id:"overview",level:2},{value:"Operating Modes",id:"operating-modes",level:2},{value:"Channel Mode",id:"channel-mode",level:3},{value:"Ad-hoc Mode",id:"ad-hoc-mode",level:3},{value:"Basic Usage",id:"basic-usage",level:2},{value:"Arguments",id:"arguments",level:3},{value:"Position 1: <code>[CHANNEL]</code>",id:"position-1-channel",level:4},{value:"Position 2: <code>[PATH]</code>",id:"position-2-path",level:4},{value:"\u26a1 Smart Path Detection Logic",id:"-smart-path-detection-logic",level:4},{value:"Options",id:"options",level:2},{value:"\ud83c\udfaf Source and Data Options",id:"-source-and-data-options",level:3},{value:"<code>--source-command <STRING></code>",id:"--source-command-string",level:4},{value:"<code>--source-display <STRING></code>",id:"--source-display-string",level:4},{value:"<code>--source-output <STRING></code>",id:"--source-output-string",level:4},{value:"\ud83d\udc41\ufe0f Preview Options",id:"\ufe0f-preview-options",level:3},{value:"<code>--no-preview</code>",id:"--no-preview",level:4},{value:"<code>--hide-preview</code>",id:"--hide-preview",level:4},{value:"<code>--show-preview</code>",id:"--show-preview",level:4},{value:"<code>-p, --preview-command <STRING></code>",id:"-p---preview-command-string",level:4},{value:"<code>--preview-header <STRING></code>",id:"--preview-header-string",level:4},{value:"<code>--preview-footer <STRING></code>",id:"--preview-footer-string",level:4},{value:"<code>--preview-offset <STRING></code>",id:"--preview-offset-string",level:4},{value:"<code>--preview-size <INTEGER></code>",id:"--preview-size-integer",level:4},{value:"\u2139\ufe0f Status Bar Options",id:"\u2139\ufe0f-status-bar-options",level:3},{value:"<code>--no-status-bar</code>",id:"--no-status-bar",level:4},{value:"<code>--hide-status-bar</code>",id:"--hide-status-bar",level:4},{value:"<code>--show-status-bar</code>",id:"--show-status-bar",level:4},{value:"\ud83d\udce1 Remote Control Options",id:"-remote-control-options",level:3},{value:"<code>--no-remote</code>",id:"--no-remote",level:4},{value:"<code>--hide-remote</code>",id:"--hide-remote",level:4},{value:"<code>--show-remote</code>",id:"--show-remote",level:4},{value:"\u2753 Help Panel Options",id:"-help-panel-options",level:3},{value:"<code>--no-help-panel</code>",id:"--no-help-panel",level:4},{value:"<code>--hide-help-panel</code>",id:"--hide-help-panel",level:4},{value:"<code>--show-help-panel</code>",id:"--show-help-panel",level:4},{value:"\ud83c\udfa8 Interface and Layout Options",id:"-interface-and-layout-options",level:3},{value:"<code>--layout <LAYOUT></code>",id:"--layout-layout",level:4},{value:"<code>--input-header <STRING></code>",id:"--input-header-string",level:4},{value:"<code>--ui-scale <INTEGER></code>",id:"--ui-scale-integer",level:4},{value:"<code>--height <INTEGER></code>",id:"--height-integer",level:4},{value:"<code>--width <INTEGER></code>",id:"--width-integer",level:4},{value:"<code>--inline</code>",id:"--inline",level:4},{value:"\u2328\ufe0f Input and Interaction Options",id:"\ufe0f-input-and-interaction-options",level:3},{value:"<code>-i, --input <STRING></code>",id:"-i---input-string",level:4},{value:"<code>-k, --keybindings <STRING></code>",id:"-k---keybindings-string",level:4},{value:"<code>--exact</code>",id:"--exact",level:4},{value:"\u26a1 Selection Behavior Options",id:"-selection-behavior-options",level:3},{value:"<code>--select-1</code>",id:"--select-1",level:4},{value:"<code>--take-1</code>",id:"--take-1",level:4},{value:"<code>--take-1-fast</code>",id:"--take-1-fast",level:4},{value:"\u2699\ufe0f Performance and Monitoring Options",id:"\ufe0f-performance-and-monitoring-options",level:3},{value:"<code>-t, --tick-rate <FLOAT></code>",id:"-t---tick-rate-float",level:4},{value:"<code>--watch <FLOAT></code>",id:"--watch-float",level:4},{value:"\ud83d\udcc1 Directory and Configuration Options",id:"-directory-and-configuration-options",level:3},{value:"<code>[PATH]</code> (Positional Argument 2)",id:"path-positional-argument-2",level:4},{value:"<code>--config-file <PATH></code>",id:"--config-file-path",level:4},{value:"<code>--cable-dir <PATH></code>",id:"--cable-dir-path",level:4},{value:"\ud83d\udcda History Options",id:"-history-options",level:3},{value:"<code>--global-history</code>",id:"--global-history",level:4},{value:"\ud83d\udd27 Special Mode Options",id:"-special-mode-options",level:3},{value:"<code>--autocomplete-prompt <STRING></code>",id:"--autocomplete-prompt-string",level:4},{value:"Subcommands",id:"subcommands",level:2},{value:"<code>list-channels</code>",id:"list-channels",level:3},{value:"<code>init <SHELL></code>",id:"init-shell",level:3},{value:"<code>update-channels</code>",id:"update-channels",level:3},{value:"Usage Rules and Restrictions",id:"usage-rules-and-restrictions",level:2},{value:"\ud83c\udfaf Ad-hoc Mode Requirements",id:"-ad-hoc-mode-requirements",level:3},{value:"\ud83d\udeab Mutually Exclusive Options",id:"-mutually-exclusive-options",level:3},{value:"\u2705 Channel Mode Benefits",id:"-channel-mode-benefits",level:3},{value:"Configuration",id:"configuration",level:2},{value:"\u26a1 Configuration Priority",id:"-configuration-priority",level:3},{value:"\ud83d\udcc1 Configuration Locations",id:"-configuration-locations",level:3},{value:"User Configuration File",id:"user-configuration-file",level:4},{value:"Channel Definitions (Cable Directory)",id:"channel-definitions-cable-directory",level:4},{value:"\ud83c\udf9b\ufe0f Feature Configuration",id:"\ufe0f-feature-configuration",level:3},{value:"Quick Feature Overview",id:"quick-feature-overview",level:4},{value:"CLI Feature Override Examples",id:"cli-feature-override-examples",level:4},{value:"Template System",id:"template-system",level:2},{value:"Template-Enabled Flags",id:"template-enabled-flags",level:3},{value:"Basic Template Syntax",id:"basic-template-syntax",level:3},{value:"Core Template Operations",id:"core-template-operations",level:3},{value:"Advanced Template Operations",id:"advanced-template-operations",level:3},{value:"Template Examples",id:"template-examples",level:3},{value:"Range Specifications",id:"range-specifications",level:3},{value:"Examples",id:"examples",level:2},{value:"\ud83c\udfaf Quick Start Examples",id:"-quick-start-examples",level:3},{value:"Channel Mode (Recommended)",id:"channel-mode-recommended",level:4},{value:"Ad-hoc Mode (Custom Commands)",id:"ad-hoc-mode-custom-commands",level:4}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"cli-reference",children:"CLI Reference"})}),"\n",(0,r.jsxs)(n.p,{children:["Television (",(0,r.jsx)(n.code,{children:"tv"}),") is a cross-platform, fast and extensible general purpose fuzzy finder TUI. This document provides a comprehensive reference for all CLI options, modes, restrictions, and usage patterns."]}),"\n",(0,r.jsx)(n.h2,{id:"table-of-contents",children:"Table of Contents"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"#overview",children:"Overview"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"#operating-modes",children:"Operating Modes"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"#basic-usage",children:"Basic Usage"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"#arguments",children:"Arguments"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"#options",children:"Options"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"#subcommands",children:"Subcommands"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"#usage-rules-and-restrictions",children:"Usage Rules and Restrictions"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"#configuration",children:"Configuration"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"#template-system",children:"Template System"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"#examples",children:"Examples"})}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,r.jsx)(n.p,{children:"Television supports two primary operating modes that determine how CLI flags are interpreted and validated:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Channel Mode"}),": When a channel is specified, the application uses the channel's configuration as a base and CLI flags act as overrides"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Ad-hoc Mode"}),": When no channel is specified, the application creates a custom channel from CLI flags with stricter validation"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"operating-modes",children:"Operating Modes"}),"\n",(0,r.jsx)(n.h3,{id:"channel-mode",children:"Channel Mode"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Activated when"}),": A channel name is provided as the first argument or via ",(0,r.jsx)(n.code,{children:"--autocomplete-prompt"})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Behavior"}),":"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Channel provides base configuration (source commands, preview commands, UI settings)"}),"\n",(0,r.jsxs)(n.li,{children:["CLI flags act as ",(0,r.jsx)(n.strong,{children:"overrides"})," to channel defaults"]}),"\n",(0,r.jsx)(n.li,{children:"More permissive validation - allows most combination of flags"}),"\n",(0,r.jsx)(n.li,{children:"Minimal dependency checking since channel provides sensible defaults"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Example"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"tv files --preview-command \"bat -n --color=always '{}'\"\n"})}),"\n",(0,r.jsx)(n.h3,{id:"ad-hoc-mode",children:"Ad-hoc Mode"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Activated when"}),": No channel is specified and no ",(0,r.jsx)(n.code,{children:"--autocomplete-prompt"})," is used"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Behavior"}),":"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Creates a custom channel on-the-fly from CLI flags"}),"\n",(0,r.jsxs)(n.li,{children:["Requires ",(0,r.jsx)(n.code,{children:"--source-command"})," to generate any entries"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Stricter validation"})," ensures necessary components are present"]}),"\n",(0,r.jsx)(n.li,{children:"All functionality depends on explicitly provided flags"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Example"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"tv --source-command \"find . -name '*.rs'\" --preview-command \"bat -n --color=always '{}'\"\n"})}),"\n",(0,r.jsx)(n.h2,{id:"basic-usage",children:"Basic Usage"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"tv [OPTIONS] [CHANNEL] [PATH]\n"})}),"\n",(0,r.jsx)(n.h3,{id:"arguments",children:"Arguments"}),"\n",(0,r.jsx)(n.p,{children:"Television has intelligent positional argument handling with special path detection logic."}),"\n",(0,r.jsxs)(n.h4,{id:"position-1-channel",children:["Position 1: ",(0,r.jsx)(n.code,{children:"[CHANNEL]"})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Channel name to activate Channel Mode"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Standard behavior"}),": When a valid channel name is provided, activates Channel Mode"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Special path detection"}),": If the argument exists as a path on the filesystem, it's automatically treated as a working directory instead"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Effect when path detected"}),": Switches to Ad-hoc Mode and uses the path as the working directory"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Required"}),": No (falls back to ",(0,r.jsx)(n.code,{children:"default_channel"})," from the global config)"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Examples"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"tv files # Uses 'files' channel\ntv /home/user/docs # Auto-detects path, uses as working directory\ntv ./projects # Auto-detects relative path\n"})}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.h4,{id:"position-2-path",children:["Position 2: ",(0,r.jsx)(n.code,{children:"[PATH]"})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Working directory to start in"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Behavior"}),": Sets the working directory for the application"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Required"}),": No"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Precedence"}),": Only used if Position 1 was not detected as a path"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Default"}),": Current directory"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:"tv files /home/user/projects"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"-smart-path-detection-logic",children:"\u26a1 Smart Path Detection Logic"}),"\n",(0,r.jsx)(n.p,{children:"Television automatically detects when the first argument is a filesystem path:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Path Check"}),": If Position 1 exists as a file or directory on the filesystem"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Mode Switch"}),": Automatically switches to Ad-hoc Mode (no channel)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Directory Assignment"}),": Uses the detected path as the working directory"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Requirement"}),": When this happens, ",(0,r.jsx)(n.code,{children:"--source-command"})," becomes required (Ad-hoc Mode rules apply)"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Examples of Smart Detection"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"# No arguments - uses default_channel from config\ntv\n\n# Channel name provided - Channel Mode\ntv files\n\n# Existing path provided - triggers path detection \u2192 uses default_channel\ntv /home/user/docs # Uses default_channel in /home/user/docs directory\n\n# Non-existent path - treated as channel name \u2192 error if channel doesn't exist\ntv /nonexistent/path # Error: Channel not found\n\n# Channel + explicit working directory - Channel Mode\ntv files /home/user/docs\n\n# The key nuance: same name, different behavior based on filesystem\ntv myproject # Channel Mode (if 'myproject' is a channel name)\ntv ./myproject # Channel Mode with default_channel (if './myproject' directory exists)\n\n# Ambiguous case - path detection takes precedence\ntv docs # If 'docs' directory exists \u2192 default_channel + path detection\n # If 'docs' directory doesn't exist \u2192 'docs' channel\n"})}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\ud83d\udca1 Tip"}),": This smart detection makes Television intuitive - you can just specify a directory and it automatically knows you want to work in that location."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,r.jsx)(n.p,{children:"Television's options are organized by functionality. Each option behaves differently depending on whether you're using Channel Mode (with a channel specified) or Ad-hoc Mode (no channel)."}),"\n",(0,r.jsx)(n.h3,{id:"-source-and-data-options",children:"\ud83c\udfaf Source and Data Options"}),"\n",(0,r.jsx)(n.h4,{id:"--source-command-string",children:(0,r.jsx)(n.code,{children:"--source-command <STRING>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Defines the command that generates entries for the picker"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Channel Mode"}),": Overrides the channel's default source command"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Ad-hoc Mode"}),": \u26a0\ufe0f ",(0,r.jsx)(n.strong,{children:"Required"})," - without this, no entries will be generated"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:"--source-command \"find . -name '*.py'\""})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--source-display-string",children:(0,r.jsx)(n.code,{children:"--source-display <STRING>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Template for formatting how entries appear in the results list"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Requires"}),": ",(0,r.jsx)(n.code,{children:"--source-command"})," (in ad-hoc mode)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:'--source-display "{split:/:-1} ({split:/:0..-1|join:-})"'})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--source-output-string",children:(0,r.jsx)(n.code,{children:"--source-output <STRING>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Template for formatting the final output when an entry is selected"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Requires"}),": ",(0,r.jsx)(n.code,{children:"--source-command"})," (in ad-hoc mode)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:'--source-output "code {}"'})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-preview-options",children:"\ud83d\udc41\ufe0f Preview Options"}),"\n",(0,r.jsx)(n.h4,{id:"--no-preview",children:(0,r.jsx)(n.code,{children:"--no-preview"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Disable preview feature, toggling is not possible"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with any ",(0,r.jsx)(n.code,{children:"--preview-*"})," or ",(0,r.jsx)(n.code,{children:"--*-preview"})," flags"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Minimal interface"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--hide-preview",children:(0,r.jsx)(n.code,{children:"--hide-preview"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Starts the interface with the preview panel hidden"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-preview"})," or ",(0,r.jsx)(n.code,{children:"--show-preview"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Start with clean interface, toggle preview later"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--show-preview",children:(0,r.jsx)(n.code,{children:"--show-preview"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Starts the interface with the preview panel visible"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-preview"})," or ",(0,r.jsx)(n.code,{children:"--hide-preview"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Ensure preview is always available"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"-p---preview-command-string",children:(0,r.jsx)(n.code,{children:"-p, --preview-command <STRING>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Command to generate preview content for the selected entry"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Requires"}),": ",(0,r.jsx)(n.code,{children:"--source-command"})," (in ad-hoc mode)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-preview"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:"--preview-command \"bat -n --color=always '{}'\""})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--preview-header-string",children:(0,r.jsx)(n.code,{children:"--preview-header <STRING>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Template for text displayed above the preview panel"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Requires"}),": ",(0,r.jsx)(n.code,{children:"--preview-command"})," (in ad-hoc mode)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-preview"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:'--preview-header "File: {split:/:-1|upper}"'})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--preview-footer-string",children:(0,r.jsx)(n.code,{children:"--preview-footer <STRING>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Template for text displayed below the preview panel"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Requires"}),": ",(0,r.jsx)(n.code,{children:"--preview-command"})," (in ad-hoc mode)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-preview"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--preview-offset-string",children:(0,r.jsx)(n.code,{children:"--preview-offset <STRING>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Template that determines the scroll position in the preview"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Requires"}),": ",(0,r.jsx)(n.code,{children:"--preview-command"})," (in ad-hoc mode)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-preview"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:'--preview-offset "10"'})," (start at line 10)"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--preview-size-integer",children:(0,r.jsx)(n.code,{children:"--preview-size <INTEGER>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Width of the preview panel as a percentage"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Default"}),": 50% of screen width"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Range"}),": 1-99"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-preview"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u2139\ufe0f-status-bar-options",children:"\u2139\ufe0f Status Bar Options"}),"\n",(0,r.jsx)(n.h4,{id:"--no-status-bar",children:(0,r.jsx)(n.code,{children:"--no-status-bar"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Disable status bar feature, toggling is not possible"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--hide-status-bar"})," or ",(0,r.jsx)(n.code,{children:"--show-status-bar"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Minimal interface"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--hide-status-bar",children:(0,r.jsx)(n.code,{children:"--hide-status-bar"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Starts the interface with the status bar hidden"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-status-bar"})," or ",(0,r.jsx)(n.code,{children:"--show-status-bar"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Clean interface with option to show status later"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--show-status-bar",children:(0,r.jsx)(n.code,{children:"--show-status-bar"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Starts the interface with the status bar visible"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-status-bar"})," or ",(0,r.jsx)(n.code,{children:"--hide-status-bar"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Ensure status information is always available"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-remote-control-options",children:"\ud83d\udce1 Remote Control Options"}),"\n",(0,r.jsx)(n.h4,{id:"--no-remote",children:(0,r.jsx)(n.code,{children:"--no-remote"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Disable remote control feature, toggling is not possible"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--hide-remote"})," or ",(0,r.jsx)(n.code,{children:"--show-remote"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Single-channel mode, embedded usage"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--hide-remote",children:(0,r.jsx)(n.code,{children:"--hide-remote"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Starts the interface with the remote control hidden"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-remote"})," or ",(0,r.jsx)(n.code,{children:"--show-remote"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Start in single-channel mode, access remote later"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--show-remote",children:(0,r.jsx)(n.code,{children:"--show-remote"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Starts the interface with the remote control visible"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-remote"})," or ",(0,r.jsx)(n.code,{children:"--hide-remote"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Ensure channel switching is always available"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-help-panel-options",children:"\u2753 Help Panel Options"}),"\n",(0,r.jsx)(n.h4,{id:"--no-help-panel",children:(0,r.jsx)(n.code,{children:"--no-help-panel"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Disable help panel feature, toggling is not possible"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--hide-help-panel"})," or ",(0,r.jsx)(n.code,{children:"--show-help-panel"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Minimal interface"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--hide-help-panel",children:(0,r.jsx)(n.code,{children:"--hide-help-panel"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Starts the interface with the help panel hidden"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-help-panel"})," or ",(0,r.jsx)(n.code,{children:"--show-help-panel"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Clean interface with option to show help later"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--show-help-panel",children:(0,r.jsx)(n.code,{children:"--show-help-panel"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Starts the interface with the help panel visible"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--no-help-panel"})," or ",(0,r.jsx)(n.code,{children:"--hide-help-panel"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Ensure help information is always available"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-interface-and-layout-options",children:"\ud83c\udfa8 Interface and Layout Options"}),"\n",(0,r.jsx)(n.h4,{id:"--layout-layout",children:(0,r.jsx)(n.code,{children:"--layout <LAYOUT>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Controls the overall interface orientation"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Values"}),": ",(0,r.jsx)(n.code,{children:"landscape"})," (side-by-side), ",(0,r.jsx)(n.code,{children:"portrait"})," (stacked)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Default"}),": ",(0,r.jsx)(n.code,{children:"landscape"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--input-header-string",children:(0,r.jsx)(n.code,{children:"--input-header <STRING>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Template for text displayed above the input field"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Default"}),": Channel name (channel mode) or empty (ad-hoc mode)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:'--input-header "Search files:"'})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--ui-scale-integer",children:(0,r.jsx)(n.code,{children:"--ui-scale <INTEGER>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Scales the entire interface size"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Default"}),": 100%"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Range"}),": 10-100%"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Adapt to different screen sizes or preferences"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--height-integer",children:(0,r.jsx)(n.code,{children:"--height <INTEGER>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Sets a fixed height for non-fullscreen mode"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Range"}),": 6 or higher (minimum UI height required)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--inline"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Precise control over interface height"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--width-integer",children:(0,r.jsx)(n.code,{children:"--width <INTEGER>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Sets a fixed width for non-fullscreen mode"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Range"}),": 10 or higher (minimum UI width required)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Requires"}),": Must be used with ",(0,r.jsx)(n.code,{children:"--inline"})," or ",(0,r.jsx)(n.code,{children:"--height"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Precise control over interface width"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--inline",children:(0,r.jsx)(n.code,{children:"--inline"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Uses all available empty space at the bottom of the terminal"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Behavior"}),": Automatically uses all available space below the cursor,\nminimum height is ensured (set by default at 15 lines)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"--height"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Use of all available space without entering fullscreen mode"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-input-and-interaction-options",children:"\u2328\ufe0f Input and Interaction Options"}),"\n",(0,r.jsx)(n.h4,{id:"-i---input-string",children:(0,r.jsx)(n.code,{children:"-i, --input <STRING>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Pre-fills the input prompt with specified text"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Continue a previous search or provide default query"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:'-i "main.py"'})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"-k---keybindings-string",children:(0,r.jsx)(n.code,{children:"-k, --keybindings <STRING>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Overrides default keyboard shortcuts"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Format"}),": ",(0,r.jsx)(n.code,{children:'action1=["key1","key2"];action2=["key3"]'})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:'-k \'quit=["q","esc"];select=["enter","space"]\''})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--exact",children:(0,r.jsx)(n.code,{children:"--exact"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Changes matching behavior from fuzzy to exact substring matching"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Default"}),": Fuzzy matching"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": When you need precise substring matches"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-selection-behavior-options",children:"\u26a1 Selection Behavior Options"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Note"}),": These options are mutually exclusive - only one can be used at a time."]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--select-1",children:(0,r.jsx)(n.code,{children:"--select-1"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Automatically selects and returns the entry if only one is found"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Scripting scenarios where single results should be auto-selected"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--take-1",children:(0,r.jsx)(n.code,{children:"--take-1"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Takes the first entry after loading completes"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Scripts that always want the first/best result"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--take-1-fast",children:(0,r.jsx)(n.code,{children:"--take-1-fast"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Takes the first entry immediately as it appears"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Maximum speed scripts that don't care about all options"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-performance-and-monitoring-options",children:"\u2699\ufe0f Performance and Monitoring Options"}),"\n",(0,r.jsx)(n.h4,{id:"-t---tick-rate-float",children:(0,r.jsx)(n.code,{children:"-t, --tick-rate <FLOAT>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Controls how frequently the interface updates (times per second)"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Default"}),": Auto-calculated based on system performance"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Validation"}),": Must be positive number"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:"--tick-rate 30"})," (30 updates per second)"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--watch-float",children:(0,r.jsx)(n.code,{children:"--watch <FLOAT>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Automatically re-runs the source command at regular intervals"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Default"}),": 0 (disabled)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Units"}),": Seconds between updates"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with selection options (",(0,r.jsx)(n.code,{children:"--select-1"}),", ",(0,r.jsx)(n.code,{children:"--take-1"}),", ",(0,r.jsx)(n.code,{children:"--take-1-fast"}),")"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:"--watch 2.0"})," (update every 2 seconds)"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-directory-and-configuration-options",children:"\ud83d\udcc1 Directory and Configuration Options"}),"\n",(0,r.jsxs)(n.h4,{id:"path-positional-argument-2",children:[(0,r.jsx)(n.code,{children:"[PATH]"})," (Positional Argument 2)"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Sets the working directory for the command"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Default"}),": Current directory"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:"tv files /home/user/projects"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--config-file-path",children:(0,r.jsx)(n.code,{children:"--config-file <PATH>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Uses a custom configuration file instead of the default"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Default"}),": ",(0,r.jsx)(n.code,{children:"~/.config/tv/config.toml"})," (Linux/macOS) or ",(0,r.jsx)(n.code,{children:"%APPDATA%\\tv\\config.toml"})," (Windows)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Multiple configurations for different workflows"]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"--cable-dir-path",children:(0,r.jsx)(n.code,{children:"--cable-dir <PATH>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Uses a custom directory for channel definitions"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Default"}),": ",(0,r.jsx)(n.code,{children:"~/.config/tv/cable/"})," (Linux/macOS) or ",(0,r.jsx)(n.code,{children:"%APPDATA%\\tv\\cable\\"})," (Windows)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Custom channel collections or shared team channels"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-history-options",children:"\ud83d\udcda History Options"}),"\n",(0,r.jsx)(n.h4,{id:"--global-history",children:(0,r.jsx)(n.code,{children:"--global-history"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": Enables global history for the current session"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Both Modes"}),": Same behavior"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Default"}),": Channel-specific history (scoped to current channel)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Cross-channel workflow when you want to see all recent searches"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:"tv files --global-history"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-special-mode-options",children:"\ud83d\udd27 Special Mode Options"}),"\n",(0,r.jsx)(n.h4,{id:"--autocomplete-prompt-string",children:(0,r.jsx)(n.code,{children:"--autocomplete-prompt <STRING>"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Purpose"}),": \u26a1 ",(0,r.jsx)(n.strong,{children:"Activates Channel Mode"})," - Auto-detects channel from shell command"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Effect"}),": Switches to Channel Mode automatically"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Behavior"}),": Analyzes the provided command to determine appropriate channel"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Conflicts"}),": Cannot be used with ",(0,r.jsx)(n.code,{children:"[CHANNEL]"})," positional argument"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Use Case"}),": Shell integration and smart channel detection"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Example"}),": ",(0,r.jsx)(n.code,{children:'--autocomplete-prompt "git log --oneline"'})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"subcommands",children:"Subcommands"}),"\n",(0,r.jsx)(n.h3,{id:"list-channels",children:(0,r.jsx)(n.code,{children:"list-channels"})}),"\n",(0,r.jsx)(n.p,{children:"Lists all available channels in the cable directory."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"tv list-channels\n"})}),"\n",(0,r.jsx)(n.h3,{id:"init-shell",children:(0,r.jsx)(n.code,{children:"init <SHELL>"})}),"\n",(0,r.jsx)(n.p,{children:"Generates shell completion script for the specified shell."}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Supported shells"}),": ",(0,r.jsx)(n.code,{children:"bash"}),", ",(0,r.jsx)(n.code,{children:"zsh"}),", ",(0,r.jsx)(n.code,{children:"fish"}),", ",(0,r.jsx)(n.code,{children:"powershell"}),", ",(0,r.jsx)(n.code,{children:"cmd"})]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"tv init zsh > ~/.zshrc.d/tv-completion.zsh\n"})}),"\n",(0,r.jsx)(n.h3,{id:"update-channels",children:(0,r.jsx)(n.code,{children:"update-channels"})}),"\n",(0,r.jsx)(n.p,{children:"Downloads the latest channel prototypes from GitHub."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"tv update-channels\n"})}),"\n",(0,r.jsx)(n.h2,{id:"usage-rules-and-restrictions",children:"Usage Rules and Restrictions"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Note"}),": Detailed requirements and conflicts for each flag are covered in the ",(0,r.jsx)(n.a,{href:"#options",children:"Options"})," section above. This section provides a high-level overview of the key rules."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-ad-hoc-mode-requirements",children:"\ud83c\udfaf Ad-hoc Mode Requirements"}),"\n",(0,r.jsx)(n.p,{children:"When using Television without a channel, certain flags become mandatory:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsxs)(n.strong,{children:[(0,r.jsx)(n.code,{children:"--source-command"})," is required"]})," - without this, no entries will be generated"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Preview dependencies"})," - all ",(0,r.jsx)(n.code,{children:"--preview-*"})," flags require ",(0,r.jsx)(n.code,{children:"--preview-command"})," to be functional"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Source formatting dependencies"})," - ",(0,r.jsx)(n.code,{children:"--source-display"})," and ",(0,r.jsx)(n.code,{children:"--source-output"})," require ",(0,r.jsx)(n.code,{children:"--source-command"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-mutually-exclusive-options",children:"\ud83d\udeab Mutually Exclusive Options"}),"\n",(0,r.jsx)(n.p,{children:"These option groups cannot be used together:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Selection behavior"}),": Only one of ",(0,r.jsx)(n.code,{children:"--select-1"}),", ",(0,r.jsx)(n.code,{children:"--take-1"}),", or ",(0,r.jsx)(n.code,{children:"--take-1-fast"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Preview control"}),": ",(0,r.jsx)(n.code,{children:"--no-preview"})," conflicts with all ",(0,r.jsx)(n.code,{children:"--preview-*"})," flags and ",(0,r.jsx)(n.code,{children:"--hide-preview"}),"/",(0,r.jsx)(n.code,{children:"--show-preview"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Preview visibility"}),": Only one of ",(0,r.jsx)(n.code,{children:"--no-preview"}),", ",(0,r.jsx)(n.code,{children:"--hide-preview"}),", or ",(0,r.jsx)(n.code,{children:"--show-preview"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Status bar control"}),": Only one of ",(0,r.jsx)(n.code,{children:"--no-status-bar"}),", ",(0,r.jsx)(n.code,{children:"--hide-status-bar"}),", or ",(0,r.jsx)(n.code,{children:"--show-status-bar"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Remote control"}),": Only one of ",(0,r.jsx)(n.code,{children:"--no-remote"}),", ",(0,r.jsx)(n.code,{children:"--hide-remote"}),", or ",(0,r.jsx)(n.code,{children:"--show-remote"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Help panel control"}),": Only one of ",(0,r.jsx)(n.code,{children:"--no-help-panel"}),", ",(0,r.jsx)(n.code,{children:"--hide-help-panel"}),", or ",(0,r.jsx)(n.code,{children:"--show-help-panel"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Channel selection"}),": Cannot use both ",(0,r.jsx)(n.code,{children:"[CHANNEL]"})," argument and ",(0,r.jsx)(n.code,{children:"--autocomplete-prompt"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Watch vs selection"}),": ",(0,r.jsx)(n.code,{children:"--watch"})," cannot be used with auto-selection flags"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-channel-mode-benefits",children:"\u2705 Channel Mode Benefits"}),"\n",(0,r.jsx)(n.p,{children:"Channels provide sensible defaults, making the tool more flexible:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Preview and source flags work independently (channel provides missing pieces)"}),"\n",(0,r.jsx)(n.li,{children:"All UI options have reasonable defaults"}),"\n",(0,r.jsx)(n.li,{children:"Less strict validation since channels fill in the gaps"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,r.jsx)(n.h3,{id:"-configuration-priority",children:"\u26a1 Configuration Priority"}),"\n",(0,r.jsx)(n.p,{children:"Television uses a layered configuration system where each layer can override the previous:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"CLI flags"})," - Highest priority, overrides everything"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Channel configuration"})," - Channel-specific settings"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"User config file"})," - Personal preferences"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Built-in defaults"})," - Fallback values"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-configuration-locations",children:"\ud83d\udcc1 Configuration Locations"}),"\n",(0,r.jsx)(n.h4,{id:"user-configuration-file",children:"User Configuration File"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Linux/macOS"}),": ",(0,r.jsx)(n.code,{children:"~/.config/tv/config.toml"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Windows"}),": ",(0,r.jsx)(n.code,{children:"%APPDATA%\\tv\\config.toml"})]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"channel-definitions-cable-directory",children:"Channel Definitions (Cable Directory)"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Linux/macOS"}),": ",(0,r.jsx)(n.code,{children:"~/.config/tv/cable/"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Windows"}),": ",(0,r.jsx)(n.code,{children:"%APPDATA%\\tv\\cable\\"})]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Tip"}),": Use ",(0,r.jsx)(n.code,{children:"--config-file"})," and ",(0,r.jsx)(n.code,{children:"--cable-dir"})," flags to override these default locations"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-feature-configuration",children:"\ud83c\udf9b\ufe0f Feature Configuration"}),"\n",(0,r.jsxs)(n.p,{children:["Television features support dual-state control: ",(0,r.jsx)(n.strong,{children:"enabled/disabled"})," and ",(0,r.jsx)(n.strong,{children:"visible/not visible"}),"."]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\ud83d\udcd6 For more details on the ui feature documentation"}),", see ",(0,r.jsx)(n.a,{href:"/television/docs/Developers/ui-features",children:(0,r.jsx)(n.code,{children:"ui-features.md"})}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"quick-feature-overview",children:"Quick Feature Overview"}),"\n",(0,r.jsx)(n.p,{children:"Television supports four main UI features:"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Feature"}),(0,r.jsx)(n.th,{children:"Purpose"}),(0,r.jsx)(n.th,{children:"Default State"}),(0,r.jsx)(n.th,{children:"CLI Controls"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Preview Panel"})}),(0,r.jsx)(n.td,{children:"Shows contextual information for selected entries"}),(0,r.jsx)(n.td,{children:"Enabled & Visible"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"--no-preview"}),", ",(0,r.jsx)(n.code,{children:"--hide-preview"}),", ",(0,r.jsx)(n.code,{children:"--show-preview"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Status Bar"})}),(0,r.jsx)(n.td,{children:"Displays application status and available actions"}),(0,r.jsx)(n.td,{children:"Enabled & Visible"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"--no-status-bar"}),", ",(0,r.jsx)(n.code,{children:"--hide-status-bar"}),", ",(0,r.jsx)(n.code,{children:"--show-status-bar"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Help Panel"})}),(0,r.jsx)(n.td,{children:"Shows contextual help and keyboard shortcuts"}),(0,r.jsx)(n.td,{children:"Enabled but Hidden"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"--no-help-panel"}),", ",(0,r.jsx)(n.code,{children:"--hide-help-panel"}),", ",(0,r.jsx)(n.code,{children:"--show-help-panel"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Remote Control"})}),(0,r.jsx)(n.td,{children:"Provides channel switching interface"}),(0,r.jsx)(n.td,{children:"Enabled but Hidden"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"--no-remote"}),", ",(0,r.jsx)(n.code,{children:"--hide-remote"}),", ",(0,r.jsx)(n.code,{children:"--show-remote"})]})]})]})]}),"\n",(0,r.jsx)(n.h4,{id:"cli-feature-override-examples",children:"CLI Feature Override Examples"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"# Control visibility while keeping functionality\ntv files --hide-preview --show-status-bar\n\n# Force features on\ntv files --show-preview --show-remote\n\n# Disable completely\ntv files --no-preview --no-remote\n\n# Mixed control\ntv files --hide-status-bar --show-remote\n"})}),"\n",(0,r.jsx)(n.h2,{id:"template-system",children:"Template System"}),"\n",(0,r.jsxs)(n.p,{children:["Television uses a powerful template system for dynamic content generation. Templates are enclosed in curly braces ",(0,r.jsx)(n.code,{children:"{}"})," and support complex operations."]}),"\n",(0,r.jsx)(n.h3,{id:"template-enabled-flags",children:"Template-Enabled Flags"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Flag Category"}),(0,r.jsx)(n.th,{children:"Flags Using Templates"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Source"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"--source-command"}),", ",(0,r.jsx)(n.code,{children:"--source-display"}),", ",(0,r.jsx)(n.code,{children:"--source-output"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Preview"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"--preview-command"}),", ",(0,r.jsx)(n.code,{children:"--preview-offset"})]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"Headers"})}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"--input-header"}),", ",(0,r.jsx)(n.code,{children:"--preview-header"}),", ",(0,r.jsx)(n.code,{children:"--preview-footer"})]})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"basic-template-syntax",children:"Basic Template Syntax"}),"\n",(0,r.jsx)(n.p,{children:"Templates support a wide range of operations that can be chained together:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-text",children:"{operation1|operation2|operation3}\n"})}),"\n",(0,r.jsx)(n.h3,{id:"core-template-operations",children:"Core Template Operations"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Operation"}),(0,r.jsx)(n.th,{children:"Description"}),(0,r.jsx)(n.th,{children:"Example"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{}"})}),(0,r.jsx)(n.td,{children:"Full entry (passthrough)"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"{}"})," \u2192 original entry"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{split:SEPARATOR:RANGE}"})}),(0,r.jsx)(n.td,{children:"Split text and extract parts"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"{split:/:\u20111}"})," \u2192 last path component"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{upper}"})}),(0,r.jsx)(n.td,{children:"Convert to uppercase"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"{upper}"}),' \u2192 "HELLO"']})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{lower}"})}),(0,r.jsx)(n.td,{children:"Convert to lowercase"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"{lower}"}),' \u2192 "hello"']})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{trim}"})}),(0,r.jsx)(n.td,{children:"Remove whitespace"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"{trim}"}),' \u2192 "text"']})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{append:TEXT}"})}),(0,r.jsx)(n.td,{children:"Add text to end"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"{append:.txt}"}),' \u2192 "file.txt"']})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{prepend:TEXT}"})}),(0,r.jsx)(n.td,{children:"Add text to beginning"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"{prepend:/home/}"}),' \u2192 "/home/file"']})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"advanced-template-operations",children:"Advanced Template Operations"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Operation"}),(0,r.jsx)(n.th,{children:"Description"}),(0,r.jsx)(n.th,{children:"Example"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{replace:s/PATTERN/REPLACEMENT/FLAGS}"})}),(0,r.jsx)(n.td,{children:"Regex find and replace"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{replace:s/\\\\.py$/.backup/}"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{regex_extract:PATTERN}"})}),(0,r.jsx)(n.td,{children:"Extract matching text"}),(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"{regex_extract:\\\\d+}"})," \u2192 extract numbers"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{filter:PATTERN}"})}),(0,r.jsx)(n.td,{children:"Keep items matching pattern"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{split:,:..|filter:^test}"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{sort}"})}),(0,r.jsx)(n.td,{children:"Sort list items"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{split:,:..|sort}"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{unique}"})}),(0,r.jsx)(n.td,{children:"Remove duplicates"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{split:,:..|unique}"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{join:SEPARATOR}"})}),(0,r.jsx)(n.td,{children:"Join list with separator"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"{split:,:..|join:-}"})})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"template-examples",children:"Template Examples"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-text",children:'# File path manipulation\n{split:/:-1} # Get filename from path\n{split:/:0..-1|join:/} # Get directory from path\n\n# Text processing\n{split: :..|map:{upper}|join:_} # "hello world" \u2192 "HELLO_WORLD"\n{trim|replace:s/\\s+/_/g} # Replace spaces with underscores\n\n# Data extraction\n{regex_extract:@(.+)} # Extract email domain\n{split:,:..|filter:^[A-Z]} # Filter items starting with uppercase\n'})}),"\n",(0,r.jsx)(n.h3,{id:"range-specifications",children:"Range Specifications"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Syntax"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"N"})}),(0,r.jsx)(n.td,{children:"Single index (0-based)"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"N..M"})}),(0,r.jsx)(n.td,{children:"Range exclusive (items N to M-1)"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"N..=M"})}),(0,r.jsx)(n.td,{children:"Range inclusive (items N to M)"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"N.."})}),(0,r.jsx)(n.td,{children:"From N to end"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"..M"})}),(0,r.jsx)(n.td,{children:"From start to M-1"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:".."})}),(0,r.jsx)(n.td,{children:"All items"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"-1"})}),(0,r.jsx)(n.td,{children:"Last item"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"-N"})}),(0,r.jsx)(n.td,{children:"N-th from end"})]})]})]}),"\n",(0,r.jsxs)(n.p,{children:["For complete template documentation, see the ",(0,r.jsx)(n.a,{href:"https://github.com/lalvarezt/string_pipeline/blob/main/docs/template-system.md",children:"Template System Documentation"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"examples",children:"Examples"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Note"}),": More detailed examples with explanations are included in each option's documentation above."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-quick-start-examples",children:"\ud83c\udfaf Quick Start Examples"}),"\n",(0,r.jsx)(n.h4,{id:"channel-mode-recommended",children:"Channel Mode (Recommended)"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"# Basic usage - use built-in channels\ntv files # Browse files in current directory\ntv git-log # Browse git commit history\ntv docker-images # Browse Docker images\n\n# Channel + customization\ntv files --preview-command \"bat -n --color=always '{}'\"\ntv git-log --layout portrait\n\n# Feature visibility control\ntv files --hide-preview --show-status-bar # Clean interface, status visible\ntv files --show-remote # Force remote control visible\n"})}),"\n",(0,r.jsx)(n.h4,{id:"ad-hoc-mode-custom-commands",children:"Ad-hoc Mode (Custom Commands)"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# Simple custom finder\ntv --source-command "find . -name \'*.md\'"\n\n# Live system monitoring with hidden UI elements\ntv --source-command "ps aux | tail -n +2" \\\n --watch 1.0 \\\n --hide-preview \\\n --hide-status-bar\n\n# Clean interface with selective visibility\ntv --source-command "docker ps -a" \\\n --hide-preview \\\n --show-status-bar\n'})})]})}function a(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}}}]); |