kate-sloppyfocus/README.md

69 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
This project is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later). See [LICENSE](LICENSE) for the full text.