Change Item List Easily #34

Open
opened 2025-11-01 20:44:51 -05:00 by GiteaMirror · 22 comments
Owner

Originally created by @conor-f on GitHub (Feb 13, 2022).

It's quite a few clicks to move an item from one list to another. My ideal workflow is to put everything to a default list, then be able to click and drag that item into a new list, most likely in the sidebar.

Does this make sense? Can post screenshots if it would help explain

Originally created by @conor-f on GitHub (Feb 13, 2022). It's quite a few clicks to move an item from one list to another. My ideal workflow is to put everything to a default list, then be able to click and drag that item into a new list, most likely in the sidebar. Does this make sense? Can post screenshots if it would help explain
Author
Owner

@kolaente commented on GitHub (Feb 13, 2022):

Yeah the idea makes sense.

It will be a bit of work so I don't see it happening soon, but I've just added it to the backlog.

@kolaente commented on GitHub (Feb 13, 2022): Yeah the idea makes sense. It will be a bit of work so I don't see it happening soon, but I've just added it to the backlog.
Author
Owner

@conor-f commented on GitHub (Feb 13, 2022):

Appreciated! Thanks for that :)

@conor-f commented on GitHub (Feb 13, 2022): Appreciated! Thanks for that :)
Author
Owner

@dpschen commented on GitHub (Feb 13, 2022):

For me moving to a temporary list seems like an unnecessary and complex in-between step.

@conor-f:
Would it solve your use case if you would be able to drag tasks in other lists in the sidebar directly.

@dpschen commented on GitHub (Feb 13, 2022): For me moving to a temporary list seems like an unnecessary and complex in-between step. @conor-f: Would it solve your use case if you would be able to drag tasks in other lists in the sidebar directly.
Author
Owner

@conor-f commented on GitHub (Feb 13, 2022):

Yeah, really it's just a means of reorganization. I frequently end up putting things my default list instead of using the appropriate # value to put it in the correct list (e.g. "Today's Todo List") and then at the end of my day I want to move things from "Today's Todo List" to the relevant longer term one (e.g. Move groceries I didn't pick up that were in "Today's Todo List" into the "Shopping" todo list).

My use case would most often be opening up one list, looking at the items in it, and dragging them from the list to a different list I can see in the Sidebar in order to move them to that list.

Does that make sense?

@conor-f commented on GitHub (Feb 13, 2022): Yeah, really it's just a means of reorganization. I frequently end up putting things my default list instead of using the appropriate `#` value to put it in the correct list (e.g. "Today's Todo List") and then at the end of my day I want to move things from "Today's Todo List" to the relevant longer term one (e.g. Move groceries I didn't pick up that were in "Today's Todo List" into the "Shopping" todo list). My use case would most often be opening up one list, looking at the items in it, and dragging them from the list to a different list I can see in the Sidebar in order to move them to that list. Does that make sense?
Author
Owner

@dpschen commented on GitHub (Feb 13, 2022):

Makes sense!

@kolaente can you link & adjust the backlog item?

@dpschen commented on GitHub (Feb 13, 2022): Makes sense! @kolaente can you link & adjust the backlog item?
Author
Owner

@ohare93 commented on GitHub (Aug 24, 2022):

To expand on this request (since I want something similar) it seems to me there are multiple levels of achieving this feature request. Here I have listed a few, with the higher the number being both easier for the user and more effort to implement (imo, as a programmer who has not looked at the source code for this repo). The below options presume you start inside the list view.

  1. Current functionality: Open a task, select move (or hit m), type in the name of the list (with prediction), hit enter. Repeat these 4 steps for every other task you wish to move... 😕
  2. Open a task with subtasks / related tasks, hit a new Move (with relations) button, select which type of relations to move with the original task, type in the name of the list (with prediction), hit enter
  3. Select multiple tasks, hit a (new) move button, type in the name of the list (with prediction), hit enter. (This would be good enough for me 👍)
  4. Drag and drop a single task into the sidebar of lists (what @conor-f suggested / requested). Repeat this 1 step for each task you wish to move 👍
  5. Select multiple task in a list, then drag and drop them into the sidebar of lists 👍 👍

Then to add in a wildcard that I have no idea where it would be in the complexity list, what I would reaaaaaally like: Bucket mode! (Mass Move Selector) 😍 To be able to go into this "Bucket Mode" (via a button or a shortcut) which first asks you which list you wish to move things to, then you simply click on an item to move it instantly. Select 1 or multiple. Change the destination list at any time. (Feature creep: set keyboard shortcuts to change the list while in Bucket mode for the number keys (1 is list Incoming, 2 is list Today, 3 is list AfterKidsAreAsleep, etc). Exit "Bucket mode" at any time.

@ohare93 commented on GitHub (Aug 24, 2022): To expand on this request (since I want something similar) it seems to me there are multiple levels of achieving this feature request. Here I have listed a few, with the higher the number being both easier for the user and more effort to implement (imo, as a programmer who has not looked at the source code for this repo). The below options presume you start inside the list view. 0. Current functionality: Open a task, select move (or hit m), type in the name of the list (with prediction), hit enter. Repeat these 4 steps for every other task you wish to move... :confused: 1. Open a task with subtasks / related tasks, hit a new Move (with relations) button, select which type of relations to move with the original task, type in the name of the list (with prediction), hit enter 2. Select multiple tasks, hit a (new) move button, type in the name of the list (with prediction), hit enter. (This would be *good enough* for me :+1:) 3. Drag and drop a single task into the sidebar of lists (what @conor-f suggested / requested). Repeat this 1 step for each task you wish to move :+1: 4. Select multiple task in a list, then drag and drop them into the sidebar of lists :+1: :+1: Then to add in a wildcard that I have no idea where it would be in the complexity list, what I would reaaaaaally like: **Bucket mode!** (Mass Move Selector) :heart_eyes: To be able to go into this "Bucket Mode" (via a button or a shortcut) which first asks you which list you wish to move things to, then you simply click on an item to move it instantly. Select 1 or multiple. Change the destination list at any time. (Feature creep: set keyboard shortcuts to change the list while in Bucket mode for the number keys (1 is list Incoming, 2 is list Today, 3 is list AfterKidsAreAsleep, etc). Exit "Bucket mode" at any time.
Author
Owner

@Torqu3Wr3nch commented on GitHub (Jan 5, 2024):

+1.

This would be a major UX improvement to Vikunja. Much more efficient for those who use a "GTD"-like workflow where tasks are dumped into the inbox and then sorted/triaged to other lists/projects later.

@Torqu3Wr3nch commented on GitHub (Jan 5, 2024): +1. This would be a major UX improvement to Vikunja. Much more efficient for those who use a "GTD"-like workflow where tasks are dumped into the inbox and then sorted/triaged to other lists/projects later.
Author
Owner

@VincentSC commented on GitHub (Oct 22, 2024):

This would be perfect for splitting up projects. So getting a whole bucket into a separate project or sub-project, when the "clean up attic" becomes slightly larger than initially planned.

Currently I have two tabs open and copying all comments on one task in project A to another task in project B. The advantage is that it's a good time to restructure and organize, but I could also have done that when it was at top of the list.

So in conclusion: +1

@VincentSC commented on GitHub (Oct 22, 2024): This would be perfect for splitting up projects. So getting a whole bucket into a separate project or sub-project, when the "clean up attic" becomes slightly larger than initially planned. Currently I have two tabs open and copying all comments on one task in project A to another task in project B. The advantage is that it's a good time to restructure and organize, but I could also have done that when it was at top of the list. So in conclusion: +1
Author
Owner

@devbydaniel commented on GitHub (Nov 3, 2024):

+1

Another solution could be:

  1. From the initial list view of a project, press down/up arrow keys to select tasks in the list below the new task input field
  2. Hit 'm' while a task is selected
  3. Type or select the new project in a dialog
  4. Hit Enter
  5. Task is moved to the selected project, focus goes to the next task in the list
  6. Repeat with step 2

This could be complemented by a new '...' menu icon on each task which allows for task actions directly in the list view, with one of them being "move".

@devbydaniel commented on GitHub (Nov 3, 2024): +1 Another solution could be: 1. From the initial list view of a project, press down/up arrow keys to select tasks in the list below the new task input field 2. Hit 'm' while a task is selected 3. Type or select the new project in a dialog 4. Hit Enter 5. Task is moved to the selected project, focus goes to the next task in the list 6. Repeat with step 2 This could be complemented by a new '...' menu icon on each task which allows for task actions directly in the list view, with one of them being "move".
Author
Owner

@hnicke commented on GitHub (Nov 23, 2024):

I'm evaluating vikunja as a todoist replacement for my GTD-style workflow.
Unfortunately the lack of drag-n-drop to move a task to another project is a show stopper for me.
It's a necessary feature for GTD-style workflows.

+1

@hnicke commented on GitHub (Nov 23, 2024): I'm evaluating vikunja as a todoist replacement for my GTD-style workflow. Unfortunately the lack of drag-n-drop to move a task to another project is a show stopper for me. It's a necessary feature for GTD-style workflows. +1
Author
Owner

@ray24777 commented on GitHub (Mar 17, 2025):

I would really appreciate if developers would add such a feature.
+1

@ray24777 commented on GitHub (Mar 17, 2025): I would really appreciate if developers would add such a feature. +1
Author
Owner

@BoboGoon commented on GitHub (Apr 3, 2025):

Yeah, it would be awesome!

Two major use cases:

  • on the homepage, drag & drop a task into a project
  • on a project page, drag & drop a task on another task and being asked the nature of the relationship between the two tasks
@BoboGoon commented on GitHub (Apr 3, 2025): Yeah, it would be awesome! Two major use cases: - on the homepage, drag & drop a task into a project - on a project page, drag & drop a task on another task and being asked the nature of the relationship between the two tasks
Author
Owner

@akondyakov commented on GitHub (Apr 15, 2025):

We really need this feature, I also wanted to switch from Todoist, but the lack of the ability to move with the mouse is stopping me for now, without this feature, using GTD is completely inconvenient

@akondyakov commented on GitHub (Apr 15, 2025): We really need this feature, I also wanted to switch from Todoist, but the lack of the ability to move with the mouse is stopping me for now, without this feature, using GTD is completely inconvenient
Author
Owner

@rikrdo89 commented on GitHub (Jun 30, 2025):

just echoing my support for this feature request. Not having the ability to organize tasks that get dump in the inbox into different projects is just preventing me from using this app.

@rikrdo89 commented on GitHub (Jun 30, 2025): just echoing my support for this feature request. Not having the ability to organize tasks that get dump in the inbox into different projects is just preventing me from using this app.
Author
Owner

@asano6xA0 commented on GitHub (Jul 24, 2025):

Using the CLI tool Vja - Vikunja Client (version 4.7.3), everything worked well.
I use the web browser to mark tasks that require action with a favorite flag, and then I use the vja command to repeatedly process only those favorite-marked tasks.

For example, when I want to move tasks to a project with ID 20, I run the following script:

alias vja="~/python/vja/venv/bin/vja"
# vja project ls
project_id=20
# project_id=vja project ls | grep "project name" | awk '{print $1}' 
vja ls -f true | grep -v '^Count:' | awk '{print $1}' | while read -r task_id; do
    vja edit -o $project_id $task_id
    vja edit --no-favorite "$task_id"
done

In the same way, I was also able to perform batch operations such as deleting tasks, adding labels, and setting due dates.

API_URL=$(grep '^api_url=' ~/.vjacli/vja.rc | cut -d'=' -f2)
TOKEN=$(jq -r '.token' ~/.vjacli/token.json)
vja ls -f true | grep -v '^Count:' | awk '{print $1}' | while read -r id; do
        curl -X DELETE -H "Authorization: Bearer $TOKEN" $API_URL/tasks/$id
done

Although vja does not have a delete command, this allows me to perform bulk deletion of tasks.

@asano6xA0 commented on GitHub (Jul 24, 2025): Using the CLI tool **[Vja - Vikunja Client (version 4.7.3)](https://vikunja.io/docs/integrations/#vja---vikunja-client)**, everything worked well. I use the web browser to mark tasks that require action with a favorite flag, and then I use the `vja` command to repeatedly process only those favorite-marked tasks. For example, when I want to move tasks to a project with ID 20, I run the following script: ```bash alias vja="~/python/vja/venv/bin/vja" # vja project ls project_id=20 # project_id=vja project ls | grep "project name" | awk '{print $1}' vja ls -f true | grep -v '^Count:' | awk '{print $1}' | while read -r task_id; do vja edit -o $project_id $task_id vja edit --no-favorite "$task_id" done ``` In the same way, I was also able to perform batch operations such as deleting tasks, adding labels, and setting due dates. ```bash API_URL=$(grep '^api_url=' ~/.vjacli/vja.rc | cut -d'=' -f2) TOKEN=$(jq -r '.token' ~/.vjacli/token.json) vja ls -f true | grep -v '^Count:' | awk '{print $1}' | while read -r id; do curl -X DELETE -H "Authorization: Bearer $TOKEN" $API_URL/tasks/$id done ``` Although vja does not have a delete command, this allows me to perform bulk deletion of tasks.
Author
Owner

@Yandrik commented on GitHub (Jul 29, 2025):

This was blocking me too, so as a temporary solution I quickly vibe coded a userscript for this. This currently allows:

  • Quick task project switching
  • Quick task deleting

I have a tags edit button already, but I haven't done anything with that one yet.

This works in basically all lists.

https://github.com/user-attachments/assets/5d4be844-e12c-4cc2-a636-44bb3bcb629b

You can find that here: https://gist.github.com/Yandrik/9a5329575db39b78d5a61a63c858218a
Might help a bit :)

Update(v1.1): Updating tags/labels is now also supported!
Update(v1.2): Label fixes
Update(v1.3): Priority Switching and Styling Improvements

@Yandrik commented on GitHub (Jul 29, 2025): This was blocking me too, so as a temporary solution I quickly vibe coded a userscript for this. This currently allows: - Quick task project switching - Quick task deleting I have a tags edit button already, but I haven't done anything with that one yet. This works in basically all lists. https://github.com/user-attachments/assets/5d4be844-e12c-4cc2-a636-44bb3bcb629b You can find that here: https://gist.github.com/Yandrik/9a5329575db39b78d5a61a63c858218a Might help a bit :) Update(v1.1): Updating tags/labels is now also supported! Update(v1.2): Label fixes Update(v1.3): Priority Switching and Styling Improvements
Author
Owner

@hnicke commented on GitHub (Aug 2, 2025):

@Yandrik thanks, that works nicely! I like how easy it is to switch the list of a task using your userscript.
Tested on firefox and firefox mobile.
I can finally continue moving from todoist to vikunja 🥳

@hnicke commented on GitHub (Aug 2, 2025): @Yandrik thanks, that works nicely! I like how easy it is to switch the list of a task using your userscript. Tested on firefox and firefox mobile. I can finally continue moving from todoist to vikunja 🥳
Author
Owner

@FoxxMD commented on GitHub (Sep 5, 2025):

I need to add my $0.02 since I wrote this up elsewhere.


Imagine this scenario:

I make a project called Shopping over a period of a week that includes 5 items that are grocery related, 10 items that I would get at Home Depot, and 5 items I would get at Target.

At the end of the week I realize I would prefer to have these as separate lists based on where I will get the items: Grocery, Home Improvement, General Shopping.

To re-assign items in Vikunja:

  • Click into each individual item
    • click "Move" [1]
    • focus on Move dropdown
    • type name of project to move to
    • click project
  • Now get back to the original project by clicking it in the left sidebar, repeat from the top

5 actions to move 1 item. That's 100 actions just to move 20 items. It takes me about 5 seconds to the above. 1 1/12 minutes just to re-organize a few items.

Now imagine I do this all of this and then realize it would be better if I had a project-based list for my Home Improvement items, because I have another list of things to fix around the house. That means I need to move another 10 items to the DIY list. Another 50 actions and 50 seconds.

And this is for a trivial example. What if you want to merge or re-assign lists with 30, 50, 100 items?

[1] I realize there is a shortcut for this, doesn't make things that much faster for very large lists


I don't think I'm off base by saying that most people add to todo lists in an ad-hoc manner, as they think of things. Organization of big list of unrelated tasks is emergent. Users don't know how things will be organized until they've enumerated all the thoughts in their head.

This organic usage of Vikunja is punished by the lack of bulk item organization. Each iteration of structuring projects and items is a time sink compounded by the number of items that need to be re-assigned.

Please consider implementing some kind of bulk editing or re-assign functionality. I love Vikunja but I can't bring myself to use it for anything non-trivial because I'm afraid I'll have to spend hours of repetitive clicking just to organize my thoughts.

P.S. how do the Vikunja devs get around this? Do they use their own app and not run into this? Am I missing something obvious?

@FoxxMD commented on GitHub (Sep 5, 2025): I need to add my $0.02 since I wrote this up elsewhere. ___ Imagine this scenario: I make a project called Shopping over a period of a week that includes 5 items that are grocery related, 10 items that I would get at Home Depot, and 5 items I would get at Target. At the end of the week I realize I would prefer to have these as separate lists based on where I will get the items: Grocery, Home Improvement, General Shopping. To re-assign items in Vikunja: * Click into **each individual item** * click "Move" [1] * focus on Move dropdown * type name of project to move to * click project * Now get back to the original project by clicking it in the left sidebar, repeat from the top 5 actions to move 1 item. That's 100 actions just to move 20 items. It takes me about 5 seconds to the above. **1 1/12 minutes just to re-organize a few items.** Now imagine I do this all of this and then realize it would be better if I had a project-based list for my Home Improvement items, because I have another list of things to fix around the house. That means I need to move another 10 items to the DIY list. **Another 50 actions and 50 seconds.** And this is for a trivial example. What if you want to merge or re-assign lists with 30, 50, 100 items? [1] I realize there is a shortcut for this, doesn't make things that much faster for very large lists ___ I don't think I'm off base by saying that most people add to todo lists in an ad-hoc manner, as they think of things. Organization of big list of unrelated tasks is emergent. Users don't know how things will be organized until they've enumerated all the thoughts in their head. This organic usage of Vikunja is _punished_ by the lack of bulk item organization. Each iteration of structuring projects and items is a time sink compounded by the number of items that need to be re-assigned. _Please_ consider implementing some kind of bulk editing or re-assign functionality. I love Vikunja but I can't bring myself to use it for anything non-trivial because I'm afraid I'll have to spend hours of repetitive clicking just to organize my thoughts. P.S. how do the Vikunja devs get around this? Do they use their own app and not run into this? Am I missing something obvious?
Author
Owner

@fybx commented on GitHub (Sep 22, 2025):

This was blocking me too, so as a temporary solution I quickly vibe coded a userscript for this.

I'd love to see @Yandrik's work extended with support for keyboard shortcuts. We already have three shortcuts that work when the focus is on a task list: j, k and Enter. Why not have d for delete, m for move which opens a modal or a drop-down in place to select a project, ...

@fybx commented on GitHub (Sep 22, 2025): > This was blocking me too, so as a temporary solution I quickly vibe coded a userscript for this. I'd love to see @Yandrik's work extended with support for keyboard shortcuts. We already have three shortcuts that work when the focus is on a task list: j, k and Enter. Why not have `d` for delete, `m` for move which opens a modal or a drop-down in place to select a project, ...
Author
Owner

@Yandrik commented on GitHub (Sep 22, 2025):

I like the idea @fybx , but I'm not sure how this would work for targeting the right task. Are you thinking something like

  1. hover over task
  2. press d
  3. deletion triggered

If so I don't quite see the extra value, as you still need the mouse. What might be possible would be adding some sort of keyboard navigation for tasks, potentially vim-like or arrow keys. What do you think? Do you think even the first approach could bring some sort of utility?

If this continues to grow I might just make it into a proper extension instead of just a userscript if I find the time :)

@Yandrik commented on GitHub (Sep 22, 2025): I like the idea @fybx , but I'm not sure how this would work for targeting the right task. Are you thinking something like 1. hover over task 2. press d 3. deletion triggered If so I don't quite see the extra value, as you still need the mouse. What might be possible would be adding some sort of keyboard navigation for tasks, potentially vim-like or arrow keys. What do you think? Do you think even the first approach could bring some sort of utility? If this continues to grow I might just make it into a proper extension instead of just a userscript if I find the time :)
Author
Owner

@fybx commented on GitHub (Sep 22, 2025):

;; @Yandrik

Open up a random project with tasks, click Tab to unfocus on the search bar and click j, this will "select" a task. After that you can move within tasks in this list using j or k, and see task details with Enter.

I'm suggesting to bind new keys to this existing mechanism for a more productive workflow.

@fybx commented on GitHub (Sep 22, 2025): ;; @Yandrik Open up a random project with tasks, click `Tab` to unfocus on the search bar and click `j`, this will "select" a task. After that you can move within tasks in this list using `j` or `k`, and see task details with `Enter`. I'm suggesting to bind new keys to this existing mechanism for a more productive workflow.
Author
Owner

@Yandrik commented on GitHub (Sep 22, 2025):

Interesting, I didn't actually know that mechanism existed :)
I'll take a look into adding that once I have a bit more time, probably end of next week-ish. I definitely like the idea of a more keyboard-centric workflow for this!

@Yandrik commented on GitHub (Sep 22, 2025): Interesting, I didn't actually know that mechanism existed :) I'll take a look into adding that once I have a bit more time, probably end of next week-ish. I definitely like the idea of a more keyboard-centric workflow for this!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vikunja#34