Как я могу заставить файловый менеджер Наутилуса помнить мои открытые вкладки?

Действительно ли возможно сохранить мои открытые вкладки между закрытием и открытием файлового менеджера Наутилуса?

Предпочтительно даже через различные выходы из системы и перезапуски.

12
задан 24 February 2016 в 06:49

4 ответа

(Очень) ограниченные параметры командной строки nautilus

К сожалению, nautilus не предлагает команду параметры строки для чтения открытого каталога его окон, а также нет возможности отправить существующее окно в другой каталог. Поскольку вы не можете вспомнить то, что не видите, у нас заканчиваются возможности на первый взгляд.

Однако

У нас есть xdotool , чтобы не делать того, что не делает nautilus не, но как минимум подделывать поведение, которое вы описываете. Мы можем сделать это таким образом, чтобы «вы поверили», если бы не знали, как это делается.

Хотя решение ниже не выдерживает перезапуска, «запоминающее» (возможно с вкладками) окно и все открытое каталоги вполне возможно в рамках одного сеанса. Поскольку вы упомянули, что вас это интересует как «второй вариант», вот он.

Как это работает; процесс

Хотя мы не можем закрыть окно и сохранить его вкладки и открытые каталоги, мы можем заставить существующее окно, казалось бы (и полностью) исчезнуть, с помощью ] xdotool .

Если мы впоследствии изменим поведение программы запуска nautilus таким образом, что она сначала будет искать возможные несопоставленные окна для переназначения, прежде чем открывать новое во-первых, мы имеем точно такое же поведение, как если бы наутилус запомнил последнее использованное окно (окна).

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

  1. Скопируйте приведенный ниже сценарий в пустой файл, сохраните его как Remember.py

     #! / usr / bin / env python3
    подпроцесс импорта
    импорт ОС
    
    app = "наутилус"
    
    wfile = os.environ ["HOME"] + "/. unmapped _" + app
    
    def получить (cmd):
      # просто вспомогательная функция
      вернуть subprocess.check_output (cmd) .decode ("utf-8"). strip ()
    
    def check_windowtype (w_id):
      # проверить тип окна;  отключать отображение только "ОБЫЧНЫХ" окон
      вернуть "_NET_WM_WINDOW_TYPE_NORMAL" в get (["xprop", "-id", w_id])
    
    def get_pid (приложение):
      # (попытаться) получить pid приложения
      пытаться:
      return get (["pgrep", app])
      кроме subprocess.CalledProcessError:
      проходить
    
    def get_matches (pid):
      # получить список окон, выбрать допустимые (реальные) окна приложения
      ws = get (["wmctrl", "-lpG"]). splitlines ()
      match = [w.split () для w в ws, если pid в w]
      вернуть [w вместо w в совпадениях, если check_windowtype (w [0]) == True]
    
    пытаться:
      # пытаемся прочитать файл с несопоставленными окнами
      wininf = [l.split () для l в open (wfile) .readlines ()]
    кроме FileNotFoundError:
      # если их нет, отменить отображение окон текущего приложения
      filebrowserwins = get_matches (get_pid (приложение))
      если filebrowser выигрывает:
      open (wfile, "wt"). write (("\ n"). join (("") .join (l) для l в filebrowserwins))
      для w в [w [0] для w в filebrowserwins]:
      subprocess.Popen (["xdotool", "windowunmap", w])
      еще:
      arg = "--new-window" if app == "nautilus" else ""
      subprocess.Popen ([приложение, аргумент])
    еще:
      # переназначить несопоставленные окна
      для w в wininf:
      wid = w [0];  geo = w [3: 7]
      subprocess.call (["xdotool", "windowmap", wid])
      subprocess.Popen (["wmctrl", "-ir", wid, "-e", "0," + (","). join (geo)])
      os.remove (wfile)
     
  2. Сценарию требуются и wmctrl , и xdotool :

     sudo apt-get install wmctrl xdotool
     
  3. Скопируйте программу запуска nautilus из / usr / share / applications в ~ / .local / share / applications

    для 15.04 и новее:

     cp  /usr/share/applications/org.gnome.Nautilus.desktop ~ / .local / share / applications
     

    для более ранних версий Ubuntu:

     cp /usr/share/applications/nautilus.desktop ~ / .local / share / applications
     
  4. откройте локальную копию с помощью gedit:

     gedit ~ / .local / share / applications / org.gnome.Nautilus.desktop
     

    (в случае 15.04 + )

    и найдите первую строку , начиная с Exec = .Измените его на:

     Exec = python3 /path/to/remember.py
     

    Сохраните и закройте файл.

  5. Создайте сочетание клавиш с той же командой: Выберите: Системные настройки> «Клавиатура»> «Горячие клавиши»> «Пользовательские сочетания клавиш». Нажмите «+» и добавьте команду:

     python3 /path/to/remember.py
     
  6. Теперь выйдите из системы и снова войдите в систему

Как использовать

Использовать очень просто:

  • Чтобы открыть окно, сделайте как обычно: нажмите на пусковую установку nautilus. Включайте окно по желанию:

    enter image description here

  • Чтобы окончательно закрыть окно , закройте его, щелкнув поле «закрыть» ( x ).

  • К сохранить окно (я) + все его вкладки:
    нажмите комбинацию клавиш. Окно (окна) исчезнет (казалось бы, закроется).

    enter image description here

  • В следующий раз, когда вы нажмете кнопку запуска, окна наутилуса будут отображаться точно так же, как в прошлый раз, даже позиция (я) окна будут сохранены.

    enter image description here

Вот и все

Примечание

  • тесты, которые я провел, я не смог найти ни одного недостатка (14.04). если ты может столкнуться с любым, пожалуйста, укажите!
  • В разделе Как использовать я предложил щелкнуть значок nautilus, чтобы переназначить возможные несопоставленные окна. Однако сочетание клавиш будет делать то же самое, поэтому вы можете увидеть, что работает наиболее удобно для вас. Кроме того, если вы открыли папку двойным щелчком по после того, как отменили сопоставление одной или нескольких папок, неотмеченные папки все равно будут повторно сопоставлены с помощью ярлыка.

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

Пользователи Nemo

Пользователи Nemo могут в равной степени используйте решение выше, но:

  • В разделе заголовка скрипта измените:

     app = "nautilus"
     

    в:

     app = "nemo"
     
  • В пункте 3 используйте:

     cp /usr/share/applications/nemo.desktop ~ / .local / share / applications.
     
  • В пункте 4 используйте:

     gedit ~ / .local / share / applications / nemo.desktop.
     

Протестировано, доказано, что работает с nemo

8
ответ дан 23 November 2019 в 04:58

Я рекомендую вместо этого использовать другой файловый менеджер , если вас это устраивает, поскольку Nautilus не имеет этой функции .

Вот одно альтернативное приложение, которое может помочь: SpaceFM

Вот как его установить.

Оно имеет богатые функции, такие как, конечно, повторно открывать последние вкладки .

Чтобы заставить это по умолчанию файловый менеджер:

xdg-mime по умолчанию spacefm.desktop inode / directory

5
ответ дан 23 November 2019 в 04:58

Попробуйте эти сценарии для сохранения и восстановления вкладок файлового менеджера nautilus. https://github.com/susurri/nautilus_save_tabs/

1
ответ дан 23 November 2019 в 04:58

Самый простой способ доступа к папкам - создание закладок. Вы не будете держать свои вкладки открытыми, но вы можете по крайней мере быстро увидеть нужные папки (и, если подумать, закладки действуют как вкладки).

Просто откройте папку в Nautilus, перейдите в меню закладок и добавьте закладку .

0
ответ дан 23 November 2019 в 04:58

Другие вопросы по тегам:

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