Allow swapping with no ETH tokens in wallet

Currently I have some tokens (other then ETH) and I cannot swap them to anything because my wallet doesn’t have ETH stored. I wanted to swap my tokens to ETH but I still need to provide some ETH from outside to make swap my tokens…

It would be nice if one could swap tokens to other tokens and could specify that transaction fee (or Gas) should be deducted from other than ETH token when no ETH tokens are available.
MetaMask could use (user specified) token from wallet to cover costs of gas.