summaryrefslogtreecommitdiff
path: root/mac/.local/bin/task/taskwarrior-tui/cycle-tmux-projects
blob: 360dc20a2648b8c071ceb2757033a6f878c93042 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/sh

# Get the UUID of the selected task from the arguments
uuid="$*"

# Fetch the project of the task using Taskwarrior and jq
project=$(task "$uuid" export | jq -r '.[0].project')

# Check if the project is empty
if [ -z "$project" ] || [ "$project" = "null" ]; then
  echo "No project found for the selected task."
  # Optionally, reset the filter in taskwarrior-tui
  tmux send-keys "/" Escape
  tmux send-keys Escape
  tmux send-keys "/"
  tmux send-keys Enter
  exit 0
fi

# Escape any special characters in the project name for use in tmux command
escaped_project=$(printf '%s' "$project" | sed 's/[][\.*^$(){}+?|]/\\&/g')

# Send keys via tmux to apply the filter in taskwarrior-tui
tmux send-keys "/"
tmux send-keys Escape
tmux send-keys Escape
tmux send-keys "/"

# Use exact match in the filter to avoid partial matches
tmux send-keys "project.is:$escaped_project"
tmux send-keys Enter