clipman/clipman.py

46 lines
946 B
Python
Raw Normal View History

2019-03-22 15:13:41 +01:00
#!/usr/bin/python
import json
import os
import subprocess
import sys
MAX = 15
def selector(input_, max_):
"""Send list to dmenu for selection. Display max items."""
cmd = [
"dmenu",
"-b",
"-fn",
"-misc-dejavu sans mono-medium-r-normal--17-120-100-100-m-0-iso8859-16",
"-l",
str(max_),
]
chosen = (
subprocess.run(
cmd, input="\n".join(input_).encode("utf-8"), capture_output=True
)
.stdout.decode()
.strip()
)
return chosen
def main():
try:
with open(os.path.expanduser("~/.local/share/clipman.json")) as f:
history = json.load(f)
except FileNotFoundError:
sys.exit("No history available")
history = [repr(x) for x in reversed(history)] # don't expand newlines
selected = selector(history, MAX)
subprocess.run(["wl-copy", selected])
if __name__ == "__main__":
main()