This repository contains a "command not found" utility aimed at toolbox users. Currently, it will:
toolbox
run
flatpak-spawn --host
This is done by hooking into the system shells using a specialized shell
function (refer to utils/profile.d/cnf.sh
if you're curious).
There is currently no automation for this, so you'll have to perform a few steps by hand:
cnf
from the projects root directory to some location on
your PATH
. I recommend $HOME/.local/bin
for this, but anywhere on the
path is fine.cnf
whenever a command isn't found, register the shell hooks by
copying utils/profile.d/cnf.sh
to /etc/profile.d/cnf.sh
.And this should be all you need. Here are the commands you probably have to run:
```shell mkdir -p $HOME/.local/bin cp cnf $HOME/.local/bin
sudo cp utils/profile.d/cnf.sh /etc/profile.d/ ```
Now restart your shell or open a new shell tab/window and try it out!
Toolbox containers don't share the hosts /etc/profile.d
. Thus, for the
toolboxes to use cnf
, one must manually append the contents of the
utils/profile.d/cnf.sh
script to the used shells config file, usually
.bashrc
or .zshrc
or whatever you use.
There's a sample configuration file in this repository, cnf.conf
. Copy this
to your $HOME/.config/cnf.conf
to control in which of your many toolboxes
to run the commands if you're not happy with the default one. The file will
tell you more about itself.
When running commands with sudo
, you will realize that by default the default
"command not found" text is displayed. That is because sudo
performs its own
executable lookups, and if it can't find the command you were asking it to
execute, it will print this error and exit. There are two ways to "fix" this:
You directly call cnf
with the command line that sudo couldn't find, like
this:
shell
$ sudo foobar
sudo: foobar: command not found
$ cnf !!
The !!
will be expanded by your shell to the last command you executed,
verbatim, including all of its arguments. This way you're forwarding the
command to cnf directly. In other words: You're doing the shell hooks job, but
manually.
Replacing your sudo executable happens at your own responsibility. Please be careful very careful with this, as of currently this program has undergone minimal testing.
Copy (or link) the utils/sudo
next to cnf
to $HOME/.local/bin
.
```shell cp utils/sudo ~/.local/bin/
```
This wraps around sudo and forwards all commands unknown to sudo to cnf
. All
other commands are forwarded to your systems sudo
under /usr/bin/sudo
.