Save Snippets in Pygmynote with the sniptopygmynote.py Script
Productivity Sauce
As you might already know, I use a home-made Python script called Pygmynote to keep tabs on all kinds of data: from text snippets and links, to tasks and deadlines. Usually, I enter data in Pygmynote manually, but there are situations when having the ability to just push a text selection or link to Pygmynote's SQLite database can come in rather handy. So I wrote a simple Python script that does just that.
#!/usr/bin/env python
import pygtk, gtk, wx
import sqlite3 as sqlite
pygtk.require('2.0')
DB = 'pygmynote.db'
conn = sqlite.connect(DB)
cursor = conn.cursor()
def escapechar(sel):
sel=sel.replace("\'", "\''")
sel=sel.replace("\"", "\\\"")
return sel
clipboard = gtk.clipboard_get()
snip = clipboard.wait_for_text()
app = wx.PySimpleApp()
tags = wx.TextEntryDialog(None, "Tags:","Add Tags", "", style=wx.OK|wx.CANCEL)
if tags.ShowModal() == wx.ID_OK:
notetags = tags.GetValue()
tags.Destroy()
notetext = escapechar(snip)
notedue = ""
notetype = "A"
sqlquery = \
"INSERT INTO notes (note, due, tags, type) VALUES ('%s', '%s', '%s', '%s')"\
% (notetext, notedue, notetags, notetype)
cursor.execute(sqlquery)
conn.commit()
message = wx.MessageDialog(None, "Snip saved. All done!", "Done", wx.OK)
message.ShowModal()
message.Destroy()The code uses the PyGTK library to create a dialog window and message boxes. The way the script works is pretty straightforward. First it establishes a connection to the database and grabs the contents of the clipboard. The script then prompts you to specify tags for the snippet, and creates a record in the database. That's all there is to it. I assigned a keyboard shortcut to the script to make it easily accessible. You can grab the latest release of Pygmynote and the sniptopygmynote.py script from the project's GitHub repository.
comments powered by DisqusSubscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Another Linux Malware Discovered
Russian hackers use Hyper-V to hide malware within Linux virtual machines.
-
TUXEDO Computers Announces a New InfinityBook
TUXEDO Computers is at it again with a new InfinityBook that will meet your professional and gaming needs.
-
SUSE Dives into the Agentic AI Pool
SUSE becomes the first open source company to adopt agentic AI with SUSE Enterprise Linux 16.
-
Linux Now Runs Most Windows Games
The latest data shows that nearly 90 percent of Windows games can be played on Linux.
-
Fedora 43 Has Finally Landed
The Fedora Linux developers have announced their latest release, Fedora 43.
-
KDE Unleashes Plasma 6.5
The Plasma 6.5 desktop environment is now available with new features, improvements, and the usual bug fixes.
-
Xubuntu Site Possibly Hacked
It appears that the Xubuntu site was hacked and briefly served up a malicious ZIP file from its download page.
-
LMDE 7 Now Available
Linux Mint Debian Edition, version 7, has been officially released and is based on upstream Debian.
-
Linux Kernel 6.16 Reaches EOL
Linux kernel 6.16 has reached its end of life, which means you'll need to upgrade to the next stable release, Linux kernel 6.17.
-
Amazon Ditches Android for a Linux-Based OS
Amazon has migrated from Android to the Linux-based Vega OS for its Fire TV.
