You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

193 lines
6.9 KiB

  1. A cli TagSpaces_ client, especially geared towards `The Secret Weapon`_
  2. approach to Getting Things Done.
  3. History
  4. -------
  5. A few months into 2017 I read Jon Westenberg's post about how `he uses
  6. Evernote`_ to keep track of all the things that he needs to do. In the article
  7. he has some pretty golden advice:
  8. ::
  9. Before I get into it though, I want to be clear. What I do might not work
  10. for you. There is no golden key to productivity, and this is pretty
  11. specifically designed to match my workflow and my personality.
  12. Which is, of course, fantastic advice.
  13. While I'm sure Evernote is a fantastic tool with all the bells and whistles
  14. that one could desire, it's not exactly *my* bells and whistles. I have a
  15. slightly different approach that I prefer. I'm much more into the command line,
  16. mainly because it's the easiest way to eliminate distractions. Yeah, you can
  17. turn off distractions in your browser and on your phone - but you actually have
  18. to turn *on* distractions on the command line. So I try to spend most of my
  19. time here.
  20. About a year ago I also came across TagSpaces_, which has a philosophy I love:
  21. just stick the information into the filename itself. Then it doesn't matter
  22. what system you're using, the information is going to travel with the file.
  23. After I read Jon's article, I started trying to use the TagSpaces client. It
  24. worked well enough, though it wasn't quite as keyboard-centric as I wanted.
  25. Using Dropbox to sync my files worked great (though they still don't have a
  26. client for the Raspberry Pi, grumble grumble).
  27. I toyed around with using the command line, ``ls *1-now*`` or ``find . -name
  28. *3-soon*`` worked pretty well, but it was still a bit clunky. Out of that need
  29. came Shibboleth
  30. Guide
  31. -----
  32. Shibboleth is pretty simple. At the moment it only supports Linux-y systems
  33. (there's some weirdness on Mac OSX, with readline), but I'm always open to
  34. `pull requests`_!
  35. All you have to do is install shibboleth:
  36. ::
  37. python3.6 -m pip install shibboleth
  38. (Come join me in the glorious future that is Python3.6! Or, if you think it's
  39. awesome and you live in some horrible reality that requires something ancient,
  40. I'm totally accepting `pull requests`_)
  41. Once it's installed, just start it up in whatever directory you want to stick
  42. your stuff. Maybe you do something like this:
  43. ::
  44. $ cd ~/Dropbox/
  45. $ mkdir secret-weapon
  46. $ cd secret-weapon
  47. $ mkdir completed
  48. $ shibboleth
  49. Welcome to Shibboleth, the tool designed to be *your* secret weapon.
  50. Your editor is currently vim. If you don't like that, you
  51. should change or set your EDITOR environment variable.
  52. ⇀shibboleth:/home/wayne/Dropbox/secret-weapon
  53. > new
  54. Title: Try out shibboleth
  55. That will launch your editor - whatever your ``EDITOR`` environment variable is
  56. set to. Or ``vim``, if nothing is set. ``:q`` is how you get out of Vim, if
  57. that's not your thing.
  58. Save and quit and you should come back to shibboleth:
  59. ::
  60. ⇀shibboleth:/tmp/fnord/Try-out-shibboleth[20170406~011315].md
  61. >show
  62. ********************************************************************************
  63. Trying out shibboleth, how does it work for me?
  64. ********************************************************************************
  65. ⇀shibboleth:/tmp/fnord/Try-out-shibboleth[20170406~011315].md
  66. >
  67. It will automatically select the new file. You may notice that it changed the
  68. spaces for ``-``. That's because readline is confusing and hard and doesn't
  69. like autocompleteing spaces. But if you can make it do the right thing, did I
  70. mention I'm accepting `pull requests`_?
  71. So you can change the priority of your selected file/task with ``priority``, or
  72. the shortcut ``p``.
  73. ::
  74. >p 1
  75. ⇀shibboleth:/tmp/fnord/Try-out-shibboleth[20170406~011315 1-now].md
  76. >
  77. You can ``deselect`` to drop that, or ``select`` a different file. Or create
  78. another ``new`` one:
  79. ::
  80. >new something completely different
  81. ⇀shibboleth:/tmp/fnord/something-completely-different[20170406~013345].md
  82. >show
  83. ********************************************************************************
  84. A man with three legs!
  85. > 'e ran off!
  86. ********************************************************************************
  87. ⇀shibboleth:/tmp/fnord/something-completely-different[20170406~013345].md
  88. p 4
  89. ⇀shibboleth:/tmp/fnord/something-completely-different[20170406~013345 4-later].md
  90. >
  91. You can use ``ls`` to list all the files in the directory, ``cd`` to change
  92. directory. Or if you just want to see what you're supposed to be doing now:
  93. ::
  94. > now
  95. trying-out-shibboleth[20170406~013326 1-now].md
  96. ⇀shibboleth:/tmp/fnord/trying-out-shibboleth[20170406~013326 1-now].md
  97. >later
  98. something-completely-different[20170406~013345 4-later].md
  99. ⇀shibboleth:/tmp/fnord/trying-out-shibboleth[20170406~013326 1-now].md
  100. >
  101. Once you're done with a thing, you can ``compelete`` it, or be ``done`` with
  102. it:
  103. ::
  104. >done
  105. ⇀shibboleth:/tmp/fnord
  106. >cd completed
  107. ⇀shibboleth:/tmp/fnord/completed
  108. >later
  109. something-completely-different[20170406~013345 4-later].md
  110. That's really about all there is to it. The way I use this is
  111. - start up shibboleth
  112. - check my ``waiting`` list to see if there's anything I need to move out of
  113. waiting.
  114. - Go through ``someday``, ``later``, ``soon``, and ``next`` to see if anything
  115. needs to be bumped up.
  116. - Decide which of ``now`` I need to work on the most, then ``s`` elect it. I
  117. may ``edit`` it to add some notes or just ``show`` to review what I'm
  118. supposed to be doing. Then when I finish that I mark it ``done`` and move on
  119. to the next.
  120. As new tasks come in via email, etc. I go ahead and add new ones. I've been
  121. using shibboleth as the interface for my tasks for about a day now and it works
  122. *great* for shifting the priority, creating new tasks, and editing ones that
  123. I've got.
  124. If you've got any suggestions about what would make shibboleth (more) awesome,
  125. I'm happy to work with you to get your `pull request`_ in. Or if I've got some
  126. time or I think it's a killer feature, I'm sure I'll add it to my own list.
  127. Using shibboleth, of course :)
  128. Philosophy
  129. ----------
  130. I would prefer to keep this as 3rd-party-dependency-free as possible. I'm not
  131. opposed to adding some kind of plugin architecture, but I *really* want
  132. shibboleth to stay one single file. That way you can just stick it in a
  133. directory and you're good to go.
  134. TODOs
  135. -----
  136. - Add BSD license
  137. - Add other tag support
  138. - config. We want to be able to config shibboleth, right? Different colors and
  139. what-not.
  140. .. _TagSpaces: https://www.tagspaces.org/
  141. .. _The Secret Weapon: http://www.thesecretweapon.org/the-secret-weapon-manifesto/manifesto-part-1-the-issue
  142. .. _he uses Evernote: https://medium.com/hi-my-name-is-jon/how-i-use-evernote-to-pitch-at-the-top-of-my-game-2c5966ef720b
  143. .. _pull requests: https://github.com/waynew/shibboleth#fork-destination-box
  144. .. _pull request: https://github.com/waynew/shibboleth#fork-destination-box