{
  "id": "pdfpc",
  "name": "pdfpc",
  "homepage": "https://github.com/pdfpc/pdfpc",
  "description": "A presenter console with multi-monitor support for PDF files.",
  "executables": [
    "pdfpc"
  ],
  "dotfiles": {
    "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
    },
    "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.\n-e, --end-time=T  End time of the presentation. (Format: HH:MM (24h))\n-t, --start-time=T  Start time of the presentation to be used as a countdown. (Format: HH:MM (24h))\n-n, --notes=P  Position of second-screen beamer notes on the PDF page (left, right, top, bottom, or none. Default: none).\n-P, --page  Go to a specific page directly after startup.\n-s, --switch-screens  Switch the presentation and the presenter screen.\n-S, --single-screen  Force to use only one screen\n-w, --windowed=MODE  Run in the given windowed mode (presenter|presentation|both|none).\n-C, --time-of-day  Display the time of the day\n-g, --disable-auto-grouping  Disable auto detection of overlay groups. (Default: enabled)\n-f, --note-format=FORMAT  Enforce format of notes (plain or markdown. Default: markdown)\n-W, --wayland-workaround  Enable Wayland-specific workaround.\n"
      }
    ],
    "field": [
      {
        "id": "pdf",
        "label": "PDF file",
        "type": "path",
        "path": {
          "kind": "file",
          "role": "input"
        },
        "position": 0,
        "min": 1,
        "sources": [
          "man"
        ]
      },
      {
        "id": "duration",
        "label": "Duration (minutes)",
        "type": "integer",
        "option": [
          "--duration",
          "-d"
        ],
        "min": 0,
        "sources": [
          "man"
        ]
      },
      {
        "id": "end_time",
        "label": "End time (HH:MM)",
        "type": "string",
        "option": [
          "--end-time",
          "-e"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "start_time",
        "label": "Start time (HH:MM)",
        "type": "string",
        "option": [
          "--start-time",
          "-t"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "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"
        ]
      },
      {
        "id": "note_format",
        "label": "Notes format",
        "type": "enum",
        "option": [
          "--note-format",
          "-f"
        ],
        "choices": [
          {
            "value": "plain",
            "label": "Plain"
          },
          {
            "value": "markdown",
            "label": "Markdown"
          }
        ],
        "sources": [
          "man"
        ]
      },
      {
        "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"
        ]
      },
      {
        "id": "page",
        "label": "Start page",
        "type": "integer",
        "option": [
          "--page",
          "-P"
        ],
        "min": 1,
        "sources": [
          "man"
        ]
      },
      {
        "id": "switch_screens",
        "label": "Switch screens",
        "type": "boolean",
        "option": [
          "--switch-screens",
          "-s"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "single_screen",
        "label": "Single screen only",
        "type": "boolean",
        "option": [
          "--single-screen",
          "-S"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "time_of_day",
        "label": "Show time of day",
        "type": "boolean",
        "option": [
          "--time-of-day",
          "-C"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "no_grouping",
        "label": "Disable overlay auto-grouping",
        "type": "boolean",
        "option": [
          "--disable-auto-grouping",
          "-g"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "wayland",
        "label": "Wayland workaround",
        "type": "boolean",
        "option": [
          "--wayland-workaround",
          "-W"
        ],
        "sources": [
          "man"
        ]
      }
    ],
    "task": [
      {
        "id": "present",
        "label": "Present with timer",
        "fields": [
          "pdf",
          "duration",
          "notes",
          "switch_screens"
        ],
        "required": [
          "pdf"
        ]
      },
      {
        "id": "single",
        "label": "Single screen",
        "fields": [
          "pdf",
          "windowed",
          "page"
        ],
        "required": [
          "pdf"
        ],
        "set": {
          "single_screen": [
            true
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "pdf",
          "duration",
          "notes",
          "switch_screens",
          "single_screen",
          "page"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "end_time",
          "start_time",
          "note_format",
          "windowed",
          "time_of_day",
          "no_grouping",
          "wayland"
        ]
      }
    ]
  }
}
