diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..bc5e84c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,22 @@ +# Contributing to Gitify for KDE Plasma + +Thanks for your interest in contributing to Gitify for KDE Plasma! + +This repository holds the KWin script only. See the [README](README.md) for what +it does and how to install it, and [Gitify][gitify-repo] for the app itself. + +## 🛠️ Development + +```sh +npm test +npm run bundle +``` + +Tests run the same script in a JavaScript VM with compositor events and cover panel placement, display boundaries, resizing, repeated opens, and window filtering. + +With Gitify installed, run `npm run test:live` inside a Plasma Wayland session. This needs Node 24, Python 3, and PyGObject, provided by `python-gobject` on Arch. It launches Gitify with a temporary profile, measures the window through KWin, and checks placement, resizing, and tray hide/reopen. It tests the installed script if enabled; otherwise, it temporarily loads this checkout's script. It unloads its temporary script and closes the test app when finished. + +Building the `.kwinscript` bundle requires Python 3. The bundle contains only the metadata and JavaScript; users do not need Node or Python to run the installed script. + + +[gitify-repo]: https://github.com/gitify-app/gitify diff --git a/README.md b/README.md index 2650737..4420806 100644 --- a/README.md +++ b/README.md @@ -10,13 +10,13 @@ The script supports horizontal and vertical panels, floating and auto-hide panel KWin does not expose individual system-tray icon rectangles to scripts. The script therefore uses the pointer position at the panel when Gitify opens, rather than reading private Plasma widget internals. Icons opened from the tray overflow and startup opens use the remembered position or panel fallback. -## Install +## 🚀 Install Requires KDE Plasma 6 on Wayland and Gitify 7.8 or newer. Tested with Plasma 6.7.5 and Gitify 7.8.0. Keep Gitify's **Use X11 backend** setting off. Install Gitify first. On Arch Linux and derivatives, use [`gitify-bin` from the AUR](https://aur.archlinux.org/packages/gitify-bin). For other distributions, use a [Gitify release](https://github.com/gitify-app/gitify/releases). -### From the KDE Store +### 🛍️ From the KDE Store Get [Gitify for KDE Plasma on the KDE Store](https://store.kde.org/p/2371508/): @@ -28,7 +28,7 @@ You can also download `gitify.kwinscript` from the Store page and import it with Click Gitify's tray icon to check the placement. -### From source +### 🧰 From source Clone this repository and run the installer from your Plasma session: @@ -44,7 +44,7 @@ To update, run `git pull --ff-only` in this checkout and rerun `bash scripts/ins Alternatively, run `npm run bundle` and import `dist/gitify.kwinscript` through **System Settings → Window Management → KWin Scripts → Install from File**. Enable Gitify and apply. -### Disable or uninstall +### 🚫 Disable or uninstall To disable, uncheck Gitify in KWin Scripts. To uninstall: @@ -54,19 +54,11 @@ qdbus6 org.kde.KWin /Scripting org.kde.kwin.Scripting.unloadScript gitify kpackagetool6 --type KWin/Script --remove gitify ``` -## Development +## 🤝 Contributing -```sh -npm test -npm run bundle -``` - -Tests run the same script in a JavaScript VM with compositor events and cover panel placement, display boundaries, resizing, repeated opens, and window filtering. - -With Gitify installed, run `npm run test:live` inside a Plasma Wayland session. This needs Node 24, Python 3, and PyGObject, provided by `python-gobject` on Arch. It launches Gitify with a temporary profile, measures the window through KWin, and checks placement, resizing, and tray hide/reopen. It tests the installed script if enabled; otherwise, it temporarily loads this checkout's script. It unloads its temporary script and closes the test app when finished. - -Building the `.kwinscript` bundle requires Python 3. The bundle contains only the metadata and JavaScript; users do not need Node or Python to run the installed script. +See [CONTRIBUTING.md](CONTRIBUTING.md) for development, testing, and +release instructions. -## License +## 📄 License MIT