Как я могу открыть ~ / Desktop, если я нажимаю «Открыть в терминале» на рабочем столе?

8

Сценарий:

  1. Я на своем рабочем столе.
  2. Я выполняю щелчок правой кнопкой мыши и выбираю «Открыть в терминале».
  3. Я предполагаю это, чтобы открыть терминал, ~/Desktopа не мою домашнюю папку.

система:

  • Ubuntu 16.10
  • Единство
  • кораблик
orschiro
источник
Разве это не намного быстрее, чем Ctrl-T в новый терминал и затем $ cd Desktop? Вы можете, вероятно, даже завершить табуляцию после написания Des
tomph

Ответы:

7

Быстро и легко по совпадению, так как мне нужно было только поменять скрипт, который у меня уже был немного :).

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

Как настроить

  1. Создайте, если он еще не существует, каталог ~/.local/share/nautilus/scripts
  2. Скопируйте приведенный ниже скрипт в пустой файл, сохраните его как terminal_here2(без расширения) и сделайте его исполняемым
  3. Выйдите и вернитесь.

Теперь щелкните правой кнопкой мыши по любому файлу на рабочем столе, выберите Scripts-> open_terminal2:

введите описание изображения здесь

и откроется окно терминала в каталоге рабочего стола (в моем случае «Bureaublad»)

Сценарий:

#!/usr/bin/env python3
import subprocess
import os

def replace(path):
    for c in [("%23", "#"), ("%5D", "]"), ("%5E", "^"),
              ("file://", ""), ("%20", " ")]:
        path = path.replace(c[0], c[1])
    return path

# get the current path
current = replace(os.getenv("NAUTILUS_SCRIPT_CURRENT_URI")) 
# raise the found terminal window
os.chdir(os.path.realpath(current))
subprocess.Popen("gnome-terminal")
Якоб Влейм
источник
1
Вы, вероятно, должны использовать urllib.parse.unquoteвместо ручной замены% -кодированных символов
muru
Спасибо! Нет способа использовать уже существующий пункт контекстного меню «Открыть в терминале»?
Орширо
@orschiro Боюсь, что это жестко закодировано в nautilus. Очевидно, что рабочий стол не классифицируется как «обычное» окно в nautilus, хотя NAUTILUS_SCRIPT_CURRENT_URIпоказывает правильный каталог.
Джейкоб Влейм
Как вы думаете, стоит ли подавать запрос на функцию? Было бы последовательно, чтобы эта функция работала как ожидалось.
Орширо
2
Нет необходимости держать процесс Python запущенным, чтобы дождаться gnome-terminalзавершения и затем завершить себя. Вместо этого вы можете позвонить, os.execlp("gnome-terminal", "gnome-terminal")чтобы заменить процесс Python на gnome-terminal.
Дэвид Фёрстер
8

Решение без скрипта

  1. Откройте Nautiuls в вашей домашней папке.
  2. В вашей домашней папке, щелкните правой кнопкой мыши Desktop, нажмите Make link. Вам будет представлен Link to Desktopфайл.
  3. Разместите ссылку на рабочем столе. Теперь всякий раз, когда вы щелкаете по нему правой кнопкой мыши и выбираете Open in Terminalего, открывается терминал с текущим рабочим каталогом, установленным как рабочий стол.
Сергей Колодяжный
источник
Это умный обходной путь!
Орширо
@orschiro Спасибо, и это тоже быстро. Занимает меньше минуты, чтобы настроить.
Сергей Колодяжный