Metadata-Version: 2.4
Name: byk-slide
Version: 2026.5.29
Summary: a plugin for bykcli
Author-email: fcbyk <731240932@qq.com>
License: MIT
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: bykcli>=1.0.0a1
Requires-Dist: click>=8.0.0
Requires-Dist: flask>=2.0
Requires-Dist: pyperclip<2.0.0,>=1.9.0
Requires-Dist: flask-socketio==5.3.3
Requires-Dist: python-socketio==5.9.0
Requires-Dist: pyautogui<1.0.0,>=0.9.50
Dynamic: license-file

# Slide

[![PyPI](https://img.shields.io/pypi/v/byk-slide.svg)](https://pypi.org/project/byk-slide/)
[![Python](https://img.shields.io/badge/python-%E2%89%A53.10-blue?logo=python&logoColor=white)](https://www.python.org/downloads/)
[![License](https://img.shields.io/github/license/fcbyk/slide.svg)](https://github.com/fcbyk/slide/blob/main/LICENSE)

A LAN-based remote presentation control plugin for `bykcli`.

`Slide` lets you quickly start a web-based PPT remote control service on your local network.
You can use your phone or other mobile devices to control slides and basic mouse actions remotely through a browser.

## Installation

```bash
pip install byk-slide
```

## Features

* Start a web-based PPT remote control service
* Control previous/next slide and jump to first/last slide from any device on the same LAN
* Support basic mouse controls, including:

  * mouse movement
  * left click
  * right click
  * long press
  * scroll wheel
* Protect the control page with an access password

## Usage

Start Slide:

```bash
byk slide [OPTIONS]
```

After startup, Slide will:

* Check whether the port is available
* Interactively ask for an access password and require confirmation (cannot be empty)
* Start a Flask + Socket.IO based web control service
* Display available LAN access addresses
* Automatically copy one access address to the clipboard
* Automatically open the control page in the default browser

## Parameters

* `-p, --port`
  Specify the web service port. Default: `80`

* `-nb, --no-browser`
  Disable automatically opening the browser

## Examples

Start Slide using the default port (`80`):

```bash
byk slide
```

Start Slide on a custom port:

```bash
byk slide -p 8080
```

Typical workflow during a presentation:

```bash
# 1. Start Slide on the presentation computer
byk slide -p 8080

# 2. Open the control address on your phone
#    under the same Wi-Fi network

# 3. Enter the access password

# 4. Use the web page to control slides and mouse actions
```

## Notes

* Slide works by simulating keyboard and mouse events. Make sure your environment allows such operations and avoid conflicts with other automation software.
* It is recommended to test locally before a presentation to ensure compatibility with your system, presentation software, and `pyautogui`.
* For safety, only run Slide when needed and keep the access password secure.
* Slide is designed for LAN usage only and is not recommended for direct public network exposure.
