Apakah mungkin untuk menjaga tab terbuka saya antara penutupan dan pembukaan pengelola file Nautilus?
Lebih disukai bahkan di logout dan restart berbeda.
Apakah mungkin untuk menjaga tab terbuka saya antara penutupan dan pembukaan pengelola file Nautilus?
Lebih disukai bahkan di logout dan restart berbeda.
Jawaban:
Sayangnya, nautilus tidak menawarkan opsi baris perintah untuk membaca direktori yang dibuka dari windows-nya, juga tidak memiliki opsi untuk mengirim jendela yang ada ke direktori lain. Karena Anda tidak dapat mengingat apa yang tidak Anda lihat, kami kehabisan pilihan pada pandangan pertama.
Namun
Kami memiliki xdotool, bukan untuk melakukan apa yang nautilustidak, tetapi untuk setidaknya memalsukan perilaku yang Anda gambarkan. Kita bisa melakukannya sedemikian rupa sehingga "Anda akan percaya itu" jika Anda tidak tahu bagaimana melakukannya.
Meskipun solusi di bawah ini tidak selamat dari restart, jendela "mengingat" (mungkin ditabalkan) dan semua direktori yang dibuka sangat mungkin dalam satu sesi. Karena Anda disebutkan tertarik pada itu sebagai "pilihan kedua", ini dia.
Meskipun Kami tidak dapat menutup jendela dan mempertahankan tab dan membuka direktori, kami dapat membuat jendela yang ada tampak (dan sepenuhnya) menghilang, dengan bantuan xdotool.
Jika kita kemudian mengubah perilaku nautiluslauncher sedemikian rupa sehingga pertama kali mencari kemungkinan jendela yang belum dipetakan untuk dipetakan , sebelum membuka yang baru, secara efektif kita memiliki perilaku yang persis sama seolah-olah nautilusakan mengingat jendela yang terakhir digunakan.
Salin skrip di bawah ini ke file kosong, simpan sebagai 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)
Script membutuhkan keduanya wmctrldan xdotool:
sudo apt-get install wmctrl xdotool
Salin nautiluspeluncur dari /usr/share/applicationske~/.local/share/applications
untuk 15,04 dan lebih baru:
cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
untuk versi Ubuntu sebelumnya:
cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
buka salinan lokal dengan gedit:
gedit ~/.local/share/applications/org.gnome.Nautilus.desktop
(dalam hal 15.04 +)
dan cari baris pertama , dimulai dengan Exec=. Ubah itu menjadi:
Exec=python3 /path/to/remember.py
Simpan dan tutup file.
Buat pintasan keyboard dengan perintah yang sama: Pilih: Pengaturan Sistem> "Keyboard"> "Pintasan"> "Pintasan Khusus". Klik "+" dan tambahkan perintah:
python3 /path/to/remember.py
Sekarang logout dan kembali
Penggunaannya sangat sederhana:
Untuk membuka jendela, lakukan seperti biasa: klik pada peluncur nautilus. Tab jendela sesuka Anda:
Untuk menutup jendela secara pasti , tutup dengan mengklik kotak "tutup" ( x ) jendela .
Untuk mempertahankan jendela (s) + semua tabnya:
tekan tombol pintas. Jendela-jendela akan menghilang (tampak dekat).
Lain kali ketika Anda mengklik peluncur, jendela nautilus akan muncul persis seperti terakhir kali, bahkan posisi jendela akan dipertahankan.
Itu dia
Pengguna Nemo dapat menggunakan solusi di atas secara merata, tetapi:
Di bagian kepala skrip, ubah:
app = "nautilus"
ke:
app = "nemo"
Di poin 3, gunakan:
cp /usr/share/applications/nemo.desktop ~/.local/share/applications
Di poin 4, gunakan:
gedit ~/.local/share/applications/nemo.desktop
Diuji, terbukti bisa bekerja dengan nemo
Saya sarankan menggunakan manajer file lain jika tidak apa-apa dengan Anda karena Nautilus tidak memiliki fitur itu .
Berikut ini salah satu aplikasi alternatif yang melakukan trik: SpaceFM
Ini memiliki fitur yang kaya seperti, tentu saja, buka kembali tab terakhir .
Untuk menjadikannya pengelola file default :
xdg-mime default spacefm.desktop inode/directory
Cobalah skrip ini untuk menyimpan dan mengembalikan tab pengelola file nautilus. https://github.com/susurri/nautilus_save_tabs/
Cara termudah untuk mengakses folder adalah bookmark. Anda tidak akan membiarkan tab terbuka tetapi setidaknya Anda dapat melihat folder yang Anda inginkan dengan cepat (dan jika dipikir-pikir, bookmark berfungsi sebagai tab).
Cukup buka folder di Nautilus, buka menu Bookmark dan tambahkan bookmark.