Чи можливо зберегти відкриті вкладки між закриттям та відкриттям файлового менеджера Nautilus?
Переважно навіть через різні виходи та перезавантаження.
Чи можливо зберегти відкриті вкладки між закриттям та відкриттям файлового менеджера Nautilus?
Переважно навіть через різні виходи та перезавантаження.
Відповіді:
На жаль, nautilus не пропонує параметри командного рядка для читання відкритого каталогу своїх вікон, а також не має жодної опції надсилати наявне вікно до іншого каталогу. Оскільки ви не можете згадати те, чого не бачите, у нас не вистачає варіантів з першого погляду.
Однак
Ми маємо xdotool
не робити те, що nautilus
не має, а принаймні підробити поведінку, яку ви описуєте. Ми можемо зробити це таким чином, що "ви повірите в це", якщо ви не знали, як це робиться.
Хоча рішення нижче не переживає перезавантаження, "запам'ятовування" (можливо, на вкладках) вікно та всі відкриті каталоги дуже добре можливі протягом одного сеансу. Оскільки ви згадали, що цікавитесь цим, як "другим вибором", ось воно.
Хоча ми не можемо закрити вікно і зберегти його вкладки та відкриті каталоги, ми можемо змусити існуюче вікно, здавалося б (і повністю) зникнути, за допомогою xdotool
.
Якщо ми згодом змінимо поведінку nautilus
пускового пристрою таким чином, щоб він спочатку шукав можливі невідображені вікна для перезавантаження, перед відкриттям нового, ми маємо абсолютно таку саму поведінку, як ніби nautilus
б запам'ятали останнє використане вікно.
Скопіюйте сценарій нижче в порожній файл, збережіть його як remember.py
#!/usr/bin/env python3
import subprocess
import os
app = "nautilus"
wfile = os.environ["HOME"]+"/.unmapped_"+app
def get(cmd):
# simply a helper function
return subprocess.check_output(cmd).decode("utf-8").strip()
def check_windowtype(w_id):
# check the type of window; only unmap "NORMAL" windows
return "_NET_WM_WINDOW_TYPE_NORMAL" in get(["xprop", "-id", w_id])
def get_pid(app):
# (try to) get the pid of the application
try:
return get(["pgrep", app])
except subprocess.CalledProcessError:
pass
def get_matches(pid):
# get the window list, select the valid (real) app's windows
ws = get(["wmctrl", "-lpG"]).splitlines()
matches = [w.split() for w in ws if pid in w]
return [w for w in matches if check_windowtype(w[0]) == True]
try:
# try to read the file with unmapped windows
wininf = [l.split() for l in open(wfile).readlines()]
except FileNotFoundError:
# if there are no, unmap the current app's windows
filebrowserwins = get_matches(get_pid(app))
if filebrowserwins:
open(wfile, "wt").write(("\n").join((" ").join(l) for l in filebrowserwins))
for w in [w[0] for w in filebrowserwins]:
subprocess.Popen(["xdotool", "windowunmap", w])
else:
arg = "--new-window" if app == "nautilus" else ""
subprocess.Popen([app, arg])
else:
# re- map unmapped windows
for w in 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)
Сценарію потрібно як wmctrl
і xdotool
:
sudo apt-get install wmctrl xdotool
Скопіюйте панель 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
відкрити локальну копію gedit:
gedit ~/.local/share/applications/org.gnome.Nautilus.desktop
(у випадку 15.04 +
)
і шукати перший рядок, починаючи з Exec=
. Змініть його на:
Exec=python3 /path/to/remember.py
Збережіть і закрийте файл.
Створіть комбінацію клавіш за допомогою тієї самої команди: Виберіть: Налаштування системи> "Клавіатура"> "Ярлики"> "Спеціальні ярлики". Клацніть "+" і додайте команду:
python3 /path/to/remember.py
Тепер вийдіть із системи та ввійдіть назад
Використання дуже просте:
Щоб відкрити вікно, зробіть як завжди: натисніть на пусковий засіб nautilus. Вкладіть вікно так, як вам подобається:
Щоб остаточно закрити вікно , закрийте його, натиснувши на вікно "закрити" ( x ).
Щоб зберегти вікно (и) + усі його вкладки:
натисніть клавішу швидкого доступу. Вікно (и) зникне (здавалося б, близько).
Наступного разу, коли ви натиснете на пускову панель, вікно (Наулітус) з’явиться точно так само, як і в останній раз, навіть положення вікна збережеться.
Це воно
Користувачі Nemo можуть однаково використовувати рішення, вказане вище, але:
У головному розділі сценарію змініть:
app = "nautilus"
в:
app = "nemo"
У пункті 3 використовуйте:
cp /usr/share/applications/nemo.desktop ~/.local/share/applications
У пункті 4 використовуйте:
gedit ~/.local/share/applications/nemo.desktop
Випробував, виявив, що працює з немо
Я рекомендую замість цього використовувати інший файловий менеджер, якщо з вами це нормально, оскільки Nautilus не має такої функції .
Ось одна альтернативна програма, яка робить фокус: SpaceFM
Він має багаті функції, такі як, звичайно, знову відкрити останні вкладки .
Щоб зробити його менеджером файлів за замовчуванням :
xdg-mime default spacefm.desktop inode/directory
Спробуйте скористатися цими сценаріями, щоб зберегти та відновити вкладки файлового менеджера nautilus. https://github.com/susurri/nautilus_save_tabs/
Найпростіший спосіб доступу до папок - це закладка. Ви не будете тримати вкладки відкритими, але ви можете принаймні швидко бачити потрібні папки (і якщо ви думаєте про це, закладки виконують функції вкладок).
Просто відкрийте папку на Nautilus, перейдіть до меню «Закладка» та додайте закладку.