Ist es möglich, meine geöffneten Registerkarten zwischen dem Schließen und Öffnen des Nautilus-Dateimanagers beizubehalten?
Am besten auch über verschiedene Abmeldungen und Neustarts hinweg.
Ist es möglich, meine geöffneten Registerkarten zwischen dem Schließen und Öffnen des Nautilus-Dateimanagers beizubehalten?
Am besten auch über verschiedene Abmeldungen und Neustarts hinweg.
Antworten:
Leider bietet nautilus weder Befehlszeilenoptionen zum Lesen des geöffneten Verzeichnisses seiner Fenster noch eine Option zum Senden eines vorhandenen Fensters an ein anderes Verzeichnis. Da Sie sich nicht erinnern können, was Sie nicht sehen, gehen uns auf den ersten Blick die Optionen aus.
jedoch
Wir müssen xdotoolnicht tun, was nautilusnicht, sondern zumindest das von Ihnen beschriebene Verhalten vortäuschen . Wir können das so machen, dass "Sie es glauben würden", wenn Sie nicht wüssten, wie es gemacht wird.
Obwohl die folgende Lösung einen Neustart nicht überlebt, ist das "Erinnern" (möglicherweise mit Registerkarten versehen) des Fensters und aller geöffneten Verzeichnisse innerhalb einer Sitzung sehr gut möglich. Da Sie erwähnt haben, dass Sie daran als "zweite Wahl" interessiert sind, ist es hier.
Obwohl wir ein Fenster nicht schließen und seine Registerkarten und geöffneten Verzeichnisse beibehalten können , können wir mithilfe von ein vorhandenes Fenster scheinbar (und vollständig) verschwinden lassen xdotool.
Wenn wir anschließend das Verhalten des nautilusLaunchers so ändern , dass zuerst nach möglichen nicht zugeordneten Fenstern gesucht wird, die neu zugeordnet werden können, bevor ein neues geöffnet wird, haben wir effektiv genau das gleiche Verhalten, als nautiluswürden wir uns an die zuletzt verwendeten Fenster erinnern.
Kopieren Sie das folgende Skript in eine leere Datei und speichern Sie es unter 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)Das Skript benötigt beides wmctrlund xdotool:
sudo apt-get install wmctrl xdotool
Kopieren Sie den nautilusLauncher von /usr/share/applicationsnach~/.local/share/applications
für 15.04 und höher:
cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
für frühere Ubuntu-Versionen:
cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
Öffnen Sie die lokale Kopie mit gedit:
gedit ~/.local/share/applications/org.gnome.Nautilus.desktop
(im Falle von 15.04 +)
und suchen Sie nach der ersten Zeile, beginnend mit Exec=. Ändern Sie es in:
Exec=python3 /path/to/remember.py
Speichern und schließen Sie die Datei.
Erstellen Sie eine Tastenkombination mit demselben Befehl: Wählen Sie: Systemeinstellungen> "Tastatur"> "Tastenkombinationen"> "Benutzerdefinierte Tastenkombinationen". Klicken Sie auf das "+" und fügen Sie den Befehl hinzu:
python3 /path/to/remember.py
Melden Sie sich jetzt ab und wieder an
Die Verwendung ist sehr einfach:
Gehen Sie wie gewohnt vor, um ein Fenster zu öffnen: Klicken Sie auf den Nautilus-Launcher. Tab das Fenster wie Sie möchten:
Um ein Fenster endgültig zu schließen , schließen Sie es, indem Sie auf das Feld "Schließen" ( x ) des Fensters klicken .
So behalten Sie die Fenster und alle Registerkarten bei:
Drücken Sie die Tastenkombination. Die Fenster verschwinden (scheinbar geschlossen).
Wenn Sie das nächste Mal auf den Launcher klicken, werden die Nautilus-Fenster genau wie beim letzten Mal angezeigt, auch die Fensterpositionen bleiben erhalten.
Das ist es
Nemo-Benutzer können die oben genannte Lösung ebenfalls verwenden, aber:
Ändern Sie im Kopfbereich des Skripts:
app = "nautilus"
in:
app = "nemo"
Verwenden Sie in Punkt 3:
cp /usr/share/applications/nemo.desktop ~/.local/share/applications
Verwenden Sie in Punkt 4:
gedit ~/.local/share/applications/nemo.desktop
Getestet, erwies sich als mit nemo arbeitend
Ich empfehle stattdessen die Verwendung eines anderen Dateimanagers, wenn dies für Sie in Ordnung ist, da Nautilus diese Funktion nicht bietet .
Hier ist eine alternative App, die den Trick macht: SpaceFM
Hier erfahren Sie, wie Sie es installieren.
Es verfügt über umfangreiche Funktionen wie das erneute Öffnen der letzten Registerkarten .
So machen Sie es zum Standard- Dateimanager:
xdg-mime default spacefm.desktop inode/directory
Probieren Sie diese Skripte aus, um Registerkarten des Nautilus-Dateimanagers zu speichern und wiederherzustellen. https://github.com/susurri/nautilus_save_tabs/
Der einfachste Weg, auf Ordner zuzugreifen, ist das Lesezeichen. Sie werden Ihre Registerkarten nicht geöffnet lassen, aber Sie können zumindest die gewünschten Ordner schnell sehen (und wenn Sie darüber nachdenken, fungieren die Lesezeichen als Registerkarten).
Öffnen Sie einfach einen Ordner in Nautilus, gehen Sie zum Lesezeichen-Menü und fügen Sie ein Lesezeichen hinzu.