From 9dfa9b49c59553170627de80c1b286ee62384f32 Mon Sep 17 00:00:00 2001 From: Bohdan Bobrowski Date: Wed, 16 Oct 2024 20:05:38 +0200 Subject: [PATCH] Documentation and release v0.1 --- README.md | 54 ++++++++++++------ ...gikam_screensaver_configuration_window.jpg | Bin 0 -> 46144 bytes pyproject.toml | 4 -- 3 files changed, 36 insertions(+), 22 deletions(-) create mode 100644 assets/digikam_screensaver_configuration_window.jpg diff --git a/README.md b/README.md index 5942d7c..7f33331 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,55 @@ # DigiKam Screensaver -Windows screensaver, from pictures loaded out from DigiKam database in Python -## Plan for implementation +[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/bohdanbobrowski/digikam_screensaver/graphs/commit-activity) [![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/) ![GitHub all releases](https://img.shields.io/github/downloads/bohdanbobrowski/digikam_screensaver/total) ![GitHub release (with filter)](https://img.shields.io/github/v/release/bohdanbobrowski/digikam_screensaver) ![GitHub Release Date - Published_At](https://img.shields.io/github/release-date/bohdanbobrowski/digikam_screensaver) -### "Redneck" version +Windows screensaver, from pictures loaded out from DigiKam database in Python. -To start with, I prepared a simple script that only copies the specified number of starred images from the digiKam database (sqlite only). Such a prepared set can be displayed in one of the ready-made screen savers for Windows. +As for now - this is just for Windows. -Usage (after installing this package in [*virtual*] environment): +## Features - digikam_screensaver_copy_pictures +- Takes random starred photos from digikam4.db SQLite databaser file and shows on your beloved window screen. +- Some configuration is needed. +- Database is opened in read-only mode! +- Pressing will (obviously) turn off screen saver, and open given picture in associated app. -### Real screensaver +## What does not work -And this is what I plan to implement: +- preview is displayed in window instead of in dedicated screen. -- a fairly simple slide show, using one of the Python libraries -- possible simple configuration -- building the exe file with pyinstaller +## Dev environment -Most of features already works. After installing from sources you can: +This will work on Windows cmd: - digikam_screensaver /c + git clone git@github.com:bohdanbobrowski/digikam_screensaver.git + cd digikam_screensaver + python -m venv venv + venv\Scripts\activate + pip install -e '.[dev]' -And then to test screensaver: +Run configuration windows first: - digikam_screensaver /s + python digikam_screensaver/screen_saver.py /c -To build win32 exe: +It should look like this: - python digikam_screensaver_build.py +![digikam_screensaver_configuration_window.jpg](assets%2Fdigikam_screensaver_configuration_window.jpg) -**Additional goal:** to answer the question whether this is even possible using Python? Will such a slideshow be efficient, and is it possible to add some simple animation to the displayed photos? +Then, to test how does it work just type: + + python digikam_screensaver/screen_saver.py /s + +Preview mode can be reached by typing: + + python digikam_screensaver/screen_saver.py /c + +### Building own *.scr + +If all required stuff is installed in system, this command should make the job: + + python digikam_digikam_screensaver_build.py + +You'll find exe in `.\dist` folder - just rename it and install. ## Documentation and inspiration diff --git a/assets/digikam_screensaver_configuration_window.jpg b/assets/digikam_screensaver_configuration_window.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ae693467c0539ef4190ed40b793816b5db187208 GIT binary patch literal 46144 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 literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index 93a3d48..14ce150 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,10 +39,6 @@ dev = [ "pyinstaller", ] -[project.scripts] -digikam_screensaver = "digikam_screensaver.screen_saver:screen_saver" -digikam_screensaver_copy_pictures = "digikam_screensaver.copy_pictures:copy_pictures" - [tool.setuptools] packages = ["digikam_screensaver"]