diff --git a/mangowm-keymode/README.md b/mangowm-keymode/README.md new file mode 100644 index 0000000..8a62939 --- /dev/null +++ b/mangowm-keymode/README.md @@ -0,0 +1,3 @@ +# mangowm-keymode +![mangowm keymode thumbnail](thumbnail.webp) +**Mangowm Keymode** is a bar widget plugin written for Noctalia (v5) that displays the current keymode from window manager [MANGOWM](https://mangowm.github.io/). It also notifies you when the keymode changes. Notification and bar text are configurable and can be disabled. \ No newline at end of file diff --git a/mangowm-keymode/keymode.luau b/mangowm-keymode/keymode.luau new file mode 100644 index 0000000..1ca2958 --- /dev/null +++ b/mangowm-keymode/keymode.luau @@ -0,0 +1,30 @@ +local showText = barWidget.getConfig("show_text") +local notifyChange = barWidget.getConfig("notify_change") + +local currentKeymode = "default" + +noctalia.runStream("mmsg watch keymode", function(line) + local data = noctalia.json.decode(line) + if data and data.keymode then + if currentKeymode ~= data.keymode then + currentKeymode = data.keymode + if notifyChange then + noctalia.notify("Keymode changed", currentKeymode) + end + end + end +end) + +function update() + noctalia.setUpdateInterval(1000) + barWidget.setGlyph("keyboard") + if showText then + barWidget.setText(currentKeymode) + else + barWidget.setText("") + end +end + +function onClick() + noctalia.notify("Keymode", currentKeymode) +end diff --git a/mangowm-keymode/plugin.toml b/mangowm-keymode/plugin.toml new file mode 100644 index 0000000..c8f428c --- /dev/null +++ b/mangowm-keymode/plugin.toml @@ -0,0 +1,27 @@ +id = "gambled23/mangowm-keymode" +name = "Mangowm Keymode" +version = "1.0.0" +min_noctalia = "5.0.0" +author = "gambled23" +license = "MIT" +dependencies = ["mmsg"] +icon = "keyboard" +deprecated = false +description = "Mangowm keymode notifier" +tags = ["bar", "mangowc"] + +[[widget]] +id = "mangowm-keymode" +entry = "keymode.luau" + + [[widget.setting]] + key = "show_text" + type = "bool" + label_key = "settings.show_text.label" + default = true + + [[widget.setting]] + key = "notify_change" + type = "bool" + label_key = "settings.notify_change.label" + default = true diff --git a/mangowm-keymode/thumbnail.webp b/mangowm-keymode/thumbnail.webp new file mode 100644 index 0000000..890db85 Binary files /dev/null and b/mangowm-keymode/thumbnail.webp differ diff --git a/mangowm-keymode/translations/en.json b/mangowm-keymode/translations/en.json new file mode 100644 index 0000000..96c7ad5 --- /dev/null +++ b/mangowm-keymode/translations/en.json @@ -0,0 +1,4 @@ +{ + "settings.show_text.label": "Show text on bar", + "settings.notify_change.label": "Notify change" +}