Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -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.

<!-- LINK LABELS -->
[gitify-repo]: https://github.com/gitify-app/gitify
24 changes: 8 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/):

Expand All @@ -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:

Expand All @@ -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:

Expand All @@ -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
Loading