An open API service indexing awesome lists of open source software.

https://github.com/vicsejas/clipmanx

Clipboard manager for Linux Mint
https://github.com/vicsejas/clipmanx

clipboard clipboard-manager linux-mint linuxmint

Last synced: 3 days ago
JSON representation

Clipboard manager for Linux Mint

Awesome Lists containing this project

README

          

# Clipmanx

A lightweight clipboard manager for Linux Mint featuring GTK3 system tray integration.

![Logo](src/clipmanx/assets/logo.png)

## Features

- **Clipboard History**: Stores and manages clipboard history
- **System Tray Icon**: Adaptive icon (dark/light theme support)
- **Lightweight**: Minimal dependencies, minimal resource usage
- **Persistent**: Remembers clipboard history between sessions
- **Configurable**: Customize capture sources and history size
- **Linux Mint Native**: System-wide installation on Debian-based systems

## Installation

Download the latest `.deb` from the [Releases page](https://github.com/vicsejas/clipmanx/releases) and install it:

```bash
sudo apt-get install -y ./clipmanx_*_all.deb
```

**System Requirements:**
- Linux Mint 22.3+ (or Ubuntu 24.04+/Debian-based)
- Python 3.10+
- GTK 3.0

## Usage

### Start the Application

```bash
clipmanx
```

Or find "Clipmanx" in your applications menu.

### System Tray Menu

Click the Clipmanx icon in your system tray to:
- **Select any item** from history to copy to clipboard
- **Clear History** to remove all entries
- **Settings** to configure capture sources
- **Quit** to exit the application

### Configuration

Settings are stored at: `~/.config/clipmanx/settings.json`

Available options:
- `capture_clipboard`: Capture Ctrl+C events (default: true)
- `capture_primary`: Capture X11 PRIMARY selection (default: true)
- `max_items`: Maximum history entries (default: 50)

## Architecture

```
clipmanx/
├── app.py # Main GTK3 application & UI
├── clipboard.py # Clipboard monitoring
├── history.py # History storage & retrieval
└── settings.py # Configuration management
```

### Icon Adaptation

The tray icon automatically adapts to your system theme:
- **Dark theme** → `icon-white.svg`
- **Light theme** → `icon-black.svg`

This is handled by the `_create_theme_adapted_icon()` function in `app.py`.

## Development

### Setup

```bash
git clone https://github.com/vicsejas/clipmanx.git
cd clipmanx

# Install uv (Python package manager)
# See https://docs.astral.sh/uv/getting-started/
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install dependencies
uv sync
```

### Run from Source

```bash
uv run clipmanx
```

### Build .deb Package (optional)

Releases are built automatically by GitHub Actions on every `v*` tag push, so
contributors don't need to build the `.deb` locally. If you want to anyway, see
[Build Guide](docs/BUILD_GUIDE.md). For the release workflow itself, see
[Distribution Guide](docs/DISTRIBUTION.md).

## Contributing

Contributions welcome! Areas for improvement:
- Additional clipboard sources
- Clipboard search functionality
- Sync across devices
- More theme options

## Author

Victor Sejas - vrsejas@gmail.com

## License

MIT License - See LICENSE file for details

## Attribution

- **Icon**: Clipboard List icon from [Lucide](https://lucide.dev) under [MIT License](https://github.com/lucide-icons/lucide/blob/main/LICENSE)

## Troubleshooting

**Icon not showing or tray click does nothing?**
A stale background instance may be holding the single-instance socket.
Stop the old process, clear the socket, then relaunch:

```bash
pkill -f bin/clipmanx
rm -f "${XDG_RUNTIME_DIR:-/tmp}"/clipmanx.sock
clipmanx
```

**Can't capture clipboard?**
Click the tray icon → Settings and ensure capture is enabled.

See [INSTALL.md](docs/INSTALL.md#troubleshooting) for more.

---

Made for Linux Mint by Victor Sejas