diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml
index e37ef751a..7d3309d44 100644
--- a/.github/workflows/build-containers.yml
+++ b/.github/workflows/build-containers.yml
@@ -32,30 +32,6 @@ jobs:
base-image: debian:trixie-slim
platform: amd64
- - name: debian-12-amd64
- runs-on: ubuntu-latest
- config-dir: debian
- base-image: debian:12-slim
- platform: amd64
-
- - name: debian-12-arm64
- runs-on: ubuntu-24.04-2-core-arm64
- config-dir: debian
- base-image: arm64v8/debian:12-slim
- platform: arm64
-
- - name: ubuntu-24.04-amd64
- runs-on: ubuntu-latest
- config-dir: debian
- base-image: ubuntu:24.04
- platform: amd64
-
- - name: ubuntu-22.04-amd64
- runs-on: ubuntu-latest
- config-dir: debian
- base-image: ubuntu:22.04
- platform: amd64
-
- name: fedora-40-amd64
runs-on: ubuntu-latest
config-dir: fedora
@@ -68,24 +44,6 @@ jobs:
base-image: arm64v8/fedora:40
platform: arm64
- - name: fedora-39-amd64
- runs-on: ubuntu-latest
- config-dir: fedora
- base-image: fedora:39
- platform: amd64
-
- - name: rockylinux-9-amd64
- runs-on: ubuntu-latest
- config-dir: fedora
- base-image: rockylinux:9
- platform: amd64
-
- - name: almalinux-9-amd64
- runs-on: ubuntu-latest
- config-dir: fedora
- base-image: almalinux:9
- platform: amd64
-
- name: opensuse-amd64
runs-on: ubuntu-latest
config-dir: opensuse
@@ -98,12 +56,6 @@ jobs:
base-image: archlinux:latest
platform: amd64
- - name: manjaro-amd64
- config-dir: archlinux
- runs-on: ubuntu-latest
- base-image: manjarolinux/base:latest
- platform: amd64
-
steps:
- name: Checkout
uses: actions/checkout@v4
diff --git a/.github/workflows/ci-linux.json b/.github/workflows/ci-linux.json
index 12051a69d..d5385d8ee 100644
--- a/.github/workflows/ci-linux.json
+++ b/.github/workflows/ci-linux.json
@@ -4,31 +4,6 @@
"name": "debian-13-amd64",
"container": "deskflow/deskflow:debian-13-amd64",
"runs-on": "ubuntu-latest",
- "extra-packages": false
- },
- {
- "name": "debian-12-arm64",
- "container": "deskflow/deskflow:debian-12-arm64",
- "runs-on": "ubuntu-24.04-4-core-arm64",
- "extra-packages": false
- },
- {
- "name": "debian-12-amd64",
- "container": "deskflow/deskflow:debian-12-amd64",
- "runs-on": "ubuntu-latest",
- "extra-packages": false
- },
- {
- "name": "ubuntu-24.04-amd64",
- "container": "deskflow/deskflow:ubuntu-24.04-amd64",
- "runs-on": "ubuntu-latest",
- "extra-dep-args": "--meson-no-system libportal --meson-static libportal --subprojects",
- "extra-cmake-args": "-DSYSTEM_LIBPORTAL=OFF -DSTATIC_LIBPORTAL=ON"
- },
- {
- "name": "ubuntu-22.04-amd64",
- "container": "deskflow/deskflow:ubuntu-22.04-amd64",
- "runs-on": "ubuntu-latest"
},
{
"name": "fedora-40-arm64",
@@ -40,37 +15,16 @@
"container": "deskflow/deskflow:fedora-40-amd64",
"runs-on": "ubuntu-latest"
},
- {
- "name": "fedora-39-amd64",
- "container": "deskflow/deskflow:fedora-39-amd64",
- "runs-on": "ubuntu-latest"
- },
{
"name": "opensuse-amd64",
"container": "deskflow/deskflow:opensuse-amd64",
"runs-on": "ubuntu-latest"
},
- {
- "name": "rockylinux-9-amd64",
- "container": "deskflow/deskflow:rockylinux-9-amd64",
- "runs-on": "ubuntu-latest"
- },
- {
- "name": "almalinux-9-amd64",
- "container": "deskflow/deskflow:almalinux-9-amd64",
- "runs-on": "ubuntu-latest"
- },
{
"name": "archlinux-amd64",
"container": "deskflow/deskflow:archlinux-amd64",
"runs-on": "ubuntu-latest",
"arch-like": "true"
- },
- {
- "name": "manjaro-amd64",
- "container": "deskflow/deskflow:manjaro-amd64",
- "runs-on": "ubuntu-latest",
- "arch-like": "true"
}
]
}
diff --git a/cmake/Libraries.cmake b/cmake/Libraries.cmake
index 9159ac446..1b60e83b6 100644
--- a/cmake/Libraries.cmake
+++ b/cmake/Libraries.cmake
@@ -200,7 +200,6 @@ macro(configure_wayland_libs)
include(FindPkgConfig)
if(PKG_CONFIG_FOUND)
- configure_libei()
configure_libportal()
pkg_check_modules(LIBXKBCOMMON REQUIRED xkbcommon)
@@ -214,41 +213,10 @@ macro(configure_wayland_libs)
endmacro()
-macro(configure_libei)
- option(SYSTEM_LIBEI "Use system libei" ON)
- if(SYSTEM_LIBEI)
- pkg_check_modules(LIBEI QUIET "libei-1.0 >= ${LIBEI_MIN_VERSION}")
- if(LIBEI_FOUND)
- message(STATUS "libei version: ${LIBEI_VERSION}")
- add_definitions(-DWINAPI_LIBEI=1)
- include_directories(${LIBEI_INCLUDE_DIRS})
- else()
- message(WARNING "libei >= ${LIBEI_MIN_VERSION} not found")
- endif()
- else()
- set(libei_bin_dir ${PROJECT_BINARY_DIR}/meson/subprojects/libei/src)
- set(libei_src_dir ${PROJECT_SOURCE_DIR}/subprojects/libei)
- find_library(
- LIBEI_LINK_LIBRARIES
- NAMES ei
- PATHS ${libei_bin_dir}
- NO_DEFAULT_PATH)
- if(LIBEI_LINK_LIBRARIES)
- message(STATUS "Using local subproject libei")
- set(LIBEI_FOUND true)
- add_definitions(-DWINAPI_LIBEI=1)
- set(LIBEI_INCLUDE_DIRS ${libei_src_dir}/src)
- include_directories(${LIBEI_INCLUDE_DIRS})
- else()
- message(WARNING "Local libei not found")
- endif()
- endif()
-endmacro()
-
macro(configure_libportal)
option(SYSTEM_LIBPORTAL "Use system libportal" ON)
if(SYSTEM_LIBPORTAL)
- pkg_check_modules(LIBPORTAL QUIET "libportal >= ${LIBPORTAL_MIN_VERSION}")
+ pkg_check_modules(LIBPORTAL REQUIRED QUIET "libportal >= ${LIBPORTAL_MIN_VERSION}")
if(LIBPORTAL_FOUND)
message(STATUS "libportal version: ${LIBPORTAL_VERSION}")
check_libportal()
diff --git a/meson.build b/meson.build
deleted file mode 100644
index 5b1edc7c2..000000000
--- a/meson.build
+++ /dev/null
@@ -1,31 +0,0 @@
-# For now, we're only using Meson to resolve dependencies. CMake is called separately.
-# In future, we may completely replace CMake with Meson.
-# Where available, we use system packages, otherwise we use subprojects.
-# Subprojects are also used to get the latest version during development.
-
-project('deskflow', 'cpp')
-
-if host_machine.system() == 'linux'
-
- system_libei = get_option('system-libei')
- if system_libei
- dependency('libei-1.0', required: false)
- else
- # Using the subproject is only useful for development; it's not intended for normal use.
- # GNOME46 or above is required as this has the required bits for libei.
- # Building on anything older is pointless as you won't be able to actually connect to anything.
- subproject('libei', default_options: ['tests=disabled', 'liboeffis=disabled'])
- endif
-
- system_libportal = get_option('system-libportal')
- if system_libportal
- dependency('libportal', required: false)
- else
- # Using the subproject is only useful for development; it's not intended for normal use.
- subproject('libportal', default_options: [
- 'docs=false',
- 'backend-gtk3=enabled',
- 'backend-qt6=disabled'
- ])
- endif
-endif
diff --git a/meson_options.txt b/meson_options.txt
deleted file mode 100644
index db87004a3..000000000
--- a/meson_options.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-option('system-libportal', type: 'boolean', value: true, description: 'Use system libportal')
-option('system-libei', type: 'boolean', value: true, description: 'Use system libei')
diff --git a/scripts/install_deps.py b/scripts/install_deps.py
index 8e34f1a35..346a0e644 100755
--- a/scripts/install_deps.py
+++ b/scripts/install_deps.py
@@ -20,7 +20,6 @@ import lib.env as env
import lib.cmd_utils as cmd_utils
import lib.qt_utils as qt_utils
import lib.github as github
-import lib.meson as meson
path_env_var = "PATH"
cmake_prefix_env_var = "CMAKE_PREFIX_PATH"
@@ -80,29 +79,6 @@ def parse_args(is_ci):
action="store_true",
help="Do not install system dependencies (apt, dnf, etc)",
)
- parser.add_argument(
- "--skip-meson", action="store_true", help="Do not setup and compile with Meson"
- )
- parser.add_argument(
- "--subprojects",
- action="store_true",
- help="Install dependencies for Meson subprojects (use with --meson-no-system)",
- )
- parser.add_argument(
- "--meson-install",
- action="store_true",
- help="Install built Meson subprojects to system",
- )
- parser.add_argument(
- "--meson-no-system",
- nargs="+",
- help="Specify which Meson subprojects to use instead of system dependencies",
- )
- parser.add_argument(
- "--meson-static",
- nargs="+",
- help="Specify which Meson subprojects to build as static libraries",
- )
if env.is_windows():
parser.add_argument(
@@ -177,30 +153,6 @@ def install(args):
vcpkg.install(args.ci_env)
- if not args.skip_meson:
- if args.subprojects:
- for subproject in args.meson_no_system or []:
- deps = SubprojectDependencies(subproject)
- deps.install()
-
- run_meson(args.meson_install, args.meson_no_system, args.meson_static)
-
-
-# It's a bit weird to use Meson just for installing deps, but it's a stopgap until
-# we fully switch from CMake to Meson. For the meantime, Meson will install the deps
-# so that CMake can find them easily. Once we switch to Meson, it might be possible for
-# Meson handle the deps resolution, so that we won't need to install them on the system.
-def run_meson(install, no_system_list, static_list):
- meson.setup(no_system_list, static_list)
-
- # Only compile and install on Linux for now, since we're only using Meson to fetch
- # the deps on Windows and macOS.
- if env.is_linux():
- meson.compile()
-
- if install:
- meson.install()
-
class Dependencies:
@@ -318,38 +270,5 @@ class Dependencies:
linux.run_command(command, check=True)
- subprojects = self.config.get_os_subprojects()
- if subprojects:
- for subproject in subprojects:
- deps = SubprojectDependencies(subproject)
- deps.install()
-
-
-class SubprojectDependencies:
-
- def __init__(self, subproject):
- from lib.config import Config
-
- self.subproject = subproject
- self.config = Config()
-
- def install(self):
- """Installs dependencies for the current platform."""
-
- print(f"Installing dependencies for sub-project: {self.subproject}")
-
- if env.is_linux():
- self.linux()
- else:
- raise RuntimeError(f"Unsupported platform: {os}")
-
- def linux(self):
- """Installs dependencies on Linux."""
- import lib.linux as linux
-
- command = self.config.get_subproject_deps_command(self.subproject)
- linux.run_command(command, check=True)
-
-
if __name__ == "__main__":
main()
diff --git a/scripts/lib/meson.py b/scripts/lib/meson.py
deleted file mode 100644
index e22481f2b..000000000
--- a/scripts/lib/meson.py
+++ /dev/null
@@ -1,84 +0,0 @@
-# Deskflow -- mouse and keyboard sharing utility
-# Copyright (C) 2024 Symless Ltd.
-#
-# This package is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# found in the file LICENSE that should have accompanied this file.
-#
-# This package is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-import os, sys
-import lib.cmd_utils as cmd_utils
-import lib.env as env
-
-build_dir = "build/meson"
-
-
-def meson_venv_bin():
- if not env.in_venv():
- raise RuntimeError("Not in a virtual environment")
-
- return os.path.join(os.path.dirname(sys.executable), "meson")
-
-
-def setup(no_system_list, static_list):
- cmd = [meson_venv_bin(), "setup", build_dir]
-
- for subproject in no_system_list or []:
- cmd.append(f"-Dsystem-{subproject}=false")
-
- # This might be a bit rude, but Meson seems to cache a lot (like CMake),
- # so wiping every time is the easiest way to ensure that the build is clean.
- # Plus, the way we're using Meson (at the moment) is just for satisfying
- # dependencies, so this script is run infrequently enough to not matter.
- if os.path.exists(build_dir):
- cmd.append("--wipe")
-
- cmd_utils.run(cmd, print_cmd=True)
-
- for subproject in static_list or []:
- static_subproject(subproject)
-
-
-def static_subproject(subproject):
- if subproject == "libportal":
- # HACK: This is a bit horrible. Ideally, Meson would take care of applying this patch,
- # but it only seems to copy the .diff over and not apply the patch.
- #
- # Important: Static linking is not intended for package maintainers, only for beta testers.
- # Static linking is also pretty horrible, but many distros will be slow to pick up 0.8.x
- # which has input capture support. The sooner we can remove this patching code the better.
- cmd_utils.run(
- [
- "patch",
- "-d",
- "subprojects/libportal",
- "-p1",
- "-i",
- "static-lib.diff",
- ],
- print_cmd=True,
- check=False,
- )
- else:
- raise RuntimeError(f"Unknown subproject: {subproject}")
-
-
-def compile():
- cmd_utils.run([meson_venv_bin(), "compile", "-C", build_dir], print_cmd=True)
-
-
-def install():
- cmd = [meson_venv_bin(), "install", "-C", build_dir]
-
- has_sudo = cmd_utils.has_command("sudo")
- if has_sudo:
- cmd.insert(0, "sudo")
-
- cmd_utils.run(cmd, print_cmd=True)
diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp
index 628a82a44..0b36f83ca 100644
--- a/src/gui/src/MainWindow.cpp
+++ b/src/gui/src/MainWindow.cpp
@@ -542,13 +542,9 @@ void MainWindow::open()
void MainWindow::onCoreProcessStarting()
{
-
-#if defined(WINAPI_XWINDOWS) or defined(WINAPI_LIBEI)
if (deskflow::platform::isWayland()) {
m_WaylandWarnings.showOnce(this, m_CoreProcess.mode());
}
-#endif
-
saveSettings();
}
diff --git a/src/lib/config.h.in b/src/lib/config.h.in
index f966b4c6e..c14d04897 100644
--- a/src/lib/config.h.in
+++ b/src/lib/config.h.in
@@ -188,13 +188,4 @@
/* Define to `unsigned int` if does not define. */
#cmakedefine size_t @size_t@
-/* Define if libportal has xdp_session_connect_to_eis */
-#cmakedefine HAVE_LIBPORTAL_SESSION_CONNECT_TO_EIS @HAVE_LIBPORTAL_SESSION_CONNECT_TO_EIS@
-
-/* Define if libportal has xdp_portal_create_remote_desktop_session_full */
-#cmakedefine HAVE_LIBPORTAL_CREATE_REMOTE_DESKTOP_SESSION_FULL @HAVE_LIBPORTAL_CREATE_REMOTE_DESKTOP_SESSION_FULL@
-
-/* Define if libportal has input capture support */
-#cmakedefine HAVE_LIBPORTAL_INPUTCAPTURE @HAVE_LIBPORTAL_INPUTCAPTURE@
-
// clang-format on
diff --git a/src/lib/gui/CMakeLists.txt b/src/lib/gui/CMakeLists.txt
index e11d0841e..3112a11c0 100644
--- a/src/lib/gui/CMakeLists.txt
+++ b/src/lib/gui/CMakeLists.txt
@@ -44,6 +44,7 @@ add_library(${target} STATIC ${sources} ${ui_files} ${qrc_file})
target_link_libraries(
${target}
${DESKFLOW_GUI_HOOK_LIB}
+ platform
Qt6::Core
Qt6::Widgets
Qt6::Network)
diff --git a/src/lib/platform/CMakeLists.txt b/src/lib/platform/CMakeLists.txt
index f90c3682e..0506c2721 100644
--- a/src/lib/platform/CMakeLists.txt
+++ b/src/lib/platform/CMakeLists.txt
@@ -13,6 +13,13 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+if(UNIX AND NOT APPLE)
+ pkg_check_modules(LIBEI REQUIRED QUIET "libei-1.0 >= 1.3")
+ message(STATUS "libei version: ${LIBEI_VERSION}")
+
+ pkg_check_modules(LIBPORTAL REQUIRED QUIET "libportal >= 0.8")
+ message(STATUS "libportal version: ${LIBPORTAL_VERSION}")
+endif()
if(WIN32)
file(GLOB headers "MSWindows*.h")
@@ -68,16 +75,15 @@ add_library(platform STATIC ${sources})
target_link_libraries(platform client ${libs})
macro(link_wayland_libs)
+ target_compile_definitions(platform PUBLIC WINAPI_LIBEI WINAPI_LIBPORTAL HAVE_LIBPORTAL_INPUTCAPTURE)
+
target_link_libraries(platform ${LIBXKBCOMMON_LINK_LIBRARIES}
- ${GLIB2_LINK_LIBRARIES} ${LIBM_LIBRARIES})
+ ${GLIB2_LINK_LIBRARIES} ${LIBM_LIBRARIES}
+ ${LIBEI_LINK_LIBRARIES} ${LIBPORTAL_LINK_LIBRARIES}
+ )
- if(LIBEI_FOUND)
- target_link_libraries(platform ${LIBEI_LINK_LIBRARIES})
- endif()
+ target_include_directories(platform PUBLIC ${LIBEI_INCLUDE_DIRS} ${LIBPORTAL_INCLUDE_DIRS})
- if(LIBPORTAL_FOUND)
- target_link_libraries(platform ${LIBPORTAL_LINK_LIBRARIES})
- endif()
endmacro()
if(UNIX)
diff --git a/src/lib/platform/EiEventQueueBuffer.h b/src/lib/platform/EiEventQueueBuffer.h
index 1b9a9f733..8e3cf4820 100644
--- a/src/lib/platform/EiEventQueueBuffer.h
+++ b/src/lib/platform/EiEventQueueBuffer.h
@@ -18,8 +18,6 @@
#pragma once
-#include "config.h"
-
#include "base/IEventQueueBuffer.h"
#include "deskflow/IScreen.h"
#include "mt/Thread.h"
diff --git a/src/lib/platform/EiScreen.cpp b/src/lib/platform/EiScreen.cpp
index ae0630695..9ca8bca09 100644
--- a/src/lib/platform/EiScreen.cpp
+++ b/src/lib/platform/EiScreen.cpp
@@ -29,11 +29,8 @@
#include "deskflow/XScreen.h"
#include "platform/EiEventQueueBuffer.h"
#include "platform/EiKeyState.h"
-
-#if WINAPI_LIBPORTAL
#include "platform/PortalInputCapture.h"
#include "platform/PortalRemoteDesktop.h"
-#endif
#include
#include
@@ -70,21 +67,13 @@ EiScreen::EiScreen(bool is_primary, IEventQueue *events, bool use_portal)
new TMethodEventJob(this, &EiScreen::handle_connected_to_eis_event)
);
if (is_primary) {
-#if HAVE_LIBPORTAL_INPUTCAPTURE
portal_input_capture_ = new PortalInputCapture(this, events_);
-#else
- throw std::invalid_argument("missing libportal input capture support");
-#endif // HAVE_LIBPORTAL_INPUTCAPTURE
} else {
-#if WINAPI_LIBPORTAL
events_->adoptHandler(
events_->forEi().sessionClosed(), getEventTarget(),
new TMethodEventJob(this, &EiScreen::handle_portal_session_closed)
);
portal_remote_desktop_ = new PortalRemoteDesktop(this, events_);
-#else
- throw std::invalid_argument("missing libportal remote desktop support");
-#endif // WINAPI_LIBPORTAL
}
} else {
// Note: socket backend does not support reconnections
@@ -105,12 +94,8 @@ EiScreen::~EiScreen()
delete key_state_;
-#if WINAPI_LIBPORTAL
delete portal_remote_desktop_;
-#endif
-#if HAVE_LIBPORTAL_INPUTCAPTURE
delete portal_input_capture_;
-#endif
}
void EiScreen::handle_ei_log_event(ei *ei, ei_log_priority priority, const char *message, ei_log_context *context)
@@ -365,13 +350,10 @@ void EiScreen::enter()
ei_device_start_emulating(ei_abs_, sequence_number_);
fakeMouseMove(cursor_x_, cursor_y_);
}
- }
-#if HAVE_LIBPORTAL_INPUTCAPTURE
- else {
+ } else {
LOG_DEBUG("releasing input capture at x=%i y=%i", cursor_x_, cursor_y_);
portal_input_capture_->release(cursor_x_, cursor_y_);
}
-#endif
}
bool EiScreen::canLeave()
@@ -699,12 +681,9 @@ void EiScreen::on_motion_event(ei_event *event)
if (is_on_screen_) {
LOG_DEBUG("event: motion on primary x=%i y=%i)", cursor_x_, cursor_y_);
sendEvent(events_->forIPrimaryScreen().motionOnPrimary(), MotionInfo::alloc(cursor_x_, cursor_y_));
-
-#if HAVE_LIBPORTAL_INPUTCAPTURE
if (portal_input_capture_->is_active()) {
portal_input_capture_->release();
}
-#endif
} else {
buffer_dx += dx;
buffer_dy += dy;
diff --git a/src/lib/platform/EiScreen.h b/src/lib/platform/EiScreen.h
index 1d031a027..9edec8d80 100644
--- a/src/lib/platform/EiScreen.h
+++ b/src/lib/platform/EiScreen.h
@@ -18,7 +18,6 @@
#pragma once
-#include "config.h"
#include "deskflow/KeyMap.h"
#include "deskflow/PlatformScreen.h"
@@ -37,9 +36,7 @@ namespace deskflow {
class EiClipboard;
class EiKeyState;
class PortalRemoteDesktop;
-#if HAVE_LIBPORTAL_INPUTCAPTURE
class PortalInputCapture;
-#endif
//! Implementation of IPlatformScreen for X11
class EiScreen : public PlatformScreen
@@ -159,9 +156,7 @@ private:
mutable std::mutex mutex_;
PortalRemoteDesktop *portal_remote_desktop_ = nullptr;
-#if HAVE_LIBPORTAL_INPUTCAPTURE
PortalInputCapture *portal_input_capture_ = nullptr;
-#endif
struct HotKeyItem
{
diff --git a/src/lib/platform/PortalInputCapture.cpp b/src/lib/platform/PortalInputCapture.cpp
index 3101ac128..09f670a14 100644
--- a/src/lib/platform/PortalInputCapture.cpp
+++ b/src/lib/platform/PortalInputCapture.cpp
@@ -16,14 +16,10 @@
* along with this program. If not, see .
*/
-#include "config.h"
-
-#if HAVE_LIBPORTAL_INPUTCAPTURE
-
+#include "platform/PortalInputCapture.h"
#include "base/Event.h"
#include "base/Log.h"
#include "base/TMethodJob.h"
-#include "platform/PortalInputCapture.h"
#include // for EIS fd hack, remove
#include // for EIS fd hack, remove
@@ -395,5 +391,3 @@ void PortalInputCapture::glib_thread(void *)
}
} // namespace deskflow
-
-#endif
diff --git a/src/lib/platform/PortalInputCapture.h b/src/lib/platform/PortalInputCapture.h
index 3030cdb50..c9026fbf3 100644
--- a/src/lib/platform/PortalInputCapture.h
+++ b/src/lib/platform/PortalInputCapture.h
@@ -18,10 +18,6 @@
#pragma once
-#include "config.h"
-
-#if HAVE_LIBPORTAL_INPUTCAPTURE
-
#include "mt/Thread.h"
#include "platform/EiScreen.h"
@@ -104,5 +100,3 @@ private:
};
} // namespace deskflow
-
-#endif // HAVE_LIBPORTAL_INPUTCAPTURE
diff --git a/src/lib/platform/PortalRemoteDesktop.cpp b/src/lib/platform/PortalRemoteDesktop.cpp
index 4fbca8586..a0d8a3f5b 100644
--- a/src/lib/platform/PortalRemoteDesktop.cpp
+++ b/src/lib/platform/PortalRemoteDesktop.cpp
@@ -108,9 +108,7 @@ void PortalRemoteDesktop::cb_session_started(GObject *object, GAsyncResult *res)
// version in the impl.portal), i.e. you'll need an updated compositor on
// top of everything...
auto fd = -1;
-#if HAVE_LIBPORTAL_SESSION_CONNECT_TO_EIS
fd = xdp_session_connect_to_eis(session, &error);
-#endif
if (fd < 0) {
g_main_loop_quit(glib_main_loop_);
events_->addEvent(Event::kQuit);
@@ -159,17 +157,6 @@ void PortalRemoteDesktop::cb_init_remote_desktop_session(GObject *object, GAsync
);
}
-#if !defined(HAVE_LIBPORTAL_CREATE_REMOTE_DESKTOP_SESSION_FULL)
-static inline void xdp_portal_create_remote_desktop_session_full(
- XdpPortal *portal, XdpDeviceType devices, XdpOutputType outputs, XdpRemoteDesktopFlags flags,
- XdpCursorMode cursor_mode, XdpPersistMode _unused1, const char *_unused2, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer data
-)
-{
- xdp_portal_create_remote_desktop_session(portal, devices, outputs, flags, cursor_mode, cancellable, callback, data);
-}
-#endif
-
gboolean PortalRemoteDesktop::init_remote_desktop_session()
{
LOG_DEBUG("setting up remote desktop session with restore token %s", session_restore_token_);
diff --git a/src/lib/platform/PortalRemoteDesktop.h b/src/lib/platform/PortalRemoteDesktop.h
index 6dd098727..ec49683db 100644
--- a/src/lib/platform/PortalRemoteDesktop.h
+++ b/src/lib/platform/PortalRemoteDesktop.h
@@ -18,20 +18,12 @@
#pragma once
-#include "config.h"
-
#include "mt/Thread.h"
#include "platform/EiScreen.h"
#include
#include
-#if !HAVE_LIBPORTAL_OUTPUT_NONE
-// Added in libportal ad82a74 Jun 2022, not yet released in libportal 0.6
-// should be used as a patch on ≤ 0.6, and non-git
-#define XDP_OUTPUT_NONE (XdpOutputType)0
-#endif
-
namespace deskflow {
class PortalRemoteDesktop
diff --git a/subprojects/.gitignore b/subprojects/.gitignore
deleted file mode 100644
index bfb099b45..000000000
--- a/subprojects/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-# Ignore all files in the subprojects directory.
-*
-
-# Except for the wrap files.
-!.gitignore
-!*.wrap
-!packagefiles/*
-
-# Ignore wraps added by subprojects.
-gi-docgen.wrap
-munit.wrap
diff --git a/subprojects/libei.wrap b/subprojects/libei.wrap
deleted file mode 100644
index ccd0acb76..000000000
--- a/subprojects/libei.wrap
+++ /dev/null
@@ -1,3 +0,0 @@
-[wrap-git]
-url = https://gitlab.freedesktop.org/libinput/libei.git
-revision = main
diff --git a/subprojects/libportal.wrap b/subprojects/libportal.wrap
deleted file mode 100644
index 56aa671f2..000000000
--- a/subprojects/libportal.wrap
+++ /dev/null
@@ -1,4 +0,0 @@
-[wrap-git]
-url = https://github.com/flatpak/libportal.git
-revision = main
-patch_directory = libportal
diff --git a/subprojects/packagefiles/libportal/static-lib.diff b/subprojects/packagefiles/libportal/static-lib.diff
deleted file mode 100644
index 5e48ce48b..000000000
--- a/subprojects/packagefiles/libportal/static-lib.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/libportal/meson.build b/libportal/meson.build
-index 316bd9c..37a17f7 100644
---- a/libportal/meson.build
-+++ b/libportal/meson.build
-@@ -73,9 +73,8 @@ gio_unix_dep = dependency('gio-unix-2.0')
-
- install_headers(headers, subdir: 'libportal')
-
--libportal = library('portal',
-+libportal = static_library('portal',
- src,
-- version: version,
- include_directories: [top_inc, libportal_inc],
- install: true,
- dependencies: [gio_dep, gio_unix_dep],