Run scripts without .desktop files β’ Launch apps β’ Open websites
A powerful KDE Plasma 6 widget with native C++ command execution
Features β’ Installation β’ Usage β’ Documentation β’ Contributing
ActionPad is a highly customizable KDE Plasma 6 widget that puts your most-used scripts, applications, and websites at your fingertips. With a sleek design that follows your system theme, it provides instant access to your favorite actions with just one click.
Unlike other launcher widgets, ActionPad includes a native C++ command executor that lets you run shell scripts directly - no .desktop files required. This makes it perfect for developers and power users who want quick access to custom scripts without the hassle of creating and managing desktop entry files.
- β‘ No .desktop Files Needed - Run scripts directly with our C++ executor (unique feature!)
- π Lightning Fast - Execute scripts, launch apps, and open websites instantly
- π¨ Fully Customizable - Colors, icons, layouts, and sizes tailored to your needs
- ποΈ Theme Integration - Seamlessly blends with your KDE Plasma theme
- π± Flexible Layout - Grid, row, or column layouts that adapt to any screen
- π§ Powerful Actions - Run scripts with arguments, custom working directories, and terminal support
- π― Icon-Only Mode - Minimalist design with large, centered icons
- π 16 Color Presets - Quick color selection with visual feedback
-
Multiple Action Types
- Execute shell scripts and commands
- Launch applications
- Open URLs in your default browser
-
Advanced Script Execution
- Custom arguments support
- Working directory configuration
- Run in terminal option with output display
- Full command execution via C++ plugin
-
Visual Customization
- Custom button labels and tooltips
- System icon picker with 1000+ icons
- Custom icon file support (PNG, SVG, JPG)
- 16 color presets + manual color entry
- Icon-only mode with scalable icons
- Three button sizes (Small, Medium, Large)
-
Layout Options
- Grid layout with configurable columns
- Horizontal row layout
- Vertical column layout
- Adjustable spacing
- Dynamic sizing based on button count
-
Button Management
- Add unlimited buttons
- Edit any button property
- Reorder with Move Up/Down
- Delete buttons
- Persistent configuration
-
User Experience
- Drag-and-drop friendly interface
- Live icon preview in config
- Enhanced tooltips with action details
- Visual click feedback
- Theme-aware contrast colors
- KDE Plasma 6.0+
- Qt 6.0+
- CMake 3.16+
- C++ Compiler (GCC or Clang)
sudo dnf install cmake extra-cmake-modules qt6-qtbase-devel \
kf6-kcoreaddons-devel kf6-ki18n-devel kf6-kconfigwidgets-devel \
kf6-kiconthemes-devel plasma-workspace-develsudo apt install cmake extra-cmake-modules qt6-base-dev \
libkf6coreaddons-dev libkf6i18n-dev libkf6configwidgets-dev \
libkf6iconthemes-dev plasma-workspace-devsudo pacman -S cmake extra-cmake-modules qt6-base \
kf6-kcoreaddons kf6-ki18n kf6-kconfigwidgets \
kf6-kiconthemes plasma-workspace-
Clone the repository
git clone https://github.com/OlaProeis/ActionPad.git cd actionpad -
Build and install
./build-and-install.sh
Or manually:
mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr .. make -j$(nproc) sudo make install
-
Restart Plasma Shell
killall plasmashell && plasmashell &
-
Add the widget
- Right-click on your panel or desktop
- Select "Add Widgets"
- Search for "ActionPad"
- Drag it to your desired location
-
Add your first button
- Right-click the widget
- Select "Configure ActionPad"
- Click "Add New Button"
-
Configure the button
- Label: Enter button text (e.g., "Terminal")
- Tooltip: Enter hover text
- Action Type: Choose Script, Application, or URL
- Action Target: Enter the path/command/URL
- Icon: Pick from system icons or upload custom image
- Color: Choose from presets or enter custom color
-
Click "OK" to save
Execute shell scripts or commands:
# Example: Open system monitor
/usr/bin/konsole -e htop
# Example: Run custom script
/home/user/scripts/backup.sh
# With arguments
/home/user/scripts/deploy.sh --productionOptions:
- Arguments field for passing parameters
- Working directory for script execution
- Run in terminal checkbox for interactive scripts
Launch applications by name or .desktop file:
firefox
kate
/usr/share/applications/steam.desktopOpen websites in default browser:
https://github.com
tog.no
localhost:3000
Protocol (https://) is added automatically if not specified
-
Layout Type
- Grid: Buttons arranged in rows and columns
- Row: All buttons in a horizontal line
- Column: All buttons in a vertical line
-
Button Size
- Small: Compact buttons
- Medium: Standard size (default)
- Large: Prominent buttons
-
Spacing: Adjust pixel spacing between buttons
-
Grid Columns: Set number of columns (Grid layout only)
- Icon-Only Mode: Enable for a minimalist look with large, centered icons
- Color Contrast: Widget automatically adjusts text color for readability
- Keyboard Navigation: Tab through buttons, Enter to activate
- Panel vs Desktop: Widget adapts layout automatically
- Theme Integration: Widget colors update when you change KDE themes
Comprehensive documentation is available in the docs/ directory:
- User Guide - Detailed usage instructions
- Configuration - All configuration options explained
- Development - Build and development guide
- API Reference - QML API and C++ plugin documentation
- Troubleshooting - Common issues and solutions
- Examples - Real-world button configurations
We welcome contributions! Please see CONTRIBUTING.md for details.
git clone https://github.com/yourusername/shortcutwidget.git
cd shortcutwidget
mkdir build && cd build
cmake ..
makeSee DEVELOPMENT.md for detailed development instructions.
See CHANGELOG.md for version history and release notes.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Copyright (C) 2025 Your Name
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
- KDE Community for the amazing Plasma desktop
- Qt Project for the excellent framework
- All contributors and users
- π Bug Reports: GitHub Issues
- π‘ Feature Requests: GitHub Discussions
- π§ Contact: Create an issue on GitHub
Made with β€οΈ for the KDE community



