Проблема с командой
urxvt -e sh -c "bash -c 'source /tmp/venv/bin/activate'; bash"
заключается в том, что 1-й bash генерирует сценарий activate
, а затем завершается, поэтому второй bash не запускается в активируемом venv. Запустите вторую команду внутри -c '…'
с активированным venv:
urxvt -e sh -c "exec bash -c 'source /tmp/venv/bin/activate && exec bash'"
PS. Я люблю использовать exec
до заменить текущую оболочку вместо того, чтобы заставить ее работать и ждать. Сохраняет несколько циклов процессора и несколько байтов памяти.