
WSL2에서 Evince PDF 리더를 사용하지만 마지막으로 방문한 페이지를 기억하지 못합니다. PDF 파일을 열 때마다 다음 메시지와 함께 작은 창의 첫 번째 페이지부터 시작됩니다.
chen@4-726:~/Documents/latex/notes/physics/tokamak$ Gdk-Message: 11:43:25.750: Unable to load hand2 from the cursor theme
Gdk-Message: 11:43:25.925: Unable to load hand2 from the cursor theme
Gdk-Message: 11:43:26.153: Unable to load hand2 from the cursor theme
나는 읽었다우편evince는 읽기 기록을 에 저장해야 한다고 말했지만 WSL2에는 ~/.local/share/gvfs-metadata/home
폴더가 표시되지 않습니다 .gvfs-metadata
그 다음에또 다른 댓글말한다:
evince가 gvfs-support 없이 컴파일되면 기록이나 마지막으로 열린 페이지를 기억하지 못합니다.
그렇다면 WSL2에 대한 gvfs 지원을 받고 Evince가 읽기 기록을 기억하도록 하려면 어떻게 해야 할까요?
추신내 시스템 정보
내 시스템은 모두 최신 버전인 것 같습니다.
Device name 1-039-11
Processor AMD Ryzen 9 5900X 12-Core Processor 3.70 GHz
Installed RAM 32.0 GB
Device ID D3418E8A-2C8C-4EC2-A836-7ABF7E5D9D51
Product ID 00330-71450-76029-AAOEM
System type 64-bit operating system, x64-based processor
Pen and touch No pen or touch input is available for this display
Edition Windows 11 Pro
Version 21H2
Installed on 1/11/2022
OS build 22000.708
Experience Windows Feature Experience Pack 1000.22000.708.0
Linux 1-039-11 5.10.102.1-microsoft-standard-WSL2 #1 SMP Wed Mar 2 00:30:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
.-/+oossssoo+/-. chen@1-039-11
`:+ssssssssssssssssss+:` -------------
-+ssssssssssssssssssyyssss+- OS: Ubuntu 22.04 LTS on Windows 10 x86_64
.ossssssssssssssssssdMMMNysssso. Kernel: 5.10.102.1-microsoft-standard-WSL2
/ssssssssssshdmmNNmmyNMMMMhssssss/ Uptime: 20 hours, 28 mins
+ssssssssshmydMMMMMMMNddddyssssssss+ Packages: 1922 (dpkg)
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Shell: bash 5.1.16
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Theme: Adwaita [GTK3]
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Icons: Adwaita [GTK3]
ossyNMMMNyMMhsssssssssssssshmmmhssssssso Terminal: terminator
ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: AMD Ryzen 9 5900X (24) @ 3.700GHz
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ GPU: 3448:00:00.0 Microsoft Corporation Device 008e
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Memory: 529MiB / 15952MiB
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
+sssssssssdmydMMMMMMMMddddyssssssss+
/ssssssssssshdmNNNNmyNMMMMhssssss/
.ossssssssssssssssssdMMMNysssso.
-+sssssssssssssssssyyyssss+-
`:+ssssssssssssssssss+:`
.-/+oossssoo+/-.
답변1
짧은 답변:
Ubuntu를 사용한다고 가정합니다.
sudo apt install gvfs
dbus-launch evince <file.pdf>
PDF의 특정 위치로 스크롤한 다음 Evince를 종료하고 다음을 수행합니다.
dbus-launch evince <file.pdf>
이제 이전 위치로 열려야 합니다.
자세한 세부 사항:
Evince가 GVfs(Gnome 가상 파일 시스템)를 사용하여 북마크를 저장한다는 것은 전적으로 옳습니다.
WSL에서 이것이 기본적으로 작동하지 않는 데에는 몇 가지 이유가 있습니다.
GVfs는 대부분의 WSL 배포판에 기본적으로 설치되지 않습니다.
GVfs에는 사용자 세션 D-Bus 인스턴스가 필요합니다. D-Bus는 다음에서 간단한 정의를 취합니다.훨씬 더 복잡한 페이지:
애플리케이션이 서로 통신하는 간단한 방법
"단일 인스턴스" 애플리케이션이나 데몬을 코딩하고 서비스가 필요할 때 요청에 따라 애플리케이션과 데몬을 시작하는 것이 간단하고 안정적입니다.
따라서 Evince는 D-Bus를 사용하여 GVfs 데몬의 단일 인스턴스를 시작하거나 연결한 다음 GVfs를 사용하여 북마크를 저장합니다.
그러나 해당 D-Bus 인스턴스는 일반적으로 로그인 시 Systemd(및/또는 PAM)에 의해 설정됩니다.
그리고 WSL에는 실제로 "로그인"이라는 개념이 없습니다(일반적으로 WSL을 시작할 때 암호를 입력할 필요가 없습니다). WSL도기본적으로 Systemd를 지원하지 않습니다..
이 모든 것이 결합되어 (기본 WSL 설치에서) Evince가 마지막 위치/책갈피를 추적하지 않는다는 것을 의미합니다.
GVfs 설치가 첫 번째 단계입니다.
그런 다음 두 가지 옵션이 있습니다.
dbus-launch evince
위의 예와 같이 시작할 때마다.또는 WSL을 시작할 때 다음을 사용합니다.
wsl ~ -e dbus-launch bash # Or your preferred shell
그러면 D-Bus 사용자 세션에서 Bash 쉘이 시작되고 간단히 수행하면
evince <file.pdf>
마지막 위치가 열립니다.
ps -efH
각 명령 사이를 실행하면 어떤 일이 일어나고 있는지 확인할 수 있습니다 . dbus-launch bash
그러면 D-Bus 프로세스가 시작되는 것을 볼 수 있지만 그 외에는 그다지 많지 않습니다. 그런 다음 실행하면 evince
주문형 GVfs 프로세스도 시작됩니다.