Version: 1.0 (2025-06-02)
ScreenMother represents a sophisticated yet user-friendly Python-based application, meticulously developed to transform how you capture and manage screenshots in Windows. This tool is built with a core philosophy that balances speed, simplicity, and powerful customization, making it an indispensable resource for professional and casual users alike. ScreenMother is optimized for discrete operation directly from the system tray, ensuring immediate availability without compromising system performance or disrupting your workflow. With a single right-click on its icon, a comprehensive and intuitive menu unfolds. This menu is the gateway to a rich palette of configurable features, designed to give you complete control over the screenshot process – from choosing image formats and storage locations to advanced options like watermarks and custom filenames. ScreenMother aims to be more than just a utility; it is a reliable partner that simplifies and streamlines your daily work with screen captures, while continuously evolving with an eye toward future innovations and expanded functionality.
- 💻 System Tray Integration: Runs silently in the background and is always accessible via an icon in the system tray.
- ⌨️ Global Hotkeys (Implicit):
- PrintScreen: Captures a screenshot of the active monitor (where the mouse cursor is located).
- 🖱️ Customizable Menu: All settings and functions are accessed via a clear right-click menu on the system tray icon.
Via the right-click menu, you can:
- Enable/Disable Screenshots (✓/✗): Toggle screenshot capture on or off completely.
- Clipboard Copying (✓/✗): Choose whether captured screenshots should be automatically copied to the clipboard.
- Sound Notification (✓/✗): Get a short sound signal when a screenshot is taken.
- Image Format (PNG/JPG): Switch between saving screenshots as
.pngor.jpg(with 90% quality for JPG). - Start Minimized (✓/✗): Choose if the app should start minimized to the system tray (default is Yes).
- Watermark (✓/✗):
- Enable or disable a text-based watermark.
- Change Watermark Text: Customize the text used for the watermark (default: "Screenshot"). The watermark is drawn in the bottom right of the image with white text and a black outline.
- Change Screenshots Directory: Specify a custom folder where all screenshots should be saved.
- Open Last Screenshot: Quickly opens the most recently taken screenshot in the default image viewer.
- Open Screenshots Folder: Opens the folder where screenshots are saved.
- Change Filename Prefix: Customize the prefix for your screenshot filenames (default: "image"). Filenames are generated as
prefix_fullscreen_YYYY-MM-DD_HH-MM-SS-mmm.format. - Exit: Shuts down the application and its background processes.
- Programming Language: Python 🐍
- Main Libraries:
pystray: For system tray icon and menu.pynput: For global keyboard and mouse listening.mss: For fast screenshot capture.Pillow (PIL): For image processing (icons, watermark, saving formats).PySide6: For dialog boxes (change path, filename prefix, watermark text).pywin32(win32api,win32gui,win32con,win32clipboard,winsound): For Windows-specific functions.configparser: For saving and loading user settings.
- Configuration File: User settings are saved in
%APPDATA%\ScreenMotherApp\config.ini. - Icons: Uses
media/icon.pngfor the system tray andmedia/load_icon.pngfor visual feedback (converted to.icowhen packaging for.exe).
- Clone the repository (optional):
git clone <repository-url> cd ScreenMother
- Install dependencies:
Ensure you have Python installed. Then run:
pip install -r requirements.txt
- Run the application:
python main.py
A ScreenMother.spec file is provided for building an executable .exe file using PyInstaller:
pyinstaller ScreenMother.specThis will create an executable file in the dist/ScreenMother folder.
Here are some ideas for features that could be implemented in the future:
- ✍️ Improved Image Editor:
- More advanced drawing tools (arrows, text, highlights).
- More color options and thicknesses for drawing tools.
- Ability to undo/redo editing steps.
- Image rotation and flipping.
- ⏳ Delayed Screenshot: Option to set a timer before the screenshot is taken (e.g., 3, 5, 10 seconds).
- 🖱️ Region Selection: Function to select a rectangular area on the screen to capture using the mouse.
- 📜 Scrolling Screenshot: Capture the entire content of a scrollable window (e.g., a long webpage). (Complex)
- ☁️ Direct Upload: Option to directly upload the screenshot to an image-sharing service (e.g., Imgur) and copy the link to the clipboard.
- ⌨️ Customizable Hotkeys: Allow the user to define their own key combinations for different screenshot options.
- 🎨 Themes/Appearance: Ability to customize the appearance of menus or dialog boxes (light/dark theme).
- 📊 Usage Statistics: Simple (optional and local) statistics on how many screenshots have been taken.
- 🌐 Multi-language Support: Add support for more languages in the interface.
- 🧩 Plugin System: Ability to extend functionality with plugins. (Very advanced)
- 🖼️ Preview in Notification: Show a small thumbnail of the screenshot in a Windows notification.
Contributions are welcome! If you have suggestions for improvements or want to report bugs, please create an "Issue" in this repository.
Thank you for using ScreenMother! 🎉
