Как определить, какой дистрибутив Linux работает? [дубликат]

По состоянию на 2017 год исходный код (runner.py) делал это:

        term = os.environ.get('TERMCMD', os.environ.get('TERM'))
        if term not in get_executables():
            term = 'x-terminal-emulator'
        if term not in get_executables():
            term = 'xterm'
        if isinstance(action, str):
            action = term + ' -e ' + action
        else:
            action = [term, '-e'] + action

поэтому вы должны быть в состоянии поместить любое xterm-совместимое имя программы в TERMCMD. Однако обратите внимание на использование -e (gnome-terminal не соответствует поведению xterm). Если вы используете Debian/Ubuntu/etc, разработчики пакетов Debian попытались создать обертку, скрывающую эту разницу в функции x-terminal-emulator. Если это относится к вам, вы можете установить TERMCMD в x-terminal-emulator.

Последующая информация - хотя дизайн функции TERMCMD не претерпел значительных изменений с середины 2016 года, местоположение в исходниках изменилось:

Это реализовано в get_term:

def get_term():
    """Get the user terminal executable name.
    Either $TERMCMD, $TERM, "x-terminal-emulator" or "xterm", in this order.
    """
    command = environ.get('TERMCMD', environ.get('TERM'))
    if shlex.split(command)[0] not in get_executables():
        command = 'x-terminal-emulator'
        if command not in get_executables():
            command = 'xterm'
    return command

который использует x-terminal-emulator, как и раньше.

Существует связанное использование TERMCMD в rifle.py, используемое для выполнения команд, а не (как спрашивалось в вопросе) для открытия терминала. В любом случае, ключом к использованию ranger является x-terminal-emulator, поскольку разработчики GNOME Terminal не документируют свой интерфейс командной строки, а разработчики Debian предоставили это обходное решение.

Цитата из Ошибка 701691 - -e принимает только один термин; все другие эмуляторы терминала принимают более одного терминала (которую разработчик отказался исправлять, отметив её как "не ошибку"):

Christian Persch 2013-06-06 16:02:54 UTC

Нет документации для опций командной строки gnome-terminal.

72
28.03.2012, 03:43
0 ответов

Теги

Похожие вопросы