1

Я хочу иметь возможность открывать терминал с помощью сочетания клавиш из любого каталога, в котором я сейчас нахожусь. Программные подходы не вариант, так как у меня нет возможности устанавливать программное обеспечение на этот ПК. Это офис, и у меня нет прав администратора.

Во втором ответе на этот пост указано, как настроить сочетание клавиш для открытия терминала, однако оказывается, что он всегда просто открывает терминал в домашнем каталоге, поэтому это не то, что я ищу.

Так есть ли способ открыть терминал из любого каталога, используя только сочетание клавиш?

2 ответа2

2

Если вы используете файловый менеджер Dolphin, есть встроенная комбинация клавиш Shift + F4 которая делает именно это.

1

РЕДАКТИРОВАТЬ:

В отличие от @LuboKanev, я понял, что OP означает: ярлык для открытия нового терминала в текущем рабочем каталоге, в котором я нахожусь, в текущем активном терминале, а не в файловом менеджере (кстати, в KDE есть та же самая хитрость в другом ответе: в Doplhin вы используете Shift+F4 ; я думаю, что любой приличный файловый менеджер предоставит такой ключ).

Приведенный ниже сценарий немного сложен по этой причине: в текущем активном окне у вас может быть текущее задание (например, вы смотрите фильм через vlc), поэтому у вас нет доступного приглашения; Как вы можете получить свой PWD, не дожидаясь завершения задачи, то есть не дожидаясь окончания фильма? Скрипт решает именно эту проблему.


Следующий скрипт сначала идентифицирует текущее активное окно, затем идентифицирует запущенный в нем процесс (это будет что-то вроде konsole , или xterm , или ..., если это терминал), затем находит дочерние процессы konsole/xterm/... и для каждого дочернего процесса, являющегося оболочкой bash , он находит свой текущий рабочий каталог и открывает окно konsole в данном текущем каталоге. Это делается для всех открытых раковин, а не только для первой.

#!/bin/bash

ACT_WIN=$(xdotool getactivewindow)
MY_PPID=$(xprop -id $ACT_WIN _NET_WM_PID | awk '{print $3}')

for i in $(pgrep -P $MY_PPID); do
      ps -o cmd -p "$i" | grep bash > /dev/null
      if [ $? -eq 0 ]; then
         MYPWD=$(readlink -e /proc/$i/cwd)
         konsole --workdir $MYPWD 2>/dev/null & disown
      fi
done

Осторожно, в вышеописанном нет проверки ошибок ....

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

Сделав этот скрипт исполняемым, вы можете связать его с сочетанием клавиш; это зависит от DM. Для KDE перейдите в System Settings -> Shortcuts and Gestures -> Custom Shortcuts -> Edit (in the lower left corner) -> New -> Global -Shortcut -> Command/URL . В разделе « New Action выберите « Comment чтобы объяснить, что вы делаете, затем trigger (команда, что-то вроде Alt+F10) и затем, под действием, введите абсолютный путь к исполняемому сценарию выше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .