From e4aa085a74b10cdb74d0ea2aa5105da7de397aa4 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Tue, 29 Sep 2026 19:05:49 +0200 Subject: feat: bash completion for the launch selectors Completes the options, and the account keys after --account, read from the [account.] sections of the config the application itself reads. Thread and message ids are deliberately not completed: offering them means querying the whole notmuch index on every Tab, which on a real Maildir is tens of thousands of ids nobody would pick from a list anyway. Installed under share/bash-completion/completions, where bash-completion loads a command's file on demand by name. Co-Authored-By: Claude Opus 5.5 --- assets/qtmaildir.bash-completion | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 assets/qtmaildir.bash-completion (limited to 'assets/qtmaildir.bash-completion') diff --git a/assets/qtmaildir.bash-completion b/assets/qtmaildir.bash-completion new file mode 100644 index 0000000..a203be8 --- /dev/null +++ b/assets/qtmaildir.bash-completion @@ -0,0 +1,26 @@ +# bash completion for qtmaildir +# +# Copyright (C) 2026 Danilo M. +# Licensed under the GNU General Public License version 2. +# +# Completes the options, and account keys after --account, read from the +# [account.] sections of the config. Thread and message ids are NOT +# completed: listing them means querying the whole notmuch index on every Tab. + +_qtmaildir() +{ + local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} + local conf=${XDG_CONFIG_HOME:-$HOME/.config}/qtmaildir/qtmaildir.conf + + case $prev in + --account) + [[ -r $conf ]] || return + COMPREPLY=($(compgen -W "$(sed -n 's/^\[account\.\(.*\)\][[:space:]]*$/\1/p' "$conf")" -- "$cur")) + return ;; + --thread|--message) + return ;; + esac + + COMPREPLY=($(compgen -W '--account --thread --message --help --version' -- "$cur")) +} +complete -F _qtmaildir qtmaildir -- cgit v1.2.3