1
0
mirror of https://github.com/osmarks/random-stuff synced 2025-12-31 09:49:04 +00:00

publish backlog of things

This commit is contained in:
2022-02-05 14:45:04 +00:00
parent 78602eabd6
commit 95e84ceb80
47 changed files with 3147 additions and 13 deletions

35
clipstack.py Normal file
View File

@@ -0,0 +1,35 @@
import sqlite3, pyperclip, os.path, subprocess, sys
conn = sqlite3.connect(os.path.expanduser("~/.local/share/clipstack.sqlite3"))
conn.executescript("""CREATE TABLE IF NOT EXISTS stack (pos INTEGER PRIMARY KEY, data BLOB NOT NULL)""")
def push(data):
c = conn.cursor()
c.execute("SELECT max(pos) FROM stack")
res = c.fetchone()[0]
if res == None: nxt = 0
else: nxt = res + 1
c.execute("INSERT INTO stack VALUES (?, ?)", (nxt, data))
conn.commit()
def pop():
c = conn.cursor()
c.execute("SELECT * FROM stack ORDER BY pos DESC LIMIT 1")
res = c.fetchone()
if not res: return
pos, data = res
c.execute("DELETE FROM stack WHERE pos = ?", (pos,))
return data
conn.commit()
mode = sys.argv[1]
if mode == "push":
proc = subprocess.run(["xclip", "-selection", "clipboard", "-o"], stdout=subprocess.PIPE)
if proc.returncode == 0:
push(proc.stdout)
print("push")
elif mode == "pop":
data = pop()
if data:
proc = subprocess.run(["xclip", "-selection", "clipboard"], input=data)
print("pop")