-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add Qubes Video Companion formula
Fixes: #49
- Loading branch information
1 parent
c2db142
commit 0c9b173
Showing
11 changed files
with
224 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
# video-companion | ||
|
||
Stream webcams and share screens in Qubes OS. | ||
|
||
## Table of Contents | ||
|
||
* [Description](#description) | ||
* [Installation](#installation) | ||
* [Usage](#usage) | ||
|
||
## Description | ||
|
||
Installation procedures to stream webcams and share screens across qubes. The | ||
sender/server owns the screen or webcam and the receiver/client wants to | ||
access them without compromising the domains. | ||
|
||
## Installation | ||
|
||
- Top: | ||
```sh | ||
sudo qubesctl top.enable video-companion | ||
sudo qubesctl state.apply | ||
sudo qubesctl top.disable video-companion | ||
``` | ||
|
||
- State: | ||
<!-- pkg:begin:post-install --> | ||
```sh | ||
sudo qubesctl state.apply video-companion.create | ||
``` | ||
<!-- pkg:end:post-install --> | ||
|
||
|
||
Installation on the server (sender) template: | ||
```sh | ||
sudo qubesctl --skip-dom0 --targets=QUBE state.apply video-companion.install-sender | ||
``` | ||
|
||
Installation on the client (receiver) template: | ||
```sh | ||
sudo qubesctl --skip-dom0 --targets=QUBE state.apply video-companion.install-receiver | ||
``` | ||
|
||
Installation for debugging on the client (receiver) template: | ||
```sh | ||
sudo qubesctl --skip-dom0 --targets=QUBE state.apply video-companion.install-receiver-debug | ||
``` | ||
|
||
## Usage | ||
|
||
The sender has the screen you want to share of the webcam you want to access. | ||
|
||
The receiver the is client that requests access to the screen of webcam, | ||
therefore the client is responsible to initiate the call. | ||
|
||
On the client, to get the screen of another qube: | ||
```sh | ||
qubes-video-companion screenshare | ||
``` | ||
|
||
On the client, to get the webcam of another qube: | ||
```sh | ||
qubes-video-companion webcam | ||
``` | ||
|
||
On the client, if you installed the debug utilities, call cheese to access the | ||
shared screen or webcam: | ||
```sh | ||
cheese | ||
``` | ||
|
||
Refer to [upstream usage guide](https://github.com/QubesOS/video-companion?tab=readme-ov-file#usage) | ||
for more information. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{# | ||
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> | ||
|
||
SPDX-License-Identifier: AGPL-3.0-or-later | ||
#} | ||
|
||
include: | ||
- utils.tools.common.update | ||
|
||
"{{ slsdotpath }}-dom0-installed": | ||
pkg.installed: | ||
- require: | ||
- sls: utils.tools.common.update | ||
- pkgs: | ||
- video-companion-dom0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{# | ||
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com> | ||
|
||
SPDX-License-Identifier: AGPL-3.0-or-later | ||
#} | ||
|
||
base: | ||
'dom0': | ||
- match: nodegroup | ||
- video-companion.create |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> | ||
# | ||
# SPDX-License-Identifier: AGPL-3.0-or-later | ||
|
||
## Do not modify this file, create a new policy with with a lower number in the | ||
## file name instead. For example `30-user.policy`. | ||
qvc.Webcam * @anyvm @tag:usbvm ask | ||
## vim:ft=qrexecpolicy |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{# | ||
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com> | ||
|
||
SPDX-License-Identifier: AGPL-3.0-or-later | ||
#} | ||
|
||
base: | ||
'dom0': | ||
- match: nodegroup | ||
- video-companion.create |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
{# | ||
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> | ||
|
||
SPDX-License-Identifier: AGPL-3.0-or-later | ||
#} | ||
|
||
{% if grains['nodename'] != 'dom0' -%} | ||
|
||
include: | ||
- utils.tools.common.update | ||
- .install-receiver | ||
|
||
"{{ slsdotpath }}-receiver-debug-installed": | ||
pkg.installed: | ||
- require: | ||
- sls: utils.tools.common.update | ||
- install_recommends: False | ||
- skip_suggestions: True | ||
- pkgs: | ||
- dunst | ||
|
||
{% endif %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{# | ||
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> | ||
|
||
SPDX-License-Identifier: AGPL-3.0-or-later | ||
#} | ||
|
||
base: | ||
'*': | ||
- video-companion.install-receiver-debug |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
{# | ||
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> | ||
|
||
SPDX-License-Identifier: AGPL-3.0-or-later | ||
#} | ||
|
||
{% if grains['nodename'] != 'dom0' -%} | ||
|
||
include: | ||
- utils.tools.common.update | ||
|
||
"{{ slsdotpath }}-receiver-installed": | ||
pkg.installed: | ||
- require: | ||
- sls: utils.tools.common.update | ||
- install_recommends: False | ||
- skip_suggestions: True | ||
- pkgs: | ||
{% if grains['os_family']|lower == 'debian' -%} | ||
- qubes-video-companion | ||
{% else %} | ||
- qubes-video-companion-receiver | ||
{% endif %} | ||
{% if '.qubes.' not in salt['cmd.shell']('uname -r') and grains['os_family']|lower == 'debian' -%} | ||
- v4l2loopback-dkms | ||
{% endif %} | ||
## Undeclared dependencies | ||
- qubes-core-agent-passwordless-root | ||
- dunst | ||
- libnotify-bin | ||
|
||
{% endif %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{# | ||
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> | ||
|
||
SPDX-License-Identifier: AGPL-3.0-or-later | ||
#} | ||
|
||
base: | ||
'*': | ||
- video-companion.install-receiver |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
{# | ||
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> | ||
|
||
SPDX-License-Identifier: AGPL-3.0-or-later | ||
#} | ||
|
||
{% if grains['nodename'] != 'dom0' -%} | ||
|
||
include: | ||
- utils.tools.common.update | ||
|
||
"{{ slsdotpath }}-sender-installed": | ||
pkg.installed: | ||
- require: | ||
- sls: utils.tools.common.update | ||
- install_recommends: False | ||
- skip_suggestions: True | ||
- pkgs: | ||
{% if grains['os_family']|lower == 'debian' -%} | ||
- qubes-video-companion | ||
{% else %} | ||
- qubes-video-companion-sender | ||
{% endif %} | ||
## Undeclared dependencies | ||
- dunst | ||
|
||
{% endif %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{# | ||
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> | ||
|
||
SPDX-License-Identifier: AGPL-3.0-or-later | ||
#} | ||
|
||
base: | ||
'*': | ||
- video-companion.install-sender |