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

https://github.com/jintwo/clipr

simple clipboard manager [https://sr.ht/~jintwo/clipr/]
https://github.com/jintwo/clipr

clipboard clipboard-manager emacs macos rust

Last synced: 2 months ago
JSON representation

simple clipboard manager [https://sr.ht/~jintwo/clipr/]

Awesome Lists containing this project

README

          

Clipr - command line clipboard (pasteboard) manager
===================================================

Simple MacOS clipboard (pasteboard) manager with cli and emacs interfaces. Under development.

## Running

### Server

```bash
cargo run --bin clipr-daemon -- -c PATH/TO/config.toml
```

### CLI

```bash
cargo run --bin clipr-cli -- -c PATH/TO/config.toml
```

#### Alias

```bash
CLIPR_CLI="PATH/TO/target/debug/clipr-cli"
CLIPR_CONFIG="PATH/TO/config.toml"

alias c="$CLIPR_CLI -c $CLIPR_CONFIG"
```

### Emacs module

```bash
cargo build --lib clipr-emacs
cp target/debug/libclipr.dylib /clipr-mode/clipr.so
cp clipr-emacs/src/clipr-mode.el /clipr-mode/
```

```elisp
;; Usage example
(use-package clipr-mode
:load-path "PATH/TO/clipr-mode"
:bind (:map global-map (("C-c c" . clipr-show)))
:custom
(clipr-config-path "PATH/TO/config.toml"))
```

#### Keys

##### List mode

g - refresh

RET - select and close

d - delete entry

q - close

+ - add tag

- - delete tag

f - set filter by tag

c - clear filter

j - jump to tag

S - save state

L - load state

E - edit entry

##### Edit mode

C-c C-c - save entry (will be added as new one ;) )

C-c C-k - quit edit mode

## Tasks

### General [1/7]

* [/] Pinned entries (use letters!).
Currently there is no big difference from Tags.
Put it in front of list while listing ;)
~~Allow set-by-pin -> because pins should be unique.~~
~~Convert pins to upper case.~~

* [ ] Rework select
Use different option for specifying selection (and combinations)

* [ ] Masked entries

* [ ] Deadline timeout (for sensitive data)

* [/] GC? (remove non tagged/pinned/persistent/old entries)
Ring (limited size)?

* [/] Limited size. Only after proper implementation of pinned entries.

* [ ] LaunchD plist

* [X] Save state on quit

* [ ] GUI/global menu (tag-based folders?)

### Refactoring [1/5]

* [X] Switch to LINKED-LIST + SET (or w/o). Looks like it will be a lot easier to reorder entries.

* [ ] Split/simplify command handling

* [ ] Maybe actor-like stuff isn't necessary there?

* [ ] More rusty (try to specify lifetimes + remove all .clone)

* [ ] Reduce dependencies

### Emacs [1/3]

* [X] Use removal by range / remove selection in clipr-mode

* [ ] Emacs UI display current filter

* [ ] Multi tag selection

* [ ] Edit inplace

### Bugs [1/2]

* [X] If there is no changes in PB we still allocating NSString

* [ ] After cleanup memory usage doesn't goes down