Skip to content

VDM-Maintainer-Group/virtual-domain-manager

Repository files navigation

Virtual Domain Manager

output.mp4

Project Progress

Introduction

VDM is a workspace manager for GUI applications.

When workspace is closing, VDM will save the status of all compatible applications and restore them when re-open.

Dependencies

  • System-related dependencies

    # for Debian-based distributions
    sudo apt install build-essential curl cmake git python3-pip libdbus-1-dev libglib2.0-dev
  • Rust toolchain

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Installation

  1. clone this repository

    git clone https://github.com/VDM-Maintainer-Group/virtual-domain-manager.git --depth=1
    git submodule update --init
  2. build with cmake (>=3.10)

    mkdir build; cd build; cmake ..; make
  3. build and install pyvdm

    cd build; make build-pyvdm
    cd dist; pip3 install *.whl
  4. build and install capability library

    cd capability; sbs build; sbs install
  5. run pyvdm

    pyvdm-tray

    or pyvdm for command-line interface.

Compatibility

Currently, VDM detects the compatibility of applications in the following two ways:

Development

The architecture of VDM is split into three parts: VDM Core VDM Capability Library, and VDM Plugin.

Capability Development

The VDM Capability Library is developed to be invoked by VDM Plugin for alleviation of complicated development. The library should provide a entry with functions exported with specific type of signature.

Please refer to the contribution guidance here.

Plugin Development

The VDM Plugin implements SRC interface and is invoked by VDM Core. The plugin is developed to support GUI application compatibility, or define the actions to be taken when switch the domain.

Please refer to the contribution guidance here.

License

Virtual Domain Manager is licensed under GPLv3.