Keep keyboard led when turning on global hotkeys, move files

This commit is contained in:
dec05eba
2025-05-03 12:03:43 +02:00
parent 180a3b73db
commit d08ea69277
18 changed files with 37 additions and 33 deletions

View File

@@ -0,0 +1,23 @@
#pragma once
#include <optional>
#include <string>
#include <mglpp/system/vec.hpp>
namespace gsr {
struct CursorInfo {
mgl::vec2i position;
std::string monitor_name;
};
class CursorTracker {
public:
CursorTracker() = default;
CursorTracker(const CursorTracker&) = delete;
CursorTracker& operator=(const CursorTracker&) = delete;
virtual ~CursorTracker() = default;
virtual void update() = 0;
virtual std::optional<CursorInfo> get_latest_cursor_info() = 0;
};
}

View File

@@ -0,0 +1,43 @@
#pragma once
#include "CursorTracker.hpp"
#include <stdint.h>
#include <vector>
struct wl_display;
struct wl_registry;
struct wl_output;
struct zxdg_output_manager_v1;
struct zxdg_output_v1;
namespace gsr {
struct WaylandOutput {
uint32_t wl_name;
struct wl_output *output;
struct zxdg_output_v1 *xdg_output;
mgl::vec2i pos;
mgl::vec2i size;
int32_t transform;
std::string name;
};
class CursorTrackerWayland : public CursorTracker {
public:
CursorTrackerWayland(const char *card_path);
CursorTrackerWayland(const CursorTrackerWayland&) = delete;
CursorTrackerWayland& operator=(const CursorTrackerWayland&) = delete;
~CursorTrackerWayland();
void update() override;
std::optional<CursorInfo> get_latest_cursor_info() override;
std::vector<WaylandOutput> monitors;
struct zxdg_output_manager_v1 *xdg_output_manager = nullptr;
private:
void set_monitor_outputs_from_xdg_output(struct wl_display *dpy);
private:
int drm_fd = -1;
mgl::vec2i latest_cursor_position; // Position of the cursor within the monitor
int latest_crtc_id = -1;
};
}

View File

@@ -0,0 +1,20 @@
#pragma once
#include "CursorTracker.hpp"
typedef struct _XDisplay Display;
namespace gsr {
class CursorTrackerX11 : public CursorTracker {
public:
CursorTrackerX11(Display *dpy);
CursorTrackerX11(const CursorTrackerX11&) = delete;
CursorTrackerX11& operator=(const CursorTrackerX11&) = delete;
~CursorTrackerX11() = default;
void update() override {}
std::optional<CursorInfo> get_latest_cursor_info() override;
private:
Display *dpy = nullptr;
};
}