노틸러스 파일 관리자가 열린 탭을 기억하게하려면 어떻게해야합니까?


10

노틸러스 파일 관리자를 닫았다가 다시 열 때 열린 탭을 유지할 수 있습니까?

다른 로그 아웃 및 재시작에서도 가능합니다.



1
한 세션에서 또는 재시작 / 로그 아웃 후?
Jacob Vlijm

@JacobVlijm은 재시작 / 로그 아웃에 걸쳐 지속되는 것이 바람직합니다.
orschiro

Parto의 링크가 솔루션을 제공하지 않는 한 노틸러스의 명령 줄 옵션 / 통합은 상당히 제한적입니다. 현재 열려있는 디렉토리를 읽거나 명령 줄에서 변경할 수있는 옵션이 없습니다. 당신이 볼 수없는 것을 기억하는 것은 불가능 해 보입니다. 한 세션 내에서 속임수 및 속임수 옵션이 가능합니다.
Jacob Vlijm

한 세션 내에서 기억을 얻는 방법을 설명하는 @JacobVlijm 마음? 그것은 이미 시작하기에 좋은 것입니다. :)
orschiro

답변:


7

노틸러스의 (매우) 제한된 명령 행 옵션

불행하게도, 노틸러스는 열린 창의 디렉토리를 읽을 수있는 명령 줄 옵션을 제공하지 않으며 기존의 창을 다른 디렉토리 로 보내는 옵션도 없습니다 . 보이지 않는 내용을 기억할 수 없으므로 첫눈에 옵션이 부족합니다.

하나

우리는하지 xdotool말아야 할 것을 nautilus하지 말고 적어도 당신이 묘사 한 행동을 위조 해야합니다. 어떻게해야할지 모른다면 "믿을 것"과 같은 방식으로 그렇게 할 수 있습니다.

아래의 해결책으로 다시 시작해도 살아남지는 않지만 "기억"창과 열려있는 모든 디렉토리는 한 세션 내에서 가능합니다. "두 번째 선택"에 관심이 있다고 언급 했으므로 여기에 있습니다.

작동 방식; 과정

우리는 할 수 없지만 종료 창을하고 탭을 열어 디렉토리를 유지, 우리는 할 수 있습니다 겉으로는 (완전히)의 도움으로 사라질 기존 창을 xdotool.

우리는 이후의 동작을 변경하는 경우 nautilus그 방식으로 실행을 먼저 수를 찾습니다 매핑되지 않은 창을 다시 매핑은, 새를 열기 전에 효과적으로 우리가 정확히 것처럼 동일한 동작 nautilus마지막으로 사용 된 창 (들)을 기억하고있다.

설정 방법

  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
    

    이전 우분투 버전의 경우 :

    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. 이제 로그 아웃했다가 다시 로그인하십시오

사용하는 방법

사용법은 매우 간단합니다.

  • 창을 열려면 평소와 같이하십시오. 노틸러스 실행기를 클릭하십시오. 원하는대로 창을 탭하십시오.

    여기에 이미지 설명을 입력하십시오

  • 창을 확실하게 닫으려면 창의 "닫기"( x ) 상자 를 클릭하여 창을 닫으십시오 .

  • 창과 모든 탭 을 유지 하려면
    바로 가기 키를 누릅니다. 창이 사라집니다 (겉보기에는 닫힙니다).

    여기에 이미지 설명을 입력하십시오

  • 다음에 시작 관리자를 클릭하면 노틸러스 창이 마지막과 똑같이 표시되며 창 위치도 그대로 유지됩니다.

    여기에 이미지 설명을 입력하십시오

그게 다야

노트

  • 내가 실행 한 테스트에서 찾을 수없는 수 있는 단점 (1404). 당신이 어떤에 빠질 수 있다면, 언급하십시오!
  • 에서 사용하는 방법 -section, 나는 가능한 매핑되지 않은 창문을 매핑하기 위해 노틸러스 아이콘을 클릭 제안했다. 그러나 바로 가기 키도 동일하게 작동하므로 가장 편리한 기능을 확인할 수 있습니다. 또한 폴더 를 매핑 해제 한 후 두 번 클릭하여 폴더를 열면 매핑되지 않은 폴더가 바로 가기로 다시 매핑됩니다.

편집하다:

니모 사용자

Nemo 사용자는 위의 솔루션을 동일하게 사용할 수 있지만 다음을 수행하십시오.

  • 스크립트의 헤드 섹션에서 다음을 변경하십시오.

    app = "nautilus"
    

    으로:

    app = "nemo"
    
  • 포인트 3에서 다음을 사용하십시오.

    cp /usr/share/applications/nemo.desktop ~/.local/share/applications
    
  • 포인트 4에서 다음을 사용하십시오.

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

테스트, 니모와 함께 일하는 것으로 입증 됨


훌륭한 작업 솔루션 및 잘 문서화되었습니다. 대단히 감사합니다!
orschiro

그것이 작동하면 @orschiro 항상 재미 :) 당신은 환영합니다!
Jacob Vlijm

5

노틸러스에는 해당 기능이 없으므로 다른 파일 관리자를 대신 사용하는 것이 좋습니다 .

트릭을 수행하는 대체 앱은 다음과 같습니다. SpaceFM

설치 방법은 다음과 같습니다.

물론 마지막 탭 다시 열기 와 같은 다양한 기능이 있습니다 .

기본 파일 관리자로 설정 하려면 다음을 수행하십시오 .

xdg-mime default spacefm.desktop inode/directory



0

폴더에 액세스하는 가장 쉬운 방법은 북마크입니다. 탭을 열어 두지 않아도 최소한 원하는 폴더를 빠르게 볼 수 있습니다 (생각하면 북마크가 탭으로 작동 함).

노틸러스에서 폴더를 열고 북마크 메뉴로 이동하여 북마크를 추가하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.