id = "pdfpc" name = "pdfpc" homepage = "https://github.com/pdfpc/pdfpc" description = "A presenter console with multi-monitor support for PDF files." executables = ["pdfpc"] [dotfiles] # pdfpcrc(5) documents the user file at $XDG_CONFIG_HOME/pdfpc/pdfpcrc # (falling back to ~/.config/pdfpc/pdfpcrc), while older releases accepted the # legacy ~/.pdfpcrc spelling. The project changelog records the XDG migration. # https://manpages.ubuntu.com/manpages/resolute/man5/pdfpcrc.5.html # https://github.com/pdfpc/pdfpc/blob/master/CHANGELOG.rst paths = ["[configHome]/pdfpc/pdfpcrc", "~/.pdfpcrc"] secret = [] side_effect = false [commands] format = 1 label = "Present a PDF" description = "Open a PDF in the presenter console with timer, notes layout and screen options. REST server, custom transitions, external scripts and listing modes are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.source]] id = "man" kind = "manual" url = "https://man.archlinux.org/man/pdfpc.1.en" revision = "2026-10-27" evidence = """ -d, --duration=N Duration in minutes of the presentation used for timer display. -e, --end-time=T End time of the presentation. (Format: HH:MM (24h)) -t, --start-time=T Start time of the presentation to be used as a countdown. (Format: HH:MM (24h)) -n, --notes=P Position of second-screen beamer notes on the PDF page (left, right, top, bottom, or none. Default: none). -P, --page Go to a specific page directly after startup. -s, --switch-screens Switch the presentation and the presenter screen. -S, --single-screen Force to use only one screen -w, --windowed=MODE Run in the given windowed mode (presenter|presentation|both|none). -C, --time-of-day Display the time of the day -g, --disable-auto-grouping Disable auto detection of overlay groups. (Default: enabled) -f, --note-format=FORMAT Enforce format of notes (plain or markdown. Default: markdown) -W, --wayland-workaround Enable Wayland-specific workaround. """ [[commands.field]] id = "pdf" label = "PDF file" type = "path" path = { kind = "file", role = "input" } position = 0 min = 1 sources = ["man"] [[commands.field]] id = "duration" label = "Duration (minutes)" type = "integer" option = ["--duration", "-d"] min = 0 sources = ["man"] [[commands.field]] id = "end_time" label = "End time (HH:MM)" type = "string" option = ["--end-time", "-e"] sources = ["man"] [[commands.field]] id = "start_time" label = "Start time (HH:MM)" type = "string" option = ["--start-time", "-t"] sources = ["man"] [[commands.field]] id = "notes" label = "Notes position" type = "enum" option = ["--notes", "-n"] choices = [{ value = "left", label = "Left" }, { value = "right", label = "Right" }, { value = "top", label = "Top" }, { value = "bottom", label = "Bottom" }, { value = "none", label = "None" }] sources = ["man"] [[commands.field]] id = "note_format" label = "Notes format" type = "enum" option = ["--note-format", "-f"] choices = [{ value = "plain", label = "Plain" }, { value = "markdown", label = "Markdown" }] sources = ["man"] [[commands.field]] id = "windowed" label = "Windowed mode" type = "enum" option = ["--windowed", "-w"] choices = [{ value = "presenter", label = "Presenter" }, { value = "presentation", label = "Presentation" }, { value = "both", label = "Both" }, { value = "none", label = "None" }] sources = ["man"] [[commands.field]] id = "page" label = "Start page" type = "integer" option = ["--page", "-P"] min = 1 sources = ["man"] [[commands.field]] id = "switch_screens" label = "Switch screens" type = "boolean" option = ["--switch-screens", "-s"] sources = ["man"] [[commands.field]] id = "single_screen" label = "Single screen only" type = "boolean" option = ["--single-screen", "-S"] sources = ["man"] [[commands.field]] id = "time_of_day" label = "Show time of day" type = "boolean" option = ["--time-of-day", "-C"] sources = ["man"] [[commands.field]] id = "no_grouping" label = "Disable overlay auto-grouping" type = "boolean" option = ["--disable-auto-grouping", "-g"] sources = ["man"] [[commands.field]] id = "wayland" label = "Wayland workaround" type = "boolean" option = ["--wayland-workaround", "-W"] sources = ["man"] [[commands.task]] id = "present" label = "Present with timer" fields = ["pdf", "duration", "notes", "switch_screens"] required = ["pdf"] [[commands.task]] id = "single" label = "Single screen" fields = ["pdf", "windowed", "page"] required = ["pdf"] set = { single_screen = [true] } [[commands.group]] id = "basic" label = "Basic" fields = ["pdf", "duration", "notes", "switch_screens", "single_screen", "page"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["end_time", "start_time", "note_format", "windowed", "time_of_day", "no_grouping", "wayland"]