노틸러스 파일 관리자를 닫았다가 다시 열 때 열린 탭을 유지할 수 있습니까?
다른 로그 아웃 및 재시작에서도 가능합니다.
답변
노틸러스의 (매우) 제한된 명령 행 옵션
불행하게도, 노틸러스는 열린 창의 디렉토리를 읽을 수있는 명령 줄 옵션을 제공하지 않으며 기존의 창을 다른 디렉토리 로 보내는 옵션도 없습니다 . 보이지 않는 내용을 기억할 수 없으므로 첫눈에 옵션이 부족합니다.
하나
우리는하지 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
이전 우분투 버전의 경우 :
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
-
이제 로그 아웃했다가 다시 로그인하십시오
사용하는 방법
사용법은 매우 간단합니다.
-
창을 열려면 평소와 같이하십시오. 노틸러스 실행기를 클릭하십시오. 원하는대로 창을 탭하십시오.
-
창을 확실하게 닫으려면 창의 “닫기”( 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
테스트, 니모와 함께 일하는 것으로 입증 됨
답변
노틸러스에는 해당 기능이 없으므로 다른 파일 관리자를 대신 사용하는 것이 좋습니다 .
트릭을 수행하는 대체 앱은 다음과 같습니다. SpaceFM
물론 마지막 탭 다시 열기 와 같은 다양한 기능이 있습니다 .
기본 파일 관리자로 설정 하려면 다음을 수행하십시오 .
xdg-mime default spacefm.desktop inode/directory
답변
이 스크립트를 사용하여 노틸러스 파일 관리자의 탭을 저장하고 복원하십시오.
https://github.com/susurri/nautilus_save_tabs/
답변
폴더에 액세스하는 가장 쉬운 방법은 북마크입니다. 탭을 열어 두지 않아도 최소한 원하는 폴더를 빠르게 볼 수 있습니다 (생각하면 북마크가 탭으로 작동 함).
노틸러스에서 폴더를 열고 북마크 메뉴로 이동하여 북마크를 추가하십시오.