A minimal, heavily modified version of the KDE Plasma Task Manager that provides focused application filtering. Shows only specified applications in the taskbar, with always-visible close buttons and clean defaults.
tutorial.webm
This widget is based on the KDE Plasma Task Manager by Eike Hein, but has been heavily modified to create a minimal, focused taskbar that filters applications. Key modifications include:
- Application filtering: Show only specified apps instead of all open windows
- Always-visible close buttons: Quick window closing without hover
- Clean defaults: No default launchers, starts showing all apps
- Simplified configuration: Removed complex grouping and visual options
- Streamlined UI: Minimal settings focused on filtering
The goal is to provide a distraction-free taskbar that shows only the applications you care about.
-
Clone the repository:
git clone https://github.com/burninc0de/kde-filtered-taskbar.git cd kde-filtered-taskbar -
Run the installer:
chmod +x install.sh # Make script executable (if needed) ./install.sh
This will automatically install the widget and restart Plasma.
- Copy the
org.kde.plasma.filtered.taskbarfolder to~/.local/share/plasma/plasmoids/ - Run
plasmapkg2 -i org.kde.plasma.filtered.taskbaror restart Plasma - Add the "Filtered Taskbar" widget to your panel
Compatibility shim (KDE 6.6)
- Why: KDE Plasma 6.6 changed the layout of the task manager QML modules and removed/renamed some private QML types the widget relies on.
- What we do: the installer will automatically detect whether your system provides the required private Task Manager QML module. If it does not, the installer writes a small compatibility shim into the installed plasmoid (under
contents/ui/TaskManagerApplet/) that implements the minimal API the widget needs so users don't have to build or install additional system libraries. - Behavior: if the real system module is available, the installer will switch the installed QML to import it and remove the shim; otherwise the shim remains so the widget works out-of-the-box.
- Safety: the shim is user-local (installed under
~/.local) and does not change system files or require sudo.
- Tab-based interface: Switch between application windows using tabs
- Compact mode: Shows icon + count when many windows are open
- Configurable filtering: Choose which applications to display
- Window detection: Automatically detects configured application windows
- Keyboard shortcuts: Use Meta+Tab to cycle through windows
- Close buttons: Close windows directly from the widget
This widget supports configurable application filtering to show only specific applications in the task bar.
Right-click the widget → "Configure Filtered Taskbar" → "Applications" tab:
- Allowed Applications: Enter application IDs or names separated by commas
- Leave empty to show all applications (default behavior)
- Examples:
code- Show only VSCodefirefox,chromium- Show only web browserscode,firefox,zed,kitty- Show development applications
The widget filters applications using multiple detection methods:
function isApplicationAllowed() {
// If no allowed applications configured, show all
if (!Plasmoid.configuration.allowedApplications ||
Plasmoid.configuration.allowedApplications.length === 0) {
return true;
}
// Parse comma-separated list and check each application
const allowedApps = Plasmoid.configuration.allowedApplications
.split(',')
.map(app => app.trim())
.filter(app => app.length > 0);
for (const allowedApp of allowedApps) {
// Check app ID exact match
if (allowedApp.toLowerCase() === appId.toLowerCase()) return true;
// Check app ID contains allowed app
if (appId.toLowerCase().indexOf(allowedApp.toLowerCase()) !== -1) return true;
// Check app name contains allowed app
if (appName.toLowerCase().indexOf(allowedApp.toLowerCase()) !== -1) return true;
}
return false;
}
// Apply filtering
visible: model.IsLauncher || (model.IsWindow && isApplicationAllowed())| Application | ID | Example Usage |
|---|---|---|
| VSCode | code |
code |
| Firefox | firefox |
firefox,chromium |
| Chrome | google-chrome |
google-chrome |
| Kitty Terminal | kitty |
kitty,konsole |
| Zed Editor | zed |
zed |
| Dolphin | org.kde.dolphin |
org.kde.dolphin |
Right-click the widget and select "Configure Filtered Taskbar" to access settings:
- Applications: Configure which applications to display
- Allowed Applications: Comma-separated list of app IDs/names
- Leave empty to show all applications
- Appearance: Tab width, close button visibility, compact mode threshold
- Behavior: Auto-restore, middle-click action
- Shortcuts: Customize keyboard shortcuts
This widget uses:
- Qt 6.6+ and QML
- KDE Plasma 6 Framework
- KWin scripting API for window management
- Plasma Framework for integration
The widget consists of:
metadata.json: Widget metadatacontents/ui/main.qml: Main UIcontents/ui/Task.qml: Individual task component with filtering logiccontents/ui/ConfigApplications.qml: Application filtering configuration UIcontents/config/main.xml: Configuration schema including allowedApplicationscontents/config/config.qml: Configuration tabs structure
- Current implementation uses polling for window detection
- D-Bus integration with KWin script needs refinement
- Some features from the specification are not yet implemented
- Real-time window monitoring via KWin signals
- Session persistence and restoration
- Enhanced keyboard shortcuts
- Multi-monitor support
- Unsaved changes indicators
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly on KDE Plasma 6
- Submit a pull request
This project is licensed under the GNU General Public License v2.0 or later - see the LICENSE file for details.
- Based on the KDE Plasma Task Manager
- Thanks to the KDE community for the excellent Plasma framework