mjdescy / TodoTxtMac

TodoTxtMac is a minimalist, keyboard-driven to-do manager for Mac OS X (10.8 Mountain Lion and higher) that conforms to the todo.txt format spec.
Other
240 stars 40 forks source link

TodoTxtMac

Overview

TodoTxtMac is a minimalist, keyboard-driven to-do manager for Mac OS X that conforms to the todo.txt format spec. Version 2.0.0 and up are supported only on Mac OS X 10.11 (El Capitan). Version 1.6.1 can be used on lower versions of Mac OS X, down to Mac OS X 10.8, though support is not guaranteed.

Goals

This application is inspired by the Todotxt.net application for Microsoft Windows with numerous improvements and modifications specific to the Mac OS X platform. It is designed to pair well with other todo.txt applications, such as SwiftoDo, Todotxt.net, SimpleTask, topydo, and many others.

From a design perspective the goal is to be the fastest, simplest, and cleanest implementation possible.

Features

General features

Adding/removing tasks

Sorting and filtering

Due dates

Fonts and colors

Mac-specific user interface features

Keyboard Shortcuts

Working with tasks

Undo/redo

Working with files

Sorting the task list

Filtering the task list

Features Not Planned

Frequently Asked Questions (FAQ)

Is there a preference to re-open my todo.txt file on launch?

Yes, but most people will not need such a preference, because the default behavior of TodoTxtMac is to reopen whatever todo.txt files were open when you last quit the app. To enjoy this behavior, do not close your todo.txt file's window prior to quitting the app.

If the TodoTxtMac is not reopening your files, or keeping a list of them in the "File > Open Recent" menu, then you should check the following preferences under System Preferences > General:

  1. "Close windows when quitting an app" must be unchecked.
  2. "Recent items" must not be "None".

If you need to force TodoTxtMac to open a particular todo file on launch, you may set a default todo.txt file in TodoTxtMac's Preferences > Startup.

You may also force TodoTxtMac to open a particular todo file on launch, you may launch the app with the command-line argument "todo-file", in the Terminal, as follows:

$ open /Applications/TodoTxtMac.app --args -todo-file ~/Documents/todo.txt

Is this application Dropbox-enabled?

No. Unlike the official Todo.txt iOS application, this application does not call Dropbox's API. You can sync your file outside of TodoTxtMac via Dropbox or other services.

TodoTxtMac says my todo.txt file cannot be autosaved. The file has been changed by another application.

Your todo.txt file can get modified outside of TodoTxtMac, especially if you are syncing the file via Dropbox or a similar service. TodoTxtMac uses Cocoa's default document object model to handle the file interactions. This means that the application will warn you of file changes that came from outside the application when you try to make changes to the file, not at the moment the file was changed. To avoid file conflicts, try the following strategies:

  1. Reload your TodoTxtMac file manually (press .) before making changes to it, if you believe the file was updated (by Dropbox for example) recently.
  2. Close TodoTxtMac when not using it for extended periods.
  3. When presented with the option to "Save Anyway" or "Revert" changes, always revert changes. You will have to re-do your last action in TodoTxtMac, but you will not lose the changes that originated outside the application.

Will this project be ported from Objective C to Swift?

When Apple officially deprecates Objective C, the plan is to migrate this project to Swift.

License

This application is dual-licensed under the GNU General Public License and the MIT License. See LICENSE.txt for full license information.

For Contributors

Source Code Conventions

I am striving for very clean code. I am following the following general coding conventions:

Pull Requests

The project uses git-flow to implement Vincent Driessen's branching model. All pull requests should be directed at the "develop" branch.

Credits/Thanks

Thanks to Gina Trapani who created the Todo.txt format and the community of developers who created the command line tools and iOS/Android apps.

Thanks to Ben Hughes whose Windows application todotxt.net formed the basis of this application's design and feature set. Todotxt.net is a fantastic program and did not have an analog on the Mac. After starting my application, I contributed some patches to todotxt.net and am happy to be a contributor on such a great project.

Thanks to Josh Wright <@BendyTree> for his RegExCategories library.

Thanks to Sam Daitzman <@sdaitzman> for the application icon.

Thanks to Andy Matuschak and the other contributors for the Sparkle framework.