Skip to main content

Hardware-accelerated Linux virtual desktops.

Project description

Bounce Desktop

Bounce Desktop is a cpp library and python package for starting and interacting with lightweight hardware-accelerated virtual desktops. It does this by running VNC-backed Weston sessions and then connecting to them with a VNC client.

I've written Bounce Desktop to serve as a desktop platform for my RL with Games framework: BounceRL.

Dependencies

poetry, libvncserver (optional), gmock, gtest, libgvnc (from gtk-vnc)

Getting started

If you want just want the python package, you'll first need to install the system dependencies listed above. Then you can run this pip command:

pip install bounce_desktop

Usage

I don't have docs or clear examples handy, but for starter pointers, see: src/desktop/client.h, bounce_desktop/bounce_desk_test.py, and src/bindings/client_exe.h.

Limitations

Running multiple desktops from a single process isn't supported yet. I'd like to support this use case, but there are some threading details to work through in the libgvnc client and SDL viewer. Until then, if you do want to test the threaded set up, pass in "true" to the the "allow_unsafe" arg for the client or viewer.

Roadmap

This project's being developed to support BounceRL, so I'll be focusing development toward that project's needs. With that said, I do think there's value in having a lightweight virtual desktop library available, and I do think one could develop this project toward that goal if they're interested.

I also think this project should be close to feature complete at this point, I may at some point integrate the prototyped, but unused, subprocess reaper into the desktop class, so that callers can get guaranteed process clean-up, but we'll see if or when I need that feature.

Contributing

I don't plan on accepting pull requests in the near term, but I'll take a look at any issues or feature requests you open.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bounce_desktop-0.2.2.tar.gz (2.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

bounce_desktop-0.2.2-py3-none-any.whl (7.0 MB view details)

Uploaded Python 3

bounce_desktop-0.2.2-cp312-cp312-manylinux_2_42_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.42+ x86-64

File details

Details for the file bounce_desktop-0.2.2.tar.gz.

File metadata

  • Download URL: bounce_desktop-0.2.2.tar.gz
  • Upload date:
  • Size: 2.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for bounce_desktop-0.2.2.tar.gz
Algorithm Hash digest
SHA256 e6d86494101c2fec3d53e03192bab60db3ffac860cb7d8b1c262213de0b3ff96
MD5 d732ae9b6b70d8c2f755c9295e527ce2
BLAKE2b-256 4a9a3ea9288042ea166b005c90fa6f653d48ee2b13ebea4d8a0ade5cf7cdc69a

See more details on using hashes here.

File details

Details for the file bounce_desktop-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: bounce_desktop-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for bounce_desktop-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 91a6f2390f51322141546a1301695c79dfad06e3c6e7e342fb799e0dccdf08ea
MD5 53825ec585d12a14432aba784d127367
BLAKE2b-256 d6221d580c35da2c6f57800e084546d08c35cee9a86821f8f3d31a3dbb214252

See more details on using hashes here.

File details

Details for the file bounce_desktop-0.2.2-cp312-cp312-manylinux_2_42_x86_64.whl.

File metadata

File hashes

Hashes for bounce_desktop-0.2.2-cp312-cp312-manylinux_2_42_x86_64.whl
Algorithm Hash digest
SHA256 128dd0982682dfd0200cbaf79dcdb2dfb377109df8647d4c756c553f77a11f61
MD5 ac570b0d8dc077bbe8651f12474482dd
BLAKE2b-256 646fb7c661b8e8ebaa9d816b76e2c12fb1097deb5503fc5bff8fefcfea212367

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page