diff --git a/images/client-icons/quaternion.svg b/images/client-icons/quaternion.svg new file mode 100644 index 0000000..e20f3bd --- /dev/null +++ b/images/client-icons/quaternion.svg @@ -0,0 +1,464 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/src/open/clients/Quaternion.js b/src/open/clients/Quaternion.js new file mode 100644 index 0000000..ce6a184 --- /dev/null +++ b/src/open/clients/Quaternion.js @@ -0,0 +1,50 @@ +/* +Copyright 2020 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import {Maturity, Platform, LinkKind, FlathubLink, style} from "../types.js"; + +export class Quaternion { + get id() { return "quaternion"; } + get name() { return "Quaternion"; } + get icon() { return "images/client-icons/quaternion.svg"; } + get author() { return "Felix Rohrbach"; } + get homepage() { return "https://github.com/Fxrh/Quaternion"; } + get platforms() { return [Platform.Windows, Platform.macOS, Platform.Linux]; } + get description() { return 'Qt5 and C++ cross-platform desktop Matrix client.'; } + getMaturity(platform) { return Maturity.Beta; } + getDeepLink(platform, link) {} + canInterceptMatrixToLinks(platform) { return false; } + + getLinkInstructions(platform, link) { + switch (link.kind) { + case LinkKind.User: return [`Type `, style.code(`/invite ${link.identifier}`)]; + case LinkKind.Room: return [`Type `, style.code(`/join ${link.identifier}`)]; + } + } + + getCopyString(platform, link) { + switch (link.kind) { + case LinkKind.User: return `/invite ${link.identifier}`; + case LinkKind.Room: return `/join ${link.identifier}`; + } + } + + getInstallLinks(platform) { + if (platform === Platform.Linux) { + return [new FlathubLink("com.github.quaternion")]; + } + } +} diff --git a/src/open/clients/index.js b/src/open/clients/index.js index 657982e..6a36b10 100644 --- a/src/open/clients/index.js +++ b/src/open/clients/index.js @@ -18,12 +18,13 @@ import {Element} from "./Element.js"; import {Weechat} from "./Weechat.js"; import {Nheko} from "./Nheko.js"; import {Fractal} from "./Fractal.js"; +import {Quaternion} from "./Quaternion.js"; export function createClients() { return [ new Element(), new Weechat(), new Nheko(), - new Fractal(), + new Quaternion(), ]; }