Як я можу відкрити ~ / Desktop, якщо натиснути на кнопку «Відкрити в терміналі» на робочому столі?


8

Сценарій:

  1. Я на своєму робочому столі.
  2. Я виконую клацання правою кнопкою миші і вибираю "Відкрити в терміналі".
  3. Я передбачаю це, щоб відкрити термінал у, ~/Desktopа не моїй домашній папці.

Система:

  • Ubuntu 16.10
  • Єдність
  • Наутілус

Хіба це не набагато швидше Ctrl-T в новий термінал, а потім $ cd Desktop? Ви, ймовірно , навіть закладки повної після написання Деза
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

@orschiro Я боюся, що важко закодований у nautilus. Очевидно, робочий стіл не класифікується як "звичайне" вікно в nautilus, хоча NAUTILUS_SCRIPT_CURRENT_URIпоказує правильну директорію.
Яків Влійм

Як ви вважаєте, чи варто подавати запит на функцію? Було б послідовно, щоб ця функція працювала так, як очікувалося.
orschiro

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

@orschiro Спасибі, і це теж швидко. На настройку піде менше хвилини.
Сергій Колодяжний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.