a5be3b0c46651cbbda4cdcb0b4c99ea128f426f9 — Pistos 2 years ago fc881b7
1 files changed, 80 insertions(+), 0 deletions(-)

A README.md => README.md +80 -0
@@ 0,0 1,80 @@
# remoteku

A web app that lets you control Roku devices on your local network

## Setup

### Backend

[As per the Python documentation](https://docs.python.org/3/tutorial/venv.html),
create a Python virtual environment:

    python3 -m venv venv

Enter the Python virtual environment:

    . venv/bin/activate

Install the dependencies:

    python -m pip install -r requirements.txt

### Frontend

Install the dependencies:

    cd frontend
    npm install

## Getting Started

Two daemons need to be running: the backend and the frontend.

Start the backend (from the root of the repository):


Start the frontend (in another shell/terminal):

    cd frontend
    npm run serve

Visit http://ip.of.serving.host:8080 in a browser.

[As per Vue CLI documentation](https://cli.vuejs.org/config/#devserver)
and [webpack documentation](https://webpack.js.org/configuration/dev-server/#devserverport),
a different frontend port than 8080 can be specified thus:

    npm run serve -- --port 8081

## Usage

Upon visiting the web app, the app scans the local network for Roku devices,
and lists them by IP address.  Choose one, and then a graphical representation
of a physical Roku remote control will be presented.  Below the remote control
is a text field used for quick text entry on the Roku.  Below that is a grid of
Roku apps that are installed on the chosen Roku.

For most buttons on the virtual remote, clicking/tapping on them will send the
button press to the Roku.  (At this time, not all button presses are
implemented.)  The keyboard of the browsing device can also be used; see
Keyboard Shortcuts section, below.

After a text field is activated on the Roku, the text field in the remoteku web
app can be used to quickly send keystrokes to the Roku (in a batch) to fill in
the text field on the Roku.

### Keyboard Shortcuts

| Key | Button pressed |
| Up arrow | Up |
| Down arrow | Down |
| Left arrow | Left |
| Right arrow | Right |
| Enter | OK |
| Backspace | Back |
| Esc | Back |
| Space | Play/Pause |
| Page Up | Rewind |
| Page Down | Fast Forward |