feat: add hypr-screen-mirror (#66)

* feat(hypr-screen-mirror): setup plugin

* feat(hypr-screen-mirror): added socat watch on hyprland socket for monitor change

* feat(hypr-screen-mirror): added hyprctl commands for starting and stopping mirroring

* fix(hypr-screen-mirror): check if a mirror is active from monitor output during monitor update

* doc(hypr-screen-mirror): plugin readme and image

* fix(hypr-screen-mirror): issues from review

* fix(hypr-screen-mirror): separate observed state from mirror actions

---------

Co-authored-by: Lemmy <studio@quadbyte.net>
This commit is contained in:
ProfiDev
2026-07-21 23:57:54 -04:00
committed by GitHub
co-authored by Lemmy
parent 58b6c81f09
commit 8a3bb49fdb
7 changed files with 398 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
id = "profidev/hypr-screen-mirror"
name = "Hypr-Screen-Mirror"
version = "0.1.0"
plugin_api = 5
author = "profidev"
license = "MIT"
dependencies = ["hyprctl", "socat"]
tags = ["utility", "hyprland"]
icon = "screen-share"
description = "A plugin to quickly enable and disable screen mirroring in Hyprland."
[[widget]]
id = "widget"
entry = "widget.luau"
[[widget.setting]]
key = "glyph"
type = "glyph"
label_key = "widget.glyph.label"
description_key = "widget.glyph.description"
default = "screen-share"
[[panel]]
id = "panel"
entry = "panel.luau"
width = 300
height = 265
placement = "floating"
position = "center"
[[service]]
id = "service"
entry = "service.luau"