Giter VIP home page Giter VIP logo

winmin-viewer's Introduction

Winmin Viewer

Winmin Viewer is an application that uses the SPICE protocol to display applications from libvirt virtual machines.

Build Dependencies

  • libspice-client-gtk-3.0-dev
  • libspice-client-glib-2.0-dev
  • libgtk-3-dev
  • meson

Building

Build and install with:

$ meson build
$ ninja -C build install

Runtime Dependencies

  • spice-client-gtk

Running

In order for this program to access the spice socket of the guest VM, the user must be part of the kvm group. This can be added using the following command.

$ sudo usermod -aG $USER kvm

You may need to logout or reboot in order for group changes to take effect.

Usage

winmin-viewer name spice_socket

Example

winmin-viewer "Word" spice+unix:///var/lib/libvirt/qemu/domain-1-winmin-msoffice/spice.sock

TODO

  • Format commandline arguments better see: Parsing command-line arguments in C?
  • Add fullscreen option
  • Add direct binding to libvirt virtual machines using the libvirt API
  • Add USB passthrough options

winmin-viewer's People

Contributors

vlinkz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

msgpo andrew-zm

winmin-viewer's Issues

Finish multi-monitor support

In order to have multiple applications from the same VM be opened at once, we can use multiple monitors in the guest and multiple spice sessions in order to display multiple applications. The monitor can be specified in the guest using a script found on StackOverflow. winmin-viewer-multimonitor.c starts implementing multimonitor support, however, I need to use dbus to communicate the current monitor from running instances of the viewer. For example, if a opens Word, then opens Excel, closes Word, and then opens Word again, the application must be able to reassign Word to the original monitor that is no longer being used.

USB Support

To make it possible to use applications like Garmin Express can there be an option to allow USB passthrough if an application requires it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.