2024-08-30 21:35:20 +00:00
|
|
|
/*
|
2024-09-17 19:00:25 +00:00
|
|
|
* Deskflow -- mouse and keyboard sharing utility
|
2025-08-09 12:58:46 +00:00
|
|
|
* SPDX-FileCopyrightText: (C) 2025 Deskflow Developers
|
2025-01-24 00:11:17 +00:00
|
|
|
* SPDX-FileCopyrightText: (C) 2024 Symless Ltd.
|
|
|
|
|
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
|
2024-08-30 21:35:20 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
2025-08-09 12:58:46 +00:00
|
|
|
#include <QFileInfo>
|
2025-11-05 20:55:51 +00:00
|
|
|
#include <QSysInfo>
|
2024-08-30 21:35:20 +00:00
|
|
|
|
2024-09-17 19:00:25 +00:00
|
|
|
namespace deskflow::platform {
|
2024-08-30 21:35:20 +00:00
|
|
|
|
2024-10-17 18:04:35 +00:00
|
|
|
inline bool isWayland()
|
|
|
|
|
{
|
2025-08-09 13:02:09 +00:00
|
|
|
return qEnvironmentVariable("XDG_SESSION_TYPE") == QStringLiteral("wayland");
|
2024-08-30 21:35:20 +00:00
|
|
|
}
|
|
|
|
|
|
2025-11-05 20:55:51 +00:00
|
|
|
/**
|
|
|
|
|
* @brief isWindows
|
|
|
|
|
* @return Returns true if we are running on windows
|
|
|
|
|
*/
|
|
|
|
|
inline bool isWindows()
|
|
|
|
|
{
|
|
|
|
|
return QSysInfo::productType() == QStringLiteral("windows");
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-05 21:34:53 +00:00
|
|
|
/**
|
|
|
|
|
* @brief isMac
|
|
|
|
|
* @return Returns true if we are running on mac os
|
|
|
|
|
*/
|
|
|
|
|
inline bool isMac()
|
|
|
|
|
{
|
|
|
|
|
return QSysInfo::productType() == QStringLiteral("macos");
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-09 12:58:46 +00:00
|
|
|
/**
|
|
|
|
|
* @brief isFlatpak
|
|
|
|
|
* @return Returns true if we are running as flatpak
|
|
|
|
|
*/
|
|
|
|
|
inline bool isFlatpak()
|
|
|
|
|
{
|
|
|
|
|
return QFileInfo::exists(QStringLiteral("/.flatpak-info"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief isSnap
|
|
|
|
|
* @return Returns true if we are running as a snap
|
|
|
|
|
*/
|
|
|
|
|
inline bool isSnap()
|
|
|
|
|
{
|
|
|
|
|
return qEnvironmentVariableIsSet("SNAP");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief isSandboxed
|
|
|
|
|
* @return Returns true if we are running from in a known sandbox.
|
|
|
|
|
*/
|
|
|
|
|
inline bool isSandboxed()
|
|
|
|
|
{
|
|
|
|
|
return isFlatpak() || isSnap();
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-17 19:00:25 +00:00
|
|
|
} // namespace deskflow::platform
|