add readme
This commit is contained in:
117
README.md
Normal file
117
README.md
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
# klp
|
||||||
|
|
||||||
|
A clipboard history manager for Linux (X11 and Wayland).
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
This builds the binary, installs it to `~/.local/bin`, and starts the background daemon.
|
||||||
|
|
||||||
|
Ensure `~/.local/bin` is in your PATH:
|
||||||
|
```bash
|
||||||
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Auto-start on Login
|
||||||
|
|
||||||
|
**Option 1: systemd (recommended)**
|
||||||
|
```bash
|
||||||
|
make service-install
|
||||||
|
systemctl --user enable --now klp
|
||||||
|
```
|
||||||
|
|
||||||
|
**Option 2: Desktop autostart**
|
||||||
|
```bash
|
||||||
|
make autostart-install
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `klp` | Interactive list (navigate with j/k, select with Enter, delete with d) |
|
||||||
|
| `klp -l` | Non-interactive list |
|
||||||
|
| `klp -l -n 10` | Non-interactive list, 10 entries |
|
||||||
|
| `klp --limit 10` | Interactive list, 10 entries |
|
||||||
|
| `klp <id>` | Copy entry to clipboard |
|
||||||
|
| `klp -s "query"` | Search (interactive) |
|
||||||
|
| `klp -s "query" -l` | Search (non-interactive) |
|
||||||
|
| `klp -d <id>` | Delete entry |
|
||||||
|
| `klp -v` | Print version |
|
||||||
|
|
||||||
|
### Service Management
|
||||||
|
|
||||||
|
```bash
|
||||||
|
klp service start # Start daemon (backgrounds automatically)
|
||||||
|
klp service stop # Stop daemon
|
||||||
|
klp service status # Check if running
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Config file: `~/.config/klp/config.json`
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"defaultLimit": 20,
|
||||||
|
"dbLocation": "/home/user/.klp.db",
|
||||||
|
"maxEntrySize": 0
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- `defaultLimit`: Default number of entries to show
|
||||||
|
- `dbLocation`: Path to the clipboard history database
|
||||||
|
- `maxEntrySize`: Maximum entry size in bytes (0 = unlimited)
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
### Build
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make build
|
||||||
|
```
|
||||||
|
|
||||||
|
### Install locally
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
klp/
|
||||||
|
├── main.go
|
||||||
|
├── cmd/
|
||||||
|
│ ├── root.go # CLI commands
|
||||||
|
│ └── service.go # Daemon management
|
||||||
|
└── internal/
|
||||||
|
├── config/ # Viper configuration
|
||||||
|
├── database/ # NDJSON storage
|
||||||
|
├── clipboard/ # X11/Wayland clipboard access
|
||||||
|
├── service/ # Clipboard monitoring
|
||||||
|
├── search/ # Text search
|
||||||
|
└── tui/ # Interactive UI (Bubble Tea)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dependencies
|
||||||
|
|
||||||
|
- [Cobra](https://github.com/spf13/cobra) - CLI framework
|
||||||
|
- [Viper](https://github.com/spf13/viper) - Configuration
|
||||||
|
- [Bubble Tea](https://github.com/charmbracelet/bubbletea) - TUI framework
|
||||||
|
- [lipgloss](https://github.com/charmbracelet/lipgloss) - Terminal styling
|
||||||
|
- [golang.design/x/clipboard](https://golang.design/x/clipboard) - X11 clipboard
|
||||||
|
|
||||||
|
### Wayland Requirements
|
||||||
|
|
||||||
|
For Wayland support, ensure `wl-paste` and `wl-copy` are installed:
|
||||||
|
```bash
|
||||||
|
# Fedora
|
||||||
|
sudo dnf install wl-clipboard
|
||||||
|
|
||||||
|
# Ubuntu/Debian
|
||||||
|
sudo apt install wl-clipboard
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user