Хочу себе запускатор, который работает по такому принципу - по кейбинду открывается окошко терминала с заданной мною геометрией, там я могу указать имя проги или имя файла для выполнения/открытия, жму ентер, окошко закрывается, программа выполняется.
Пока сделал так:
cat .zshrc
xo () {
xdg-open $1 &
disown
exit
}
xr () {
$1 &
disown
exit
}
xo ФАЙЛ
Файл открывается через xdg-open, окошко терминала уходит
По команде
xr команда
Выполняется команда, окошко терминала уходит.
Вроде, всё неплохо, но некоторые вещи далеки от идеала:
1.) Если вызываю xo (ожидается имя файла), то автодополнение zsh работает, как надо - предлагает имя файла. При этом, если я вызываю xr, мне надо, чтобы автодополнение предлагало пути из $PATH (как если бы я не вызывал xr, а просто набрал первую букву имени проги и жал Tab), однако, оно предлагает по-прежнему автодополнять пути (что ожидаемо, ведь оно считает, что xr - команда, а её аргумент - файл). Как бы мне сделать так, чтобы автодополнение после xr предлагало команды, а не файлы?
2.) Можно ли сделать так, чтобы по-умолчанию любая вводимая команда выполнялась так, как если бы она была аргументом функции xr? То есть, я себе вижу это так: я ввожу какую-то команду, как если бы речь шла об обычном zsh/bash без каких-либо функций (автодополнение работает, как обычно), жму enter - она выполняется с отвязкой от shell, shell закрывается. Либо же я могу ввести xo ФАЙЛ и он откроется так, как полагается с учётом той функции xo.
Буду очень благодарен за все советы.