This file contains the changes made between released versions.
The format is based on Keep a changelog and the versioning tries to follow Semantic Versioning.
- Full switch over to
pyproject.toml
- Requires
pytodotxt
version 2.0.0
- Support for tasks with
t:
anddue:
with full ISO dates (e.g.2024-06-21T15:10
; issue #31) duplicate-task
function, by default onv
and not supported in qpter (#30)
- When guessing the location of notes, the path of the first todo files should be taken, not the file itself (#68)
done-is
anddone-file
configuration options to allow moving completed tasks into a separate file (#26)
qpter
's smart search was broken (#67)
- Installation via
pipx
was broken when trying to useqpter
- hooks were broken if a task contained a note (#25)
- if no
notes
setting was set up in the configuration, the paths of the used todo.txt files are used as note folders
- Welcome message shows the version, so you know what you're up against (#40), thanks andrei-a-papou!)
- The dialog boxes to select things (context, project, link) attempt to not cut off their title
- Searching for
due:
behaves the same way asdue:y
,due:yes
, anddue:any
: any task with a due date is found - Searching for
hidden:1
will only show hidden tasks, usehidden:any
to show all tasks including hidden ones - Searching for
hidden:
will find all tasks that have ah:
attribute - Default time-out for the Esc-key is now 200 ms
- Help bar at the bottom will show preferably the user-defined key bindings
#
,[
, and]
can also be used in key bindings, using<hash>
,<lbrack>
, and<rbrack>
respectively (#33)- Archiving and task deletion was broken and could crash pter (#43)
- Highlighting in dialog boxes to select things (context, project, link) is covering the whole line now (thanks, andrei-a-papou)
- Sections in the help screen that would be empty because no keybindings have been defined, are no longer shown (thanks, andrei-a-papou)
- Standalone
+
or@
are no longer listed in their respective completions (#46) - Mouse wheel scrolling would in some cases cause scrolling, making it look like there was any mouse support. Mouse wheel scrolling should now do nothing. (#51)
- Key sequences work in the help screen, too (#59)
- Scrolling with cursor keys in the help screen are no longer "lagging"
quit
removed from the help screen; that means to close the help screen, usecancel
inc-due
,dec-due
functions to increase/decrease due dates bydue-delta
(1d
by default) or quickly add a due date if there is none, #48due-skip-weekend
option to skip over weekends when increasing/decreasing a due dateclear-due
function to remove due datereduce-distraction
option to hide the task list when editing/creating tasks{{note}}
makes thenote:
attribute of a task available to hooks- Added
go-word-left
,go-word-right
,del-to-eol
,del-word-left
, anddel-word-right
(#36, thanks andrei-a-papou) - pter has the commandline parameter
--list-keys
(or short,-k
) to list all key bindings - Added search term
due:any
to be more explicit about finding tasks that have any due date - Added search term
done:any
for consistency - Added search term
hidden:any
, to find all tasks, even hidden ones - Added search terms
t:any
,t:yes
, andt:no
- Configuration option
esc-timeout
in the[General]
section view-note
command, by default onV
to view a note instead of editing it- Configure the note viewer with the
viewer
option word-boundaries
option in[General]
section for use withgo-word-
anddel-word-
functionshelp-action
option to configure the items in the help bar at the bottom of the screen{file}
field intask-format
reset-terminal
configuration option (#51, thanks, andrei-a-papou!)
- Could not change list control key bindings (#35)
- Support for
F13
throughF20
(#39, thanks to andrei-a-papou!)
- Scrolling was broken (#37), thanks to onovy for fixing it!
- It wasn't possible to change the keybindings of text field editor keys (#35)
- The
[Editor:Keys]
section in the configuration file was completely ignored (#35) - It was not possible to (re-)bind the keys
:
or=
to any function (#33)
- You can tell pter to call external programs when certain things happen in the program. The term in the documentation is 'hooks'. (#23)
sort-order
option (thanks a lot to onovy)- shortcut to set a task to priority
D
(thanks a lot to onovy)
- auto suggestions for
note:
did not list files from all folders
time-tracking
configuration option to integrate with external time tracking programs
- Sorting by task creation date with
created
search-case-sensitive
can now beyes
,no
, orsmart
(assume case-insensitive, but switch to case-sensitive if you search with an uppercase character, #15)- New feature: auto templates. Apply a template when a new task contains trigger words (#16)
pter.config
man page is installed in the correct place
- Installer script didn't actually install the man-pages
- Documentation split up in three different manpages,
pter(1)
,qpter(1)
,pter.config(5)
.
- Copy to clipboard actually copies to clipboard (not primary or secondary) in X11 now
- Feedback to the user when copying tasks to clipboard
- pter would crash when you cancel saving a template
- qpter would not start at all (#31)
Y
calls theto-clipboard
function that copies the selected task to your clipboard (in pter) (#32)Ctrl+C
calls theto-clipboard
function that copies the selected task to your clipboard (in qpter) (#32)
-u
would report that a new version is available if the version file contained a newline- Control characters in a task's description (e.g.
\x10
) could crash pter. They are now replaced with a space character during display and edit - Documentation wasn't very clear about how colors are prioritised/used when displaying items
[Include]
section in configuration file is now deprecated
includes
option inGeneral
section of the configuration file. This is the preferred way to include additional configuration files.
files
option was buggy when only one file was given- Fix the python 3.12 warnings (#30)
files
option inGeneral
section. These files will be opened if you don't provide files on the commandline.- Support for detailed notes per task via the
note:
tag
- Desktop file
pter.desktop
can now actually work (due tofiles
option inGeneral
, see above)
- Archiving is now a thing. Default key binding for
archive
function is%
- Archive location can be configured, see
archive-is
configuration option - New function
edit-file-external
, by default not mapped to a key
- Trash file access is more forgiving and won't crash pter
- When using templates, the initial cursor position will be after the creation date or at the start of the field
- When editing a task you can
Tab
through not-filled in keys, likedue:
- When scrolling past the end of list of tasks pter could crash (related to key sequences)
- Support for key sequences for some functions (#3)
show-related
functionality (comes withrelated-show-self
configuration option; #2)
- Fixed some typos and ambiguities in the documentation
- New function
clear-search
, which is bound to^
by default (#27) - New functions
select-project
(F6
) andselect-context
(F7
) (thanks to lrustand; fixes #27)
- Completion now will only show contexts or projects that actually start with what you've typed already
- Deleting tasks was broken (thank you for fixing it, Fabian-G!)
- Prevent creation of empty tasks (again, thanks to Fabian-G)
- Fixed startup bug when there were empty task lines (once more, thank you Fabian-G)
- Priorities are now supported in the full specified range of todo.txt, i.e. from
A
throughZ
(thanks to Gerrit)
editor
configuration option now works with editors that require additional parameters, likeeditor = code -r -w
- Cancelling to save a search crashed pter
- Wrap of day would not update tasks with
t:
that should become visible (#14) - Type confusion could crash qpter
- Functions (and shortcuts in terminal version) to change the priority of a task directly (#16)
-s
parameter to start pter with a named search from the start
- pter crashed when newly installed because of the non-existing log directory
- Bad implementation of
Application.refresh
could cause black screens with newer versions of cursedspace
- Refer mostly to vonshednob.cc instead of github.com
- Close the completion when the cursor leaves the word that the completion was started for
- Check latest version by querying vonshednob.cc/pter/latest
- Support for
not:pri:
, which was kind-of implied in the documentation, but not really implemented yet - Support for relative dates in searches for
due:
(and before/after),created:
(and before/after), andcompleted:
(and before/after), which was already promised in the documentation but didn't fully work (and when it did, it was horribly inefficient)
- Implementation for
lessimportant:
andmoreimportant:
was broken (#13)
- Support for recurring tasks (#12)
- Potential crash when the todo.txt changed in the background at a bad time
- Various previously overlooked remnants from the refactoring
delete-task
function controlled bydelete-is
configuration option, disabled by default to prevent accidental deletions (#9)
- The configuration file’s keys are now case-sensitive (as documented before, but not implemented accordingly). This might break your existing configuration file, especially with respect to keybindings.
- The search bar would not show '(no search active)' when starting pter
- Depend on version 1.3.0 of cursedspace
- Completion could leave some lines on the screen after being closed (#8)
- Selection boxes are using as much room as necessary to show all options
- Help screen scrolls immediately when cursor keys are used
- Completion key configuration options
comp-next
,comp-prev
,comp-use
, andcomp-close
- Documentation for the completion options
- Basic autocompletion support for contexts and projects when searching, adding or editing tasks (#6)
- Depends on version 1.2.0 of cursedspace
- Lagging cursor when editing or creating a task (#7)
- Make selector windows great(er) again
- Don't show the source selector if only one source file is available
- Massive refactoring of pter to make the code more readable and maintainable
- pter will try to set the terminal title to
pter
- Dependency to
cursedspace
- Key bindings
page-up
andpage-down
- Support to edit tasks through an external text editor (#5), see
editor
configuration option or just tryE
in pter; not supported in qpter!
- Key bindings
half-page-up
andhalf-page-down
- A task that had no description used to crash pter when searching #54
- Task templates (thanks to @danielk333)
- Clearing a search that resulted in 0 visible tasks would crash pter
- Be consistent and accept relative paths as well as the
~/
(user home) notion
- Detect the passing of midnight
- Commandline parameter "-n" to add a task directly
- Every 5 seconds check for changes to the source files
- When stopping tracking before a minute has passed, pter used to not stop tracking
- Even when the filter would result in 0 tasks showing, at least one would still remain visible
- Repainting used to cause some flickering and was rather slow
- The marker for the currently selected task is stretching over the full width of the window
- Support including extra configuration files (issue #53)
- Man page, .desktop files, and an example configuration are installed with
pip install
- Fixed exception when the terminal resizes around pter (issue #52)
clear-contexts
is now working again (regression error)
- Regression regarding sorting (related to #51)
- Sorting did not work correctly in pter (issue #51)
- Vertically center tasks in qpter
- Search for
file:
- qpter now detects stale lock files
- Use the application default font if none is given
- Create configuration folder if it's missing (fixes a crash)
- Tasks with due date were not sorted correctly
- qpter would not show proper spacing between words when no font was configured
- Support for dark mode
- qpter can be run with -a/--add-task to activate the running qpter and create a new task
- -v/--version command line option to show pter's version
- -u/--check-for-updates command line option to check at pypi whether a new software version is available
- Support for
id:
attributes (automatic ID creation withid:#auto
) auto-id
configuration option- Support for
after:
attribute (hide-sequential
configuration option) - Optionally clickable URLs, contexts, and projects (
clickable
) - Optionally allow multiple instances of qpter (option
single-instance
) - Support for
ref:
searches - "New related task" and "New subsequent task" in qpter
- Coloring for due today/tomorrow and overdue corrected
- Don't color as overdue when task is completed
- Color also the checkmark in the 'done' color
- Refreshing task list in qpter was shaky
- Sometimes the task list would not update when adding a task
- Added documentation and icons to the distribution files
- Search is correct upon startup
- qpter detects file changes and reloads automatically
- font and font-size configuration option for the GUI
- About dialog in qpter
- .desktop files added to the extras directory
- Select file to create tasks in (in pter)
- Use .cache location for settings of pter
- pter and qpter used to highlight single
+
and@
characters
- curses is now optional (necessary on Windows)
- qpter does not show the list of files if there is only one file available
- Default colors for project and context in qpter
- qpter is always installed, but will not start without PyQt5
- Bugfix: Starting qpter for the first time fails with ValueError exception
- Bugfix: Mixed up GUI:Highlight and GUI:Colors
- Depend on pytodotxt 1.0.3
- Configurable protocols for URLs to open with 'u'
- Configuration option "add-creation-date", whether date should be added automatically to a task upon creation
- GUI version using Qt5
- GUI:Colors configuration group
- GUI:Highlight configuration group
- add-creation-date configuration option in General
- Delegate functionality
- Fixed a crash when a task consists only of a date (issue #25)
clear-contexts
configuration option- New
search-project
andsearch-context
functions on keysp
andc
respectively
- Editing a task after marking it as done, keeps it marked as done (#24)
- Read the manual in a browser (
open-manual
function andm
shortcut) - Have a HTML manual (and generate a man-page while at it)
duedays
field intask-format
- Configurable
task-format
- Color
pri:
tags just like priorities - Human-friendly dates
show-numbers
configuration option is gone (replaced bytask-format
)
- Named searches are stored in
searches.txt
, notsearches.cfg
Split off into its own project called pter
.
- Open URL of tasks
- Editor keys are configurable
- Allow multiple todo.txt files
- Task time tracking
- Configure symbols for text field overflow
- Search with relative dates
- Case-sensitive search behaviour is optional
- Accept unicode characters in input fields
- Custom coloring of key:value attributes
- Safe save behaviour is now configurable in pytodoterm
- Load Search and Save Search is shown in the help in pytodoterm
- Searching for relative dates in pytodoterm
- Handle backspace in xterm-like terminals (pytodoterm)
- Show an empty task list if the no tasks match the search query (pytodoterm)
- Flicker prevention (pytodoterm)
- New GUI for terminals: pytodoterm