РЕДАКТИРОВАТЬ:
В отличие от @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) и затем, под действием, введите абсолютный путь к исполняемому сценарию выше.