Code Monkey home page Code Monkey logo

jdotxt's Introduction

jdotxt

CircleCI

Copyright 2013-2018 Christian M. Schmid

Another open source cross-platform GUI for the todo.txt file format

Some highlights on features of jdotxt

  • Quick filtering by context + project -- see Filter panes on the left:
    • Multiple selection.
    • Quick filter by typed keystrokes (put focus on the pane and start typing).
    • Context menu with option to rename project/context.
    • F1 then start typing -- filters Projects; F2 for Contexts.
    • Esc hotkey to reset all filters.
  • Auto-add context/project to new entry (copied from currently selected entry).
  • Support for hidden entries (h:1).
  • Colored background based on priority.
  • Support for threshold dates (t:) and due dates (due:), support for recurrence (rec:[+]Du - optional + to specify strict recurrence based on due/threshold date, by default will increment based on completion date; D is number of units, u is unit -- one of d day, w week, m month, y year; example rec:11d schedule next task to 11 days after completion, rec:+1m schedule next task exactly one month away from threshold/due date). recp: controls whether to copy priority on task completion to a new future task (recp:1) or reset it to none (recp:0).
  • Date picker and a list of quick pre-sets for Threshold Date (t:).
  • Auto-completion of context/project when typing entry text.
  • Customizable sort. Saving sorts for future reuse.
  • Hotkeys:
    • CTRL-F -- jump to search field.
    • CTRL-S -- save todo.txt file. (You can also enable auto-save in preferneces.)
    • CTRL-R -- reload todo.txt (reloads automatically if detects that file has changed underneath).
    • CTRL-N -- "New Task", jumps to New Task entry field.
    • CTRL-D -- jump to previously open todo.txt file.
    • CTRL-Z, CTRL-Y -- undo/redo (when editing an entry text).

Downloads

Go to "Releases" section of the GitHub project to get the latest version.

Original Author's jdotxt Home Page

http://jdotxt.chschmid.com/

Building jdotxt

to build jdotxt from its sources, you will need

I use Ubuntu as a build system, simply run

  • sudo apt-get install openjdk-11-jdk ant

to set up your build system.

To build jdotxt

  1. Download the latest sources from github (e.g., git clone https://github.com/t7ko/jdotxt)

  2. Move into the directory (e.g., cd jdotxt)

  3. Run ant (i.e., ant)

You can run the resulting jar file by executing

java -jar jar/jdotxt.jar

Or, to run GUI-only on Windows, with detached console:

javaw -jar jar/jdotxt.jar

Running on HiDPI displays

With 4k displays becoming more widespread, you might want to scale the UI up. Swing applications don't seem to have a great solution for that (one that automatically uses the scaling of your desktop), but I could at least get 2x scaling by manually running

java -Dsun.java2d.uiScale=2.0 -jar jar/jdotxt.jar

Third Party Code

jdotxt uses code and libraries from the following open source projects:

Misc Links

jdotxt's People

Contributors

2br-2b avatar aroundarmor avatar chms avatar koppor avatar mindshoot avatar nicdnb avatar t7ko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

jdotxt's Issues

Mass-update of priority for set of tasks

Need some solution for lowering priority for a selected range of tasks.

Use case: I see a ton of entries with (A) flag, and I want to push everything down and select only those few which deserve (A) flag right now.

Add "Edit lists" and "Edit contexts" dialogs as in Simpletask

It's already easy to add lists/contexts to an entry (with auto-completion). But it's not that easy to remove existing -- you need to navigate the cursor, then select/delete. Simpletask makes it easy: you open "edit lists" dialog, and you get lists/contexts with checkboxes. Removing is super-easy, since checked items are on the top of the list.

Calendar icon makes tasks overly tall

I love the new calendar icon functionality you added, @t7ko!
But for my taste, it takes up to much vertical space. I have many tasks with short text, and with this update, I see 6 instead of 10 task in the same-size window.
Any change we could place the icon buttons differently? Maybe as a horizontal list instead, in the line of the date?

Support "rename label/context" action

Suggested method -- right click in filter pane on the left, drop down menu with entry "rename", then dialog (or in-place editing, whichever easier).

Use case: I recently started using a flow where I create project name with numerical prefixes like 01, 02 etc, so they stay on top of projects list and I see them first when reviewing. Small problem is when such project is put on hold or lowered in priority, there is no easy way to "move it down" in the list, as there is no "rename" feature in jdotxt. I have to resort to text editors for such change,which is less convenient.

Incorrect handling of todo entries with recurence but no "create date"

Add entry with no "date created", but with threshold date t: and recurrence rec:

E.g. like this:

test entry t:2021-04-09 rec:1d

Then click "complete".

The original entry is completed properly (adds x and completion date).

The newly created entries are malformed: it adds two dates instead of one, and there is no space between second date and original text:

2021-04-09 2021-04-09test entry t:2021-04-10 rec:1d

Work-around -- do not create entries w/o "created date". (Note -- this can only happen if you add entries outside jdotxt, eg. with text editor; jdotxt will always add "date created.)

Reproduced on latest release, 0.4.8.2.

Wrap long lines

Long task text is not visible; would be nice to wrap it and display in full.

Change app ID?...

In case someone wants to keep my build in a separate sandbox from vanilla jdotxt build.

Parts of old text is not replaced if autocompletion is activated from the middle of the word

If you put cursor in the middle of the context/project and pick an option from the completion dialog, it will insert the new text, but will not remove old one. Example:

Create two tasks:

asdf +test1 asdf
asdf +test2 asdf
asdf +test3 asdf

Then put cursor after +te in the 3rd line. You'll get dropdown. Select first entry, test1. You'll get 3rd line changed into:

asdf +test1 st3 asdf

The st3 part should have been removed.

Update links in readme

Lots of the links point towards the old repo. We need to point them towards the new repo.

Idea: add 3rd button in task list to clone task

My specific use case:

I have several recurring tasks which work as a reminder for "long" action items. Example:

2018-03-01 confirm monthly budget with a customer -- t:2018-04-01 rec:+1m

These long action items take me several days, and some times I need to reschedule them a few days ahead, but I still need to get the next reminder exactly at the schedule defined in the current one. This means I cannot simply reschedule this task -- it will move forward the next one too. So what I want is to create a clone of the reminder, remove rec:... from it, and reschedule forward, and then complete the main one (which automatically creates the right next 'reminder').

And when I say "clone", I mean just copy entire text of the task into "new task" area.

Build Error

Trying to build the program, I get this error:

foo@computer:~/uncompiled/fork/jdotxt$ ant
Buildfile: /home/foo/uncompiled/fork/jdotxt/build.xml

init:
    [mkdir] Created dir: /home/foo/uncompiled/fork/jdotxt/build/main
    [mkdir] Created dir: /home/foo/uncompiled/fork/jdotxt/build/test

compile:
    [javac] Compiling 68 source files to /home/foo/uncompiled/fork/jdotxt/build/main
    [javac] /home/foo/uncompiled/fork/jdotxt/src/com/chschmid/jdotxt/gui/JdotxtGUI.java:44: error: package javax.xml.bind does not exist
    [javac] import javax.xml.bind.DatatypeConverter;
    [javac]                      ^
    [javac] /home/foo/uncompiled/fork/jdotxt/src/com/todotxt/todotxttouch/task/JdotxtTaskBagImpl.java:26: error: package javax.xml.bind does not exist
    [javac] import javax.xml.bind.DatatypeConverter;
    [javac]                      ^
    [javac] /home/foo/uncompiled/fork/jdotxt/src/com/todotxt/todotxttouch/task/TaskBagImpl.java:26: error: package javax.xml.bind does not exist
    [javac] import javax.xml.bind.DatatypeConverter;
    [javac]                      ^
    [javac] Note: /home/foo/uncompiled/fork/jdotxt/src/com/chschmid/jdotxt/gui/JdotxtGUI.java uses or overrides a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 3 errors

BUILD FAILED
/home/foo/uncompiled/fork/jdotxt/build.xml:36: Compile failed; see the compiler error output for details.

Total time: 19 seconds

I tried building the original program, and I can build it fine.

Filter out projects when selecting context and vise versa

This is implemented already in some form in one of forks; review and adjust and integrate it.

One thing though, only activate the feature if user explicitly wants it. E.g. when doing CTRL-click when selecting project/context. And leave default behavior intact.

[enhancement] Enable dark mode

Got this idea from a user via the matrix/element group for SimpleTask and thought it would be a nice idea to bring in. Do not know how much work it means to adjust the IMHO as of now hard coded (?) colour settings as variables.
Let the user switch between e.g. default and dark mode, via toggle button..?

Hot keys for saved sorts

Support hotkeys to quickly switch between saved sorts. E.g. CTRL-1...CTRL-9 switch between first 9 sorts in the list.

Will also require an ability to bring saved sorts up and down.

Group tasks in view by some Criteria

Similar to what Simpletask or Todotxt.net do -- items in the list are not only sorted by the criterion, but also "grouped" -- e.g. if you sort by Priority, it creates groups for each priority, individually titled:

A

  • (A) task 1
  • (A) task 2

B

  • (B) task 3
  • (B) task 4

(-)

  • task 5
  • task 6

Strange navigation in autocompletion dialog near the last entry

If you use down arrow to navigate to the last entry in autocompletion, and then press down once more -- Enter does not do anything, even though selection is still on the last entry. Looks like down increases some internal counter. If you hit up -- Enter will do the right thing and select the last entry.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.