2026-04-16 18:38:58 -04:00
2026-04-16 18:38:58 -04:00
2026-04-16 18:37:52 -04:00
2026-03-16 21:38:19 -04:00
2026-03-16 21:38:19 -04:00
2026-03-16 21:38:19 -04:00
2026-03-16 21:38:19 -04:00
2026-03-16 21:38:19 -04:00

yourls-ui

Small Qt tray utility for shortening URLs using the YOURLS API.

The application sits in the system tray and allows quickly shortening the URL currently stored in the clipboard.

It was designed as a lightweight helper for everyday use with a self-hosted YOURLS instance.


Features (v0.1)

  • System tray application
  • Simple configuration window
  • Uses YOURLS API with signature authentication
  • Reads URL from clipboard
  • Generates a short URL
  • Copies the short URL back to clipboard
  • Shows popup with clickable link
  • Error reporting with API response

How it works

  1. Application starts
  2. If configuration exists → it goes directly to the system tray
  3. If configuration is missing → settings window opens

From the tray menu you can run:

Cut URL

The application will:

  1. Read the current clipboard
  2. Check if the content is a valid URL
  3. Call the YOURLS API
  4. Receive a shortened link
  5. Copy the shortened link back to clipboard
  6. Show a popup window with the result

Configuration

The settings window contains:

API URL
API signature

Example:

API URL:
https://example.com/yourls-api.php

Signature:
e484ea32c0

⚠️ Important:

The signature field must contain only the signature value, not:

signature=e484ea32c0

Correct:

e484ea32c0

Tray menu

Right click the tray icon to access the menu:

Cut URL
Help
About
Exit

Double clicking the tray icon opens the settings window.


Building

Requirements:

Qt 5
Qt Widgets
Qt Network
qmake

Build:

qmake
make

Or open yourls-ui.pro in Qt Creator and build normally.


Project structure

main.cpp
    Application entry point

mainwindow.h / mainwindow.cpp
    Main application window
    Tray integration
    UI logic

mainwindow.ui
    Qt Designer UI for settings window

yourlsclient.h / yourlsclient.cpp
    YOURLS API client
    Handles HTTP requests and responses

The YOURLS API communication is encapsulated in YourlsClient.


API call

The application performs a request similar to:

GET /yourls-api.php
?action=shorturl
&format=json
&signature=<signature>
&url=<url>

Example:

https://example.com/yourls-api.php?action=shorturl&format=json&signature=ABC123&url=https://example.com

Future ideas

Possible improvements for future versions:

Hotkey support

Global hotkey to trigger URL shortening.

Clipboard watcher

Automatically detect URLs copied to clipboard.

Tray notifications

Use system notifications instead of popup dialog.

Recent history

Store last shortened URLs.

Custom alias

Allow specifying custom short URL alias.

Open YOURLS admin

Add tray menu entry for opening YOURLS admin panel.

Packaging

Provide:

AppImage
.deb package

Version

v0.1

Initial working release.


Author

deeaitch

License

GPL

Description
No description provided
Readme GPL-3.0 50 KiB
Languages
C++ 98.1%
QMake 1.9%