
Utilizo el lector de PDF Evince en WSL2, pero no recuerda la última página visitada. Cada vez que abro un archivo pdf, comienza desde la primera página en una pequeña ventana con el mensaje:
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
yo leo uncorreodiciendo que evince debería almacenar historiales de lectura en ~/.local/share/gvfs-metadata/home
, pero no veo la carpeta gvfs-metadata
en WSL2.
Entoncesotro comentariodice:
Si evince se compila sin soporte gvfs, no recuerda el historial ni la última página abierta.
Entonces, ¿cómo puedo obtener soporte gvfs para WSL2 y hacer que Evince recuerde leer el historial?
PDinformación de mi sistema
Todo mi sistema parece tener la versión más nueva:
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+/-.
Respuesta1
Respuesta corta:
Suponiendo que estás usando Ubuntu:
sudo apt install gvfs
dbus-launch evince <file.pdf>
Desplácese hasta una ubicación en el PDF, luego salga de Evince y:
dbus-launch evince <file.pdf>
Ahora debería abrirse en la ubicación anterior.
Mas detalle:
Tiene toda la razón en que Evince utiliza GVfs (el sistema de archivos virtual Gnome) para almacenar sus marcadores.
Hay algunas razones por las que esto no funciona (de forma predeterminada) en WSL:
GVfs no está instalado de forma predeterminada en la mayoría de las distribuciones WSL.
GVfs requiere una instancia de D-Bus de sesión de usuario. D-Bus es, para tomar la definición simple de unpagina mucho mas complicada:
una forma sencilla para que las aplicaciones se comuniquen entre sí
hace que sea simple y confiable codificar una aplicación o demonio de "instancia única" y lanzar aplicaciones y demonios a pedido cuando se necesitan sus servicios
Entonces, Evince usa D-Bus para iniciar o conectarse a una única instancia del demonio GVfs y luego usa GVfs para almacenar el marcador.
Pero esa instancia de D-Bus normalmente la configura Systemd (y/o PAM) al iniciar sesión.
Y WSL realmente no tiene el concepto de "iniciar sesión" (por lo general, nunca necesita ingresar una contraseña al iniciar WSL). WSL tambiénno es compatible con Systemd listo para usar.
Todo esto se combina para significar que (en una instalación WSL predeterminada) Evince no realizará un seguimiento de su última ubicación/marcador.
Instalar GVfs es el primer paso.
Entonces tienes dos opciones:
dbus-launch evince
cada vez que comience, como en el ejemplo anterior.O, cuando inicie WSL, use:
wsl ~ -e dbus-launch bash # Or your preferred shell
Eso iniciará su shell Bash en una sesión de usuario de D-Bus y luego, simplemente al hacerlo,
evince <file.pdf>
se abrirá en la última ubicación.
Puede ver algo de lo que sucede ejecutando ps -efH
entre cada comando. Verás que dbus-launch bash
se iniciará un proceso D-Bus, pero no mucho más. Luego, la ejecución evince
también iniciará procesos GVfs bajo demanda.