Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/workflows/update-pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
name: Build GH-Pages
permissions: {}

on:
pull_request:
push:
branches:
- master
workflow_dispatch:

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true

jobs:
prep:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0

- name: Upload artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: prep
path: gh-pages-template/
if-no-files-found: error
include-hidden-files: true
retention-days: 1

call-jekyll-build:
needs: prep
permissions:
contents: read
uses: LizardByte/LizardByte.github.io/.github/workflows/jekyll-build.yml@master
secrets:
GH_BOT_EMAIL: ${{ secrets.GH_BOT_EMAIL }}
GH_BOT_TOKEN: ${{ secrets.GH_BOT_TOKEN }}
with:
clean_gh_pages: true
gh_bot_name: ${{ vars.GH_BOT_NAME }}
site_artifact: 'prep'
target_branch: 'gh-pages'
25 changes: 25 additions & 0 deletions gh-pages-template/.readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

version: 2

build:
os: ubuntu-24.04
tools:
ruby: "3.3"
apt_packages:
- 7zip
- jq
jobs:
install:
- |
mkdir -p "./tmp"
branch="master"
base_url="https://raw.githubusercontent.com/LizardByte/LizardByte.github.io"
url="${base_url}/refs/heads/${branch}/scripts/readthedocs_build.sh"
curl -sSL -o "./tmp/readthedocs_build.sh" "${url}"
chmod +x "./tmp/readthedocs_build.sh"
build:
html:
- "./tmp/readthedocs_build.sh"
4 changes: 4 additions & 0 deletions gh-pages-template/_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
# See https://github.com/LizardByte/beautiful-jekyll-next/blob/master/_config.yml for documented options

avatar: "/libvirtualhid/assets/img/navbar-avatar.png"
40 changes: 40 additions & 0 deletions gh-pages-template/_data/features.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
- title: "Platform-neutral C++ API"
icon_fa: "fas fa-code"
description: >
Build against portable runtime, profile, device, and report concepts while
backend-specific HID details stay behind the library implementation.

- title: "Gamepad-first profiles"
icon_fa: "fas fa-gamepad"
description: >
Create virtual gamepads that model generic HID, Xbox, DualShock, DualSense,
and Nintendo Switch Pro-style controller layouts.

- title: "Remote streaming ready"
icon_fa: "fas fa-tower-broadcast"
description: >
Designed for low-latency streaming hosts that need predictable lifecycle,
normalized input state, and output feedback callbacks.

- title: "User-mode Windows support"
icon_img: "https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/icons/windows.svg"
icon_img_alt: "Windows"
icon_img_invert: true
description: >
Windows gamepads are exposed through a user-mode UMDF2 control driver backed
by Virtual HID Framework, without requiring a custom kernel-mode driver.

- title: "Linux HID backends"
icon_img: "https://cdn.jsdelivr.net/npm/simple-icons@16/icons/linux.svg"
icon_img_alt: "Linux"
icon_img_invert: true
description: >
Linux gamepads use descriptor-driven uhid devices, with uinput available for
keyboard, mouse, touchscreen, trackpad, and pen tablet devices.

- title: "CMake friendly"
icon_fa: "fas fa-screwdriver-wrench"
description: >
Consume libvirtualhid through installed packages, vendored source,
add_subdirectory, or FetchContent in CMake-based projects.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added gh-pages-template/assets/img/navbar-avatar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
108 changes: 108 additions & 0 deletions gh-pages-template/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
title: libvirtualhid
subtitle: A LizardByte project
layout: page
full-width: true
after-content:
- donate.html
- support.html
cover-img:
- /libvirtualhid/assets/img/banners/libvirtualhid.jpeg
---

<!-- About section-->
<section class="py-5" id="About">
<div class="container px-auto">
<p class="lead text-center mx-auto mt-0 mb-5">
libvirtualhid is a cross-platform C++ library for creating virtual input devices. It focuses on
gamepad support for remote streaming hosts, while keeping the public API portable and hiding
platform-specific virtual HID details behind backend implementations.
</p>
</div>
</section>

<!-- Features section-->
<section class="py-5" id="Features">
<div class="container px-auto">
<h2 class="text-center fw-bolder my-5">Features</h2>
<div class="row gx-5">
{% for feature in site.data.features %}
<div class="col-md-6 col-lg-4 mb-5">
<div class="card-custom h-100 shadow border-0 rounded-0">
<div class="card-body p-4">
<div class="d-flex align-items-center">
<div class="icon">
{% if feature.icon_fa %}
<i class="fa-fw fa-2x {{ feature.icon_fa }}"></i>
{% elsif feature.icon_img %}
<img {% if feature.icon_img_invert %}class="invert"{% endif %} src="{{ feature.icon_img }}" alt="{{ feature.icon_img_alt | default: feature.title }}"/>
{% endif %}
</div>
<div class="ms-3">
<h5 class="fw-bolder mb-0">{{ feature.title }}</h5>
<p class="mb-0">{{ feature.description }}</p>
</div>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</section>

<!-- More cards -->
<div class="container py-5 px-auto">
<div class="container col-md-10">
<!-- Docs section -->
<section class="py-4" id="Docs">
<div class="card-custom shadow border-0 rounded-0">
<div class="card-body p-4">
<div class="d-flex align-items-center">
<i class="fa-fw fa-2x fas fa-book"></i>
<div class="ms-3">
<h2 class="fw-bolder mb-0">Documentation</h2>
<p class="mb-0">
Read the documentation to learn how to build, use, and integrate libvirtualhid.
</p>
</div>
</div>
</div>
<div class="card-footer p-3 px-4">
<a class="btn btn-outline-theme me-3 mb-3" href="https://docs.lizardbyte.dev/projects/libvirtualhid" target="_blank">
<img class="icon-sm invert" src="https://cdn.jsdelivr.net/npm/simple-icons@16/icons/readthedocs.svg" alt="ReadTheDocs"/>
Read the Docs
</a>
</div>
</div>
</section>

<!-- Source section -->
<section class="py-4" id="Source">
<div class="card-custom shadow border-0 rounded-0">
<div class="card-body p-4">
<div class="d-flex align-items-center">
<i class="fa-fw fa-2x fas fa-code-branch"></i>
<div class="ms-3">
<h2 class="fw-bolder mb-0">Source</h2>
<p class="mb-0">
Browse the library source, public headers, and streaming-host-oriented examples.
</p>
</div>
</div>
</div>
<div class="card-footer p-3 px-4">
<a class="btn btn-outline-theme me-3 mb-3" href="https://github.com/LizardByte/libvirtualhid" target="_blank">
<img class="icon-sm invert" src="https://cdn.jsdelivr.net/npm/simple-icons@16/icons/github.svg" alt="GitHub"/>
GitHub
</a>
<a class="btn btn-outline-theme me-3 mb-3" href="https://github.com/LizardByte/libvirtualhid/tree/master/examples" target="_blank">
<i class="fa-fw fa-lg fas fa-puzzle-piece"></i>
Examples
</a>
</div>
</div>
</section>

</div>
</div>
Loading