https://github.com/abdxdev/context-menu-plugin-manager
This software manages context menu plugins to extend functionality in various directories. It allows dynamic addition and removal of context menu items using Python scripts. :add
https://github.com/abdxdev/context-menu-plugin-manager
Last synced: about 1 month ago
JSON representation
This software manages context menu plugins to extend functionality in various directories. It allows dynamic addition and removal of context menu items using Python scripts. :add
- Host: GitHub
- URL: https://github.com/abdxdev/context-menu-plugin-manager
- Owner: abdxdev
- License: bsd-3-clause
- Created: 2024-04-02T11:35:36.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-18T11:53:59.000Z (2 months ago)
- Last Synced: 2025-03-29T15:17:56.133Z (about 2 months ago)
- Language: Python
- Homepage:
- Size: 4.28 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Context Menu Plugin Manager


This project manages context menu plugins to extend functionality in various directories. It allows dynamic addition and removal of context menu items using Python scripts.
## Features
- **Plugin Development:** Easily create plugins with metadata and functionality.
- **Dynamic Menu Modification:** Add or remove context menu items on the fly.
- **Extensible:** Customize and extend functionality by creating new plugins.
- **Generate Plugin using AI:** Generate a plugin using AI to automate the process.
- **Drag and Drop:** Drag and drop files to add plugins to the context menu.
- **Configuration:** Configure plugins with parameters to customize behavior.
- **Customization:** Customize the appearance of the application with themes.## Installation
First make sure you have Python 3.13.1 or above installed. If not, you can download it from [here](https://www.python.org/downloads/).
1. Clone the repository:
```
git clone https://github.com/abdxdev/Context-Menu-Plugin-Manager.git
```2. Go inside the repository:
```
cd Context-Menu-Plugin-Manager
```3. Create a virtual environment
```
python -m venv .venv
```4. Activate the virtual environment
```
.venv\Scripts\activate
```5. Install the requirements
```
pip install -r requirements.txt
```6. Run the program
```
python src/app.py
```## Creating a Plugin
This is a template plugin to help you get started with creating your own plugins.
## Usage for Plugin Development
The `driver` function receives two arguments:
- `items`: A list of strings representing the selected folders/files.
- `params`: A dictionary containing the configuration parameters.You can access the configuration parameters in the 'Configure Plugin' tab.
## Example
```python
# The `driver` function is the entry point for the Python script.
# Only this line of code is required to create a plugin
def driver(items: list[str] = [], params: dict = {}):# Example code to print the items and params
print("Folders/Files:")
for item in items:
print(item)
print("Params:")
for key, value in params.items():
print(f"{key}: {value}")# Keep the console open by waiting for user input
input("Press Enter to exit")# Only here for testing purposes.
# This block is not executed when triggered as a plugin
if __name__ == "__main__":
params = {
"param1": "value1",
"param2": "value2",
}
driver(["file1.txt", "file2.txt"], params)```
## License
This project is licensed under the [BSD License](https://github.com/abdxdev/context-menu-plugin-manager/blob/main/LICENSE).
## Contributing
Contributions are welcome! Feel free to open issues or submit pull requests to improve this project.
## Credits
Big thanks to these awesome creators!
- [@Flet Dev Community](https://github.com/flet-dev) for the [`flet`](https://flet.dev/) - A framework based on flutter for creating desktop applications.
- [@saleguas](https://github.com/saleguas) for the [`context-menu`](https://github.com/saleguas/context_menu) - A library to customize the context menu.
- [@Wanna-Pizza](https://github.com/Wanna-Pizza) for the [`FletDropZone`](https://github.com/Wanna-Pizza/FletDropZone) - A drag and drop feature for `flet`.