Skip to content

Commit

Permalink
feat: add Element formula
Browse files Browse the repository at this point in the history
  • Loading branch information
ben-grande committed May 28, 2024
1 parent efcf8c7 commit 26a35b8
Show file tree
Hide file tree
Showing 17 changed files with 301 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .reuse/dep5
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ Files: salt/docker/files/repo/*
Copyright: 2017 Docker Inc. <docker@docker.com>
License: CC0-1.0

Files: salt/element/files/repo/*
Copyright: 2019 Element <packages@riot.im>
License: CC0-1.0

Files: salt/kicksecure-minimal/files/repo/*
Copyright: 2014 Patrick Schleizer <adrelanos@kicksecure.com>
License: CC0-1.0
Expand Down
2 changes: 2 additions & 0 deletions docs/BOOTSTRAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ matter in some circumstances, in those cases, it is noted in this page.
- Instant messaging and E-Mail:
- [mail](../salt/mail/README.md)
- [signal](../salt/signal/README.md)
- [element](../salt/element/README.md)

- Electronic cash:
- [sys-bitcoin](../salt/sys-bitcoin/README.md)
Expand All @@ -70,6 +71,7 @@ matter in some circumstances, in those cases, it is noted in this page.
- Multimedia:
- [reader](../salt/reader/README.md)
- [media](../salt/media/README.md)
- [sys-print](../salt/sys-print/README.md)

- File sharing:
- [sys-ssh](../salt/sys-ssh/README.md)
Expand Down
37 changes: 37 additions & 0 deletions salt/element/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# element

Element Matrix client installation in Qubes OS.

## Table of Contents

* [Description](#description)
* [Installation](#installation)
* [Usage](#usage)

## Description

Install Element and use it on the "element" app qube to connect to your
Matrix account.

## Installation

- Top:
```sh
sudo qubesctl top.enable element
sudo qubesctl --targets=tpl-element state.apply
sudo qubesctl top.disable element
sudo qubesctl state.apply element.appmenus
```

- State:
<!-- pkg:begin:post-install -->
```sh
sudo qubesctl state.apply element.create
sudo qubesctl --skip-dom0 --targets=tpl-element state.apply element.install
sudo qubesctl state.apply element.appmenus
```
<!-- pkg:end:post-install -->

## Usage

You can connect to your Matrix account via the Element client.
8 changes: 8 additions & 0 deletions salt/element/appmenus.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

{% from 'utils/macros/sync-appmenus.sls' import sync_appmenus -%}
{{ sync_appmenus('tpl-' ~ sls_path) }}
10 changes: 10 additions & 0 deletions salt/element/appmenus.top
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

base:
'dom0':
- match: nodegroup
- element.appmenus
8 changes: 8 additions & 0 deletions salt/element/clone.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

{% from 'utils/macros/clone-template.sls' import clone_template -%}
{{ clone_template('debian-minimal', sls_path) }}
10 changes: 10 additions & 0 deletions salt/element/clone.top
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

base:
'dom0':
- match: nodegroup
- element.clone
77 changes: 77 additions & 0 deletions salt/element/create.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

{%- from "qvm/template.jinja" import load -%}
include:
- .clone
{% load_yaml as defaults -%}
name: tpl-{{ slsdotpath }}
force: True
require:
- sls: {{ slsdotpath }}.clone
prefs:
- audiovm: ""
features:
- set:
- default-menu-items: "element-desktop.desktop qubes-run-terminal.desktop qubes-start.desktop"
- menu-items: "element-desktop.desktop qubes-run-terminal.desktop qubes-start.desktop"
{%- endload %}
{{ load(defaults) }}
{% load_yaml as defaults -%}
name: {{ slsdotpath }}
force: True
require:
- sls: {{ slsdotpath }}.clone
present:
- template: tpl-{{ slsdotpath }}
- label: yellow
prefs:
- template: tpl-{{ slsdotpath }}
- label: yellow
- audiovm: "*default*"
- vcpus: 1
- memory: 300
- maxmem: 800
- autostart: False
features:
- disable:
- service.cups
- service.cups-browsed
- set:
- menu-items: "element-desktop.desktop qubes-run-terminal.desktop qubes-start.desktop"
{%- endload %}
{{ load(defaults) }}
{% load_yaml as defaults -%}
name: dvm-{{ slsdotpath }}
force: True
require:
- sls: {{ slsdotpath }}.clone
present:
- template: tpl-{{ slsdotpath }}
- label: yellow
prefs:
- template: tpl-{{ slsdotpath }}
- label: yellow
- audiovm: "*default*"
- memory: 300
- maxmem: 800
- vcpus: 1
- template_for_dispvms: True
- include_in_backups: False
features:
- enable:
- appmenus-dispvm
- disable:
- service.cups
- service.cups-browsed
- set:
- menu-items: "element-desktop.desktop qubes-run-terminal.desktop qubes-start.desktop"
{%- endload %}
{{ load(defaults) }}
10 changes: 10 additions & 0 deletions salt/element/create.top
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

base:
'dom0':
- match: nodegroup
- element.create
58 changes: 58 additions & 0 deletions salt/element/files/repo/element.asc
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=iXCs
-----END PGP PUBLIC KEY BLOCK-----
2 changes: 2 additions & 0 deletions salt/element/files/repo/element.list
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
deb [signed-by=/usr/share/keyrings/element.asc] https://packages.element.io/debian/ default main
# vim:ft=debsources
6 changes: 6 additions & 0 deletions salt/element/files/repo/element.sources
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Types: deb
URIs: https://packages.element.io/debian/
Suites: default
Components: main
Signed-by: /usr/share/keyrings/element.asc
# vim:ft=debsources
12 changes: 12 additions & 0 deletions salt/element/init.top
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{#
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

base:
'dom0':
- match: nodegroup
- element.create
'tpl-element':
- element.install
12 changes: 12 additions & 0 deletions salt/element/install-repo.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{#
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>

SPDX-License-Identifier: AGPL-3.0-or-later
#}

{% if grains['nodename'] != 'dom0' -%}

{% from 'utils/macros/install-repo.sls' import install_repo -%}
{{ install_repo(sls_path, 'element') }}
{% endif -%}
9 changes: 9 additions & 0 deletions salt/element/install-repo.top
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:
'tpl-element':
- element.install-repo
27 changes: 27 additions & 0 deletions salt/element/install.sls
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:
- .install-repo
- utils.tools.common.update
- sys-audio.install-client

"{{ slsdotpath }}-installed":
pkg.installed:
- require:
- sls: {{ slsdotpath }}.install-repo
- sls: utils.tools.common.update
- install_recommends: False
- skip_suggestions: True
- pkgs:
- qubes-core-agent-networking
- ca-certificates
- element-desktop
- dunst

{% endif -%}
9 changes: 9 additions & 0 deletions salt/element/install.top
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:
'tpl-element':
- element.install

0 comments on commit 26a35b8

Please sign in to comment.