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 (099%).
  • 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

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:

  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)

# 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
KDE Uploader for f0ckm
Readme 670 KiB
Languages
Python 52.5%
Kotlin 17%
JavaScript 12.4%
Shell 9%
CSS 4.5%
Other 4.6%