Как настроить "Open in Terminal" правой кнопки Nemo на запуск "gnome-terminal"

Это самое короткое решение, которое я смог придумать:

Учитывая эти функции:

# List processing
map() { while IFS='' read -r x; do "$@" "$x"; done; }
filter() { while IFS='' read -r x; do "$@" "$x" >&2 && echo "$x"; done; }
foldr() { local f="$1"; local result="$2"; shift 2;  while IFS='' read -r x; do result="$( "$f" "$@" "$x" "$result" )"; done; echo "$result"; }
foldl() { local f="$1"; local result="$2"; shift 2;  while IFS='' read -r x; do result="$( "$f" "$@" "$result" "$x" )"; done; echo "$result"; }

# Helpers
re() { [[ "$2" =~ $1 ]]; }

Примеры:

# Example helpers
toLower() { tr '[:upper:]' '[:lower:]'; }
showStructure() { [[ "$1" == "--curly" ]] && echo "{$2; $3}" || echo "($1, $2)"; }

# All lib* directories, ignoring case, using regex
ls /usr | map toLower | filter re 'lib.*'

# All block devices. (Using test, for lack of a full bash [[ … ]].)
cd /dev; ls | filter test -b

# Show difference between foldr and foldl
$ ls / | foldr showStructure '()'
(var/, (usr/, (tmp/, (sys/, (sbin/, (run/, (root/, (proc/, (opt/, (mnt/, (media/, (lost+found/, (lib64/, (lib32/, (lib@, (home/, (etc/, (dev/, (daten/, (boot/, (bin/, ())))))))))))))))))))))
$ ls / | foldr showStructure '{}' --curly
{var/; {usr/; {tmp/; {sys/; {sbin/; {run/; {root/; {proc/; {opt/; {mnt/; {media/; {lost+found/; {lib64/; {lib32/; {lib@; {home/; {etc/; {dev/; {daten/; {boot/; {bin/; {}}}}}}}}}}}}}}}}}}}}}}

(Эти примеры, конечно, просто примеры использования, и в реальности этот стиль имеет смысл только для более сложных случаев использования)

Вообще, всегда можно использовать следующий стиль:

f() { something "$@"       ; }; someList    | map    f
g() { something "$1" "$2" …; }; someCommand | filter g
⋮                              ⋮            ⋮     ⋮

Это не совсем лямбда, но очень очень близко. Только несколько лишних символов.

Но любое из следующих удобных сокращений не работает, насколько я могу судить:

λ() { [[ $@ ]]; } # fails on spaces
λ() { [[ "${@:-1}" ${@:1:-1} ]]; } # syntax error
alias λ=test # somehow ignored

К сожалению, bash не очень хорошо подходит для этого стиля, хотя некоторые его функции имеют очень функциональный стиль.

6
10.01.2017, 19:26
7 ответов

Nemo использует конфигурацию gsettings. Это восстановило предполагаемое поведение:

$ gsettings set org.gnome.desktop.default-applications.terminal exec gnome-terminal

В Ubuntu по какой-то причине все по-другому:

$ gsettings set org.cinnamon.desktop.default-applications.terminal exec gnome-terminal
18
27.01.2020, 20:20

Google привел меня сюда, поэтому я возобновляю эту ветку в надежде избавить хотя бы одного человека от нескольких ненужных головных болей.

Я использую Debian, и предложение Джеймса, приведенное выше, для меня не сработало. Итак, я взглянул на исходный код Nemo и в nemo-global-preferences.c обнаружил, что (восходящая) схема конфигурации выглядит следующим образом:

org.cinnamon.desktop.default-applications .terminal

Я использую Nemo вместо Nautilus, и поскольку я использую Gnome3 вместо Cinnamon, для меня этой схемы даже не существовало. После выполнения следующей команды действие «Открыть в терминале» открывает оболочку gnome в правильном каталоге.

$ gsettings set org.cinnamon.desktop.default-applications.terminal exec gnome-shell 
30
27.01.2020, 20:20

В Xubuntu 18.10 это помогает мне (Я использую сакуру в качестве терминала):

$ gsettings set org.cinnamon.desktop.default-applications.terminal exec sakura
8
27.01.2020, 20:20

Найдите и откройте «Предпочитаемое приложение» в главном меню.

Menu to find Preferred Application

Выберите «Терминатор» в диалоговом окне «Предпочитаемое приложение».

Preferred Application

Терминатор будет установлен в качестве терминального приложения по умолчанию для системы.

  1. Вы можете использовать "CTRL + ALT + T", чтобы открыть терминал.
  2. RНажмите и откройте контекстное меню в Nemo File Manager в любом каталоге и откройте терминал оттуда.

Все они откроют Terminator или терминал по умолчанию, который вы установили.

2
27.01.2020, 20:20

Сначала установите клемму X по умолчанию:

sudo update-alternatives --config x-terminal-emulator

Затем вы можете установить терминал по умолчанию для Cinnamonx-terminal-emulator(Nemo — это файловый менеджер Cinnamon, поэтому он берет свои настройки из конфигурации Cinnamon):

gsettings set org.cinnamon.desktop.default-applications.terminal exec x-terminal-emulator

Теперь ваша среда рабочего стола (, например Gnome )и приложения Cinnamon, будут использовать один и тот же терминал, и если вы в будущем используете первую команду для изменения терминала X, ваши приложения Cinnamon также должны использовать этот новый терминал..

2
27.01.2020, 20:20

В случае, если вы хотите не заменить, а добавить «Открыть в Terminator» в контекстное меню -,

  1. перейти в папку /home/$USER/.local/share/nemo/actions,

  2. создать open_in_terminator.nemo_actionфайл:

     [Nemo Action]
    
     Name=Open in Terminator
     Comment=Open the 'terminator' terminal in the selected folder
     Exec=terminator --working-directory="%F"
     Icon-Name=terminator
     Selection=any
     Extensions=dir;
    

Не забывайте двойные кавычки("")вокруг "%F", иначе действие «Открыть в терминаторе» не будет работать из любой папки, в пути которой есть пробелы.

enter image description here

Ссылки:

  1. Сообщение в блоге :«Добавить право -Click Commands в Linux Mint / Ubuntu», автор Angelos Kyritsis
  2. Образец Nemo щелкните правой кнопкой мыши -файл действия меню из /usr/share/nemo/actions/sample.nemo _действие
4
25.04.2020, 15:57

Забрел в эту старую ветку, могу добавить свой конфиг, по состоянию на 2020 . Настройки для моей системы были почти идентичны:

org.cinnamon.desktop.applications.terminal

У меня нет части default-.

0
21.09.2020, 09:29

Теги

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