Files
f0ckm-uploader/README.md

154 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# f0ckm Uploader
A modern, high-contrast **KDE Plasma System Tray Uploader** and desktop integration suite for [f0ckm](https://git.lat/kibi/f0ckm). Features real-time digit progress icons, single-instance IPC, Dolphin context menus, Spectacle screenshot capture, and smart preview notifications.
---
## Features
- **System Tray App with Live Progress**: Dynamic system tray icon displaying live upload percentage (`0``99`%).
- **Single-Instance IPC Architecture**: 100% Python-based daemon (`PySide6`). Multiple invocations (hotkeys, Dolphin context menu) delegate directly to the running tray instance without spawning duplicates.
- **Dolphin Context Menu Integration**: Right-click any file in Dolphin -> **Actions** -> **Upload to f0ckm**.
- **Spectacle Screenshot Capture**: Region capture integration via hotkeys or menu trigger (`f0ckm-uploader-gui --spectacle`).
- **Smart Notification Previews**:
- **Images**: Fast native scaling via PySide6.
- **Videos** (`.mp4`, `.webm`, etc.): Automatic frame extraction at `00:00:01` via `ffmpeg`.
- **Other Files**: Sleek placeholder file badges showing the file extension.
- **Clipboard & Settings GUI**: Direct clipboard image/path uploads and a built-in Settings dialog for configuring API keys, default tags, visibility, rating, and autostart.
---
## Prerequisites
Ensure the following system dependencies are installed:
| Dependency | Purpose | Recommended Package (Fedora / Arch / Ubuntu) |
| :---------------------- | :------------------------- | :------------------------------------------- |
| **Python 3.9+** | Execution Runtime | `python3` |
| **PySide6** | GUI Framework & IPC | `python3-pyside6` or `pip install PySide6` |
| **Spectacle** | Region Screenshot Capture | `spectacle` (KDE Utility) |
| **ffmpeg** _(Optional)_ | Video Thumbnail Generation | `ffmpeg` |
| **libnotify** | Desktop Notifications | `libnotify` (`notify-send`) |
---
## Quick Setup & Installation
### 1. Clone the Repository
```bash
git clone https://git.lat/kibi/f0ckm-uploader
cd f0ckm-uploader
```
### 2. Install Python Dependencies
```bash
pip install PySide6
```
_(Or install via system package manager: `sudo dnf install python3-pyside6` / `sudo apt install python3-pyside6`)_
### 3. Environment Configuration _(Optional)_
You can set up a `.env` file prior to installation, or configure settings later via the GUI:
```bash
cp .env.example .env
```
Edit `.env`:
```env
API_URL=https://your-f0ckm-instance.com/api/v2/upload
API_KEY=your_secret_api_key
DEFAULT_RATING=s
DEFAULT_TAGS=
DEFAULT_VISIBILITY=0
DEFAULT_IS_OC=false
```
### 4. Run the Installer
```bash
chmod +x install.sh
./install.sh
```
The installer will automatically:
1. Copy binaries to `~/.local/bin/f0ckm-uploader-gui` and `~/.local/bin/f0ckm-uploader`.
2. Generate multi-resolution icons (`32x32`, `48x48`, `64x64`, `128x128`, `256x256`) for KRunner & Start Menu compatibility.
3. Register the Dolphin context menu action in `~/.local/share/kio/servicemenus/`.
4. Register the `.desktop` application launchers and rebuild the KDE Plasma cache (`kbuildsycoca6`).
---
## Configuring a Global Hotkey (Screenshot Shortcut)
To bind a keyboard shortcut to capture a screen region and upload it immediately:
1. Open **KDE System Settings** -> **Shortcuts**.
2. Search for **f0ckm Uploader** under **Applications** (or click **Add New** -> **Application** -> **f0ckm Uploader**).
3. Select **Capture Region & Upload**.
4. Click **Add Shortcut** and press your desired hotkey combination (e.g. `Print`, `Meta+Shift+S`, or `Ctrl+Alt+S`).
5. Click **Apply** in the bottom right corner.
---
## Usage
### System Tray
- **Single Click**: Triggers region screenshot capture & upload.
- **Right Click**: Opens context menu for:
- **Capture Region & Upload**
- **Upload File...**
- **Upload from Clipboard**
- **Settings...**
- **Quit**
- **Double Click**: Opens the Settings dialog.
### Dolphin File Manager
- Right-click any file -> **Actions** -> **Upload to f0ckm**.
### Command Line Interface (CLI)
```bash
# Capture screen region and upload
f0ckm-uploader-gui --spectacle
# Upload a specific file
f0ckm-uploader-gui --upload="/path/to/file.mp4"
# Open settings dialog
f0ckm-uploader-gui
```
---
## Configuration & Storage Paths
- **Configuration File**: `~/.config/f0ckm-uploader/config.json`
- **Environment File**: `~/.local/bin/.env`
- **Application Binary**: `~/.local/bin/f0ckm-uploader-gui`
- **Start Menu Entry**: `~/.local/share/applications/f0ckm-uploader-gui.desktop`
- **Dolphin Service Menu**: `~/.local/share/kio/servicemenus/f0ckm-uploader-servicemenu.desktop`
---
## Uninstallation
To remove all binaries, context menus, desktop entries, and icon assets:
```bash
./uninstall.sh
```
---
## License
MIT License.