Add README.md

This commit is contained in:
Levi Neely 2026-07-22 19:09:51 +02:00
parent be18599c9b
commit 67a8e8df29
1 changed files with 68 additions and 0 deletions

68
README.md Normal file
View File

@ -0,0 +1,68 @@
# Sloppy Focus — KTextEditor Plugin for Kate
A KTextEditor plugin that brings focus-follows-mouse (sloppy focus) behavior to Kate's split views, tool views, terminals, and other panes. Hover over a pane to give it keyboard focus, just like sloppy focus in X11 window managers.
## Features
- Focus follows mouse across all Kate panes: editor splits, tool views, terminals, file browsers, etc.
- Configurable focus delay (0–5000 ms)
- Minimum stay time to prevent rapid focus bouncing
- Optional raise-on-focus
- Focus-stealing prevention:
- Ignores focus changes while modal dialogs are active
- Ignores focus changes when floating widgets (completion popups, tooltips) have focus
- Verifies mouse is still over the target pane before switching
- Full configuration page in Kate's settings (Settings → Configure Kate → Sloppy Focus)
## Requirements
- CMake ≥ 3.16
- Extra CMake Modules (ECM) ≥ 5.80
- Qt 6 + KDE Frameworks 6 (KF6), or Qt 5 + KDE Frameworks 5 (KF5)
- KTextEditor development headers
On Debian/Ubuntu (KF6):
```sh
sudo apt install cmake extra-cmake-modules libkf6texteditor-dev qt6-base-dev
```
On Arch Linux (KF6):
```sh
sudo pacman -S cmake extra-cmake-modules ktexteditor qt6-base
```
## Building
```sh
make
```
This creates a `build/` directory, runs CMake, and builds the plugin. The build system auto-detects KF6 or falls back to KF5.
## Installing
```sh
make install
```
This installs the plugin library to the appropriate KTextEditor plugin directory (typically `/usr/lib/qt6/plugins/kf6/ktexteditor/` for KF6).
After installing, restart Kate and enable the plugin in Settings → Configure Kate → Plugins → Sloppy Focus.
## Configuration
All settings are accessible via Settings → Configure Kate → Sloppy Focus:
| Setting | Default | Description |
|---------|---------|-------------|
| Focus delay | 150 ms | Time the mouse must hover before focus switches |
| Minimum stay time | 50 ms | Minimum time before another switch is allowed |
| Raise on focus | Off | Raise the view widget when it receives focus |
| Ignore dialogs | On | Disable sloppy focus while a modal dialog is active |
| Ignore floating widgets | On | Disable sloppy focus when popups/tooltips have focus |
## License
See the source files for license information.