Hi All,

I am currently working on a widget. It is used so that I can use my git alias also for my dotfiles.

The widget is given bellow:

function _check-if-dotfile-command {

if [[ $BUFFER =~ ^"g d untrack-all" ]]
then
zle .kill-whole-line
BUFFER="g d rm --cached -r ~"
zle .accept-line
elif [[ $BUFFER =~ ^"g d add-and-commit" ]]
then
BUFFERz=$(echo $BUFFER | cut -d '"' -f2)
zle .kill-whole-line
BUFFER="git d add ~ && g d commit -am \"${BUFFERz}\""
zle .accept-line
elif [[ $BUFFER =~ ^"g d sb" ]]
then
zle .kill-whole-line
BUFFER="git d branch | rofi -dmenu | xargs git checkout"
zle .accept-line
elif [[ $BUFFER =~ ^"g d stash-and-reset" ]]
then
zle .kill-whole-line
BUFFER="git d stash && git d reset --hard HEAD"
zle .accept-line
elif [[ $BUFFER =~ ^"g d last" ]]
then
zle .kill-whole-line
BUFFER="git d --no-pager log -1 --oneline"
zle .accept-line
else
zle .accept-line
fi
}

zle -N accept-line _check-if-dotfile-command

Now, the problem is, the commands I am invoking are not being saved in the history file.
For example, if I use:

% g d add-and-commit "Few Modifications"

it saves:

: 1603565685:0;git d add ~ && g d commit -am "Few Modifications"

I know the command below is the command I actually ran. But I want to save the command I used as well. Is there any way I can save a command in history from within the widget?

Thanks and Best Regards,

Ahmad Ismail