0ca65ea4730db6f1be014050bddb3ed1cf4258e1
f0ckm Uploader
A modern, high-contrast KDE Plasma System Tray Uploader and desktop integration suite for 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 at00:00:01viaffmpeg. - 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
git clone https://git.lat/kibi/f0ckm-uploader
cd f0ckm-uploader
2. Install Python Dependencies
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:
cp .env.example .env
Edit .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
chmod +x install.sh
./install.sh
The installer will automatically:
- Copy binaries to
~/.local/bin/f0ckm-uploader-guiand~/.local/bin/f0ckm-uploader. - Generate multi-resolution icons (
32x32,48x48,64x64,128x128,256x256) for KRunner & Start Menu compatibility. - Register the Dolphin context menu action in
~/.local/share/kio/servicemenus/. - Register the
.desktopapplication 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:
- Open KDE System Settings -> Shortcuts.
- Search for f0ckm Uploader under Applications (or click Add New -> Application -> f0ckm Uploader).
- Select Capture Region & Upload.
- Click Add Shortcut and press your desired hotkey combination (e.g.
Print,Meta+Shift+S, orCtrl+Alt+S). - 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)
# 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:
./uninstall.sh
License
MIT License.
Description
Languages
Python
52.5%
Kotlin
17%
JavaScript
12.4%
Shell
9%
CSS
4.5%
Other
4.6%