|
@@ -0,0 +1,89 @@
|
|
|
+---
|
|
|
+title:
|
|
|
+title-meta: Dirnotes README
|
|
|
+note: run this with pandoc -T "Dirnotes README" -s README.md -t html > README.html
|
|
|
+---
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# Dirnotes
|
|
|
+
|
|
|
+### SYNOPSIS
|
|
|
+
|
|
|
+The **dirnotes** family of apps allows you to add a descriptive comment to a file. The descriptions are stored in two places:
|
|
|
+
|
|
|
+ * in the xattr properties of the file
|
|
|
+ * in a database located in the user's home directory
|
|
|
+
|
|
|
+[The [MacOS](#macos) stores its comments in a similar way.]
|
|
|
+
|
|
|
+The <code>**dirnotes**</code> app is a GUI app, using the Qt5 framework. At startup, it displays the contents of the current directory, and the comments associated with any of the files or directories.
|
|
|
+Simple mouse clicks allow you to tunnel down into directories, or rise up the file system.
|
|
|
+You can create/edit comments and choose whether the _xattr_ or _database_ version of the comments take priority,
|
|
|
+
|
|
|
+The <code>**dirnotes-tui**</code> is a very similar app, but uses the _curses_ framework to display its activity in a terminal window. This can be handy if you have to work across a network, or if terminal apps are you preference.
|
|
|
+
|
|
|
+The <code>**dirnotes-cli**</code> is a command line tool, which may be handy for scripting.
|
|
|
+
|
|
|
+### USAGE
|
|
|
+
|
|
|
+The <code>**dirnotes**</code> program displays usage and keystoke info when you press _F1_. The <code>**dirnotes-tui**</code> program display onscreen usage when you press the 'h' key, or _F1_.
|
|
|
+The <code>**dirnotes-cli**</code> program has a man page.
|
|
|
+
|
|
|
+In short, you navigate <code>**dirnotes**</code> and <code>**dirnotes-tui**</code> by using the up/down arrow keys, <enter> to enter into a directory. The **-tui** version accepts _e_ for edit,
|
|
|
+_s_ for sort, _M_ to change between xattr/database priority.
|
|
|
+
|
|
|
+The **<code>dirnotes-cli</code>** has options for _-l_ list and _-c_ create a comment.
|
|
|
+
|
|
|
+### Direct Access
|
|
|
+
|
|
|
+Instead of an API, here is how you can get directly at the underlying comment data. If you intend to use the **dirnotes** apps, try to keep the two versions of the comments in sync.
|
|
|
+
|
|
|
+ * xattr
|
|
|
+
|
|
|
+Use the commands
|
|
|
+
|
|
|
+ xattr -l [filename]
|
|
|
+
|
|
|
+to display the comments/author/date on a file. For example:
|
|
|
+
|
|
|
+ $ xattr -l /etc/fstab
|
|
|
+ user.xdg.comment: controls the default mount bindings
|
|
|
+ user.xdg.comment.author: patb
|
|
|
+ user.xdg.comment.date: 2022-09-29 08:07:42
|
|
|
+
|
|
|
+The other options on the **xattr** command line tool allow you to write (*xattr -w*) or delete (*xattr -d*) the comments.
|
|
|
+
|
|
|
+ * database
|
|
|
+
|
|
|
+The comments are stored in an Sqlite3 database, usually located at "~/.dirnotes.db". The database itself is contained within that file, and its schema is this:
|
|
|
+
|
|
|
+~~~~
|
|
|
+ CREATE TABLE dirnotes (name TEXT, date DATETIME, size INTEGER, comment TEXT, comment_date DATETIME, author TEXT)
|
|
|
+~~~~
|
|
|
+
|
|
|
+field usage example
|
|
|
+------ ------- ---------
|
|
|
+name the long filename, using python's os.path.abspath() /home/patb/projects/dirnotes/README.md |
|
|
|
+date the file's modified date 2020-01-13 09:25:40
|
|
|
+size the byte count of the file 145
|
|
|
+comment a utf-8 string the readme for the GIT page
|
|
|
+comment_date the date of the comment itself 2020-10-03 22:30:19
|
|
|
+author the system name of the user who created the comment patb
|
|
|
+
|
|
|
+The 'date' and 'size' fields reflect the file's modification date and size at the time of the last edit of the file comment, which is also 'comment_date'.
|
|
|
+
|
|
|
+### MacOS {#macos}
|
|
|
+
|
|
|
+The **MacOS** inherently supports file comments. The Finder app manages most of the user activity. It handles file comments in a similar manner to **Dirnotes**. Comments are stored in two places:
|
|
|
+
|
|
|
+ * in the xattr properties of the file
|
|
|
+ ** using a different xattr-tag
|
|
|
+ * in a database located in each directory
|
|
|
+ ** in the .DS-Store file
|
|
|
+
|
|
|
+The user can examine the file comments by opening the GetInfo dialog, and scrolling down to "Comment"
|
|
|
+
|
|
|
+If the Finder is used to copy/move files, the comments are moved properly to both destinations. If you use the os to copy/move the files, you can ask that the xattr properties get moved, but the .DS-Store file will not be updated. That means the Finder will not see file comments on the destination file.
|
|
|
+
|
|
|
+**MacOS** has AppleScript, by which you can ask the Finder to perform the file copy/move. In this case, the comments are moved properly.
|