# 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.