Добавляем свои команды в контекстное меню без боли
Это архивный репозиторий и может быть устаревшим.
Представьте: вы часто выполняете однотипные действия с файлами — конвертируете картинки, запускаете скрипты или копируете пути. Каждый раз открывать терминал или писать скрипты утомительно. А что если добавить нужные действия прямо в контекстное меню? Библиотека context_menu делает это буквально в несколько строк кода на Python.
Что умеет context_menu
Эта библиотека позволяет:
- Добавлять свои пункты в контекстное меню для файлов, папок и рабочего стола
- Запускать Python-функции или shell-команды по клику
- Создавать многоуровневые (вложенные) меню
- Работать на Windows 7-11 и Linux (через Nautilus)
![]()
Как это работает
Установка проще некуда:
pip install context_menu
А вот пример добавления простой команды, которая выводит "Hello" при клике на файл:
from context_menu import menus
fc = menus.FastCommand('Приветствие', type='FILES', command='echo Hello')
fc.compile()
После запуска этого скрипта в контекстном меню файлов появится новый пункт "Приветствие".
Более сложные сценарии
Библиотека поддерживает вызов Python-функций с передачей параметров. Например:
def process_files(filenames, params):
print(f"Обрабатываю {len(filenames)} файлов")
for file in filenames:
print(file)
if __name__ == '__main__':
from context_menu import menus
cm = menus.ContextMenu('Меню обработки', type='FILES')
cm.add_items([
menus.ContextCommand('Показать информацию', python=process_files)
])
cm.compile()
Можно создавать вложенные меню и даже передавать параметры в команды:
cm = menus.ContextMenu('Главное меню', type='FILES')
submenu = menus.ContextMenu('Подменю')
submenu.add_items([
menus.ContextCommand('Команда 1', command='echo 1'),
menus.ContextCommand('Команда 2', command='echo 2')
])
cm.add_items([submenu])
cm.compile()
Полезные фишки
- Фильтрация по типам файлов — можно сделать, чтобы команда появлялась только для .txt файлов
- Специальные переменные — например, можно получить путь к выбранному файлу через
?в команде - Удаление меню — если команда больше не нужна, её легко убрать
Где это пригодится
- Автоматизация рутинных задач с файлами
- Быстрый доступ к часто используемым скриптам
- Создание собственных инструментов для работы с файлами
- Упрощение рабочих процессов для менее технических пользователей
context_menu — это простой и элегантный способ расширить стандартное контекстное меню под свои нужды. Библиотека особенно полезна:
- Разработчикам, которые хотят ускорить свой workflow
- Администраторам, создающим удобные инструменты для коллег
- Всем, кто работает с большим количеством файлов
Попробуйте — возможно, эта библиотека станет вашим новым любимым инструментом!
Совет: Посмотрите примеры использования и документацию для более сложных сценариев.
