ฉันจะทำให้โปรแกรมจัดการไฟล์ Nautilus จำแท็บที่เปิดอยู่ได้อย่างไร


10

เป็นไปได้ไหมที่จะรักษาแท็บที่เปิดอยู่ระหว่างการปิดและการเปิดตัวจัดการไฟล์ Nautilus?

ยิ่งกว่าในการล็อกเอาต์และรีสตาร์ทที่ต่างกัน


1
ที่เกี่ยวข้อง: askubuntu.com/questions/52112/…
Parto

1
ในหนึ่งเซสชันหรือหลังจากรีสตาร์ท / ออกจากระบบ?
Jacob Vlijm

@JacobVlijm ยิ่งคงอยู่ตลอดเวลาในการรีสตาร์ท / ออกจากระบบ
orschiro

ตัวเลือกบรรทัดคำสั่ง / การรวมของ nautilus นั้นค่อนข้าง จำกัด ไม่มีตัวเลือกให้อ่านไดเรกทอรีที่เปิดอยู่ในปัจจุบันหรือเปลี่ยนจากบรรทัดคำสั่ง การจดจำสิ่งที่คุณมองไม่เห็นเป็นไปไม่ได้สำหรับฉัน ภายในหนึ่งเซสชันตัวเลือกเคล็ดลับและการโกงจะเป็นไปได้แม้ว่า
Jacob Vlijm

@JacobVlijm ใจอธิบายวิธีการบรรลุความทรงจำภายในหนึ่งเซสชัน? นั่นจะเป็นสิ่งที่ดีสำหรับการเริ่มต้น :)
orschiro

คำตอบ:


7

(มาก) ตัวเลือกบรรทัดคำสั่งที่ จำกัด ของ nautilus

ขออภัย nautilus ไม่มีตัวเลือกบรรทัดคำสั่งเพื่ออ่านไดเรกทอรีที่เปิดอยู่ของ windows และไม่มีตัวเลือกใด ๆ ในการส่งหน้าต่างที่มีอยู่ไปยังไดเรกทอรีอื่น เนื่องจากคุณจำไม่ได้ว่าคุณไม่เห็นอะไรเรามีทางเลือกมากมายตั้งแต่แรกเห็น

อย่างไรก็ตาม

เรามีxdotoolไม่ทำสิ่งที่nautilusไม่ได้ แต่อย่างน้อยก็ปลอมพฤติกรรมที่คุณอธิบาย เราสามารถทำได้ในลักษณะที่ "คุณจะเชื่อ" ถ้าคุณไม่รู้ว่ามันทำอย่างไร

แม้ว่าวิธีการแก้ปัญหาด้านล่างจะไม่สามารถรีสตาร์ทได้ แต่หน้าต่าง "การจดจำ" (อาจเป็นแท็บ) และไดเรกทอรีที่เปิดอยู่ทั้งหมดนั้นสามารถทำได้ภายในหนึ่งเซสชัน เนื่องจากคุณพูดถึงว่าสนใจในฐานะ "ตัวเลือกที่สอง" นี่คือ

มันทำงานอย่างไร; กระบวนการ

แม้ว่าเราไม่สามารถปิดหน้าต่างและรักษาแท็บและไดเรกทอรีเปิดของเราสามารถทำให้หน้าต่างที่มีอยู่ดูเหมือน (และสมบูรณ์) xdotoolหายไปด้วยความช่วยเหลือของ

ถ้าเราต่อมาเปลี่ยนพฤติกรรมของnautilusตัวเปิดในลักษณะที่ว่ามันเป็นครั้งแรกรูปลักษณ์ที่เป็นไปได้สำหรับหน้าต่าง unmappedเพื่อ remap, ก่อนที่จะเปิดใหม่ได้อย่างมีประสิทธิภาพเรามีว่าพฤติกรรมเช่นเดียวกับถ้าnautilusจะจำหน้าต่างที่ใช้ล่าสุด (s)

วิธีการตั้งค่า

  1. คัดลอกสคริปต์ด้านล่างลงในไฟล์ว่างแล้วบันทึกเป็น 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)
  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 แท็บหน้าต่างตามที่คุณต้องการ:

    ป้อนคำอธิบายรูปภาพที่นี่

  • หากต้องการปิดหน้าต่างอย่างแน่นอนให้ปิดโดยคลิกที่กล่อง "ปิด" ( x ) ของหน้าต่าง

  • ในการคงหน้าต่าง + แท็บทั้งหมดไว้:
    กดปุ่มทางลัด หน้าต่างจะหายไป (ดูเหมือนจะปิด)

    ป้อนคำอธิบายรูปภาพที่นี่

  • ครั้งต่อไปเมื่อคุณคลิกตัวเรียกใช้งานหน้าต่าง nautilus จะปรากฏขึ้นเหมือนครั้งที่แล้วแม้ตำแหน่งของหน้าต่างจะยังคงอยู่

    ป้อนคำอธิบายรูปภาพที่นี่

แค่นั้นแหละ

บันทึก

  • ในการทดสอบที่ฉันวิ่งฉันไม่สามารถหาใด ๆข้อเสีย (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 ได้


โซลูชั่นการทำงานที่ยอดเยี่ยมและมีเอกสารที่ดี ขอบคุณมาก!
orschiro

@orschiro สนุกเสมอถ้าได้ผล :) ยินดีต้อนรับ!
Jacob Vlijm

5

ฉันแนะนำให้ใช้ตัวจัดการไฟล์อื่นแทนถ้าไม่เป็นไรกับคุณเนื่องจากNautilus ไม่มีคุณสมบัตินั้น

นี่คือแอปสำรองหนึ่งแอปที่ใช้เคล็ดลับ: SpaceFM

นี่คือวิธีการติดตั้ง

มันมีคุณสมบัติที่อุดมไปด้วยเช่นของหลักสูตรเปิดแท็บสุดท้าย

วิธีทำให้เป็นตัวจัดการไฟล์เริ่มต้น :

xdg-mime default spacefm.desktop inode/directory



0

วิธีที่ง่ายที่สุดในการเข้าถึงโฟลเดอร์คือการทำบุ๊คมาร์ค คุณจะไม่เปิดแท็บ แต่อย่างน้อยคุณจะเห็นโฟลเดอร์ที่คุณต้องการได้อย่างรวดเร็ว (และถ้าคุณคิดถึงมันบุ๊คมาร์คจะทำหน้าที่เป็นแท็บ)

เพียงเปิดโฟลเดอร์ใน Nautilus ไปที่เมนู Bookmark และเพิ่มบุ๊คมาร์ค

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.