135 lines
5.0 KiB
Markdown
135 lines
5.0 KiB
Markdown
# BagheeraView
|
||
|
||
BagheeraView is an image viewer specifically designed for the KDE ecosystem. Built with **Python** and **PySide6**, it leverages Baloo to deliver a powerful, agile, and fluid metadata-based image management experience without abandoning classic folder management.
|
||
|
||
## 🚀 Key Features
|
||
|
||
- **Enhanced Baloo Search:** Blazing fast image retrieval using the KDE Baloo indexing framework, featuring advanced capabilities not natively available in Baloo, such as **folder recursive search** and results **text exclusion**.
|
||
|
||
- **Versatile Thumbnail Grid:** A fluid and responsive browser for large collections, offering both **Flat View**, several **Date View** modes, **Rating View** and **Folder View** modes.
|
||
|
||
- **Face & Pet Detection:** Integrated computer vision to detect faces and pets within your photos and assign names. Object and Landmark tags are supported to but without computer vision detection.
|
||
|
||
- **Metadata:** A basic viewer for **EXIF, IPTC, and XMP** data.
|
||
|
||
- **Tagging & Rating & Comments System:** Effortlessly manage tags, ratings and comments that integrate directly with your filesystem's extended attributes.
|
||
|
||
- **Smart State Persistence:** The application remembers your workflow. Your **last used sort order** and view settings are automatically saved and restored upon startup.
|
||
|
||
## 🛠 Technical Stack
|
||
|
||
- **Language:** Python 3
|
||
|
||
- **GUI Framework:** PySide6 (Qt for Python)
|
||
|
||
- **KDE Integration:** Baloo search and basic management
|
||
|
||
- **Metadata Handling:** Advanced image header manipulation to store faces, pets, objects and landmarks and support to file extended attributes
|
||
|
||
|
||
## 🌐 Internationalization (i18n)
|
||
|
||
BagheeraView is designed for a global audience with localized interface support. Initial supported languages include:
|
||
|
||
- **English** (Base development language)
|
||
|
||
- **Galician**
|
||
|
||
- **Spanish**
|
||
|
||
> **Note:** Following internal configuration standards, all source code labels and developer logs are maintained in English for technical consistency.
|
||
|
||
## ⚙️ Configuration & Persistence
|
||
|
||
BagheeraView is built for workflow continuity. The application stores the user's environment state in the local configuration:
|
||
|
||
- **Restore Last Layout:** Last layout and preferences are automatically saved and restored every time you launch it.
|
||
|
||
- **Keyboard configuration:** All hotkeys can be parametriced by the user.
|
||
|
||
- **Interface Language:** The application automatically detects the system locale and applies the corresponding translation on startup or user can decide main language.
|
||
|
||
|
||
## 📥 Installation (Development)
|
||
|
||
Ensure you have at least Python 3.13, the necessary PySide6 dependencies and KDE development headers for Baloo installed on your system. For best integration install at least PySide6 in your system but for better results install all required libraries if they are available in your distro.
|
||
|
||
Bash
|
||
|
||
```
|
||
# Clone the repository
|
||
git clone https://git.aynoa.net/ignacio/BagheeraView.git
|
||
cd BagheeraView
|
||
|
||
# Install dependencies
|
||
pip install -r requirements.txt
|
||
|
||
# Run the application
|
||
python bagheeraview.py
|
||
```
|
||
|
||
BagheeraSearch tool and librery are available at https://git.aynoa.net/ignacio/BagheeraSearch.git
|
||
|
||
|
||
## 📥 Installation (Production with BagheeraSearch)
|
||
|
||
Ensure you have at least Python 3.13, the necessary PySide6 dependencies and KDE development headers for Baloo installed on your system. For best integration install at least PySide6 in your system but for better results install all required libraries if they are available in your distro.
|
||
|
||
Bash
|
||
|
||
```
|
||
# Clone the repository
|
||
cd /tmp
|
||
git clone https://git.aynoa.net/ignacio/BagheeraSearch.git
|
||
git clone https://git.aynoa.net/ignacio/BagheeraView.git
|
||
|
||
mkdir <a path you like/bagheeraview>
|
||
cd <a path you like/bagheeraview>
|
||
python -m venv --system-site-packages .venv
|
||
source .venv/bin/activate
|
||
|
||
# Install dependencies
|
||
pip install . /tmp/BagheeraSearch
|
||
pip install . /tmp/BagheeraView
|
||
|
||
# Run the application
|
||
python bagheeraview.py
|
||
```
|
||
|
||
## 📥 Installation (Production without BagheeraSearch)
|
||
|
||
Ensure you have at least Python 3.13, the necessary PySide6 dependencies and KDE development headers for Baloo installed on your system. For best integration install at least PySide6 in your system but for better results install all required libraries if they are available in your distro.
|
||
|
||
Bash
|
||
|
||
```
|
||
# Clone the repository
|
||
cd /tmp
|
||
git clone https://git.aynoa.net/ignacio/BagheeraView.git
|
||
|
||
mkdir <a path you like/bagheeraview>
|
||
cd <a path you like/bagheeraview>
|
||
python -m venv --system-site-packages .venv
|
||
source .venv/bin/activate
|
||
|
||
# Install dependencies
|
||
pip install . /tmp/BagheeraView
|
||
|
||
# Run the application
|
||
python bagheeraview.py
|
||
```
|
||
|
||
## 🤝 Contributing
|
||
|
||
We follow an **English-first policy** for the codebase and documentation.
|
||
|
||
1. **Fork** the project.
|
||
|
||
2. Create your **Feature Branch** (`git checkout -b feature/AmazingFeature`).
|
||
|
||
3. **Commit** your changes (`git commit -m 'Add some AmazingFeature'`).
|
||
|
||
4. **Push** to the branch (`git push origin feature/AmazingFeature`).
|
||
|
||
5. Open a **Pull Request**.
|