如何让 evince 在启动时打开最后一个文档?

如何让 evince 在启动时打开最后一个文档?

有什么办法evince 3.10在启动时自动加载最后打开的文档?

答案1

您可以通过编写脚本来在系统关闭时保存 Evince 的状态并在系统启动时重新加载来实现这一点。不过,我不确定在关闭 Evince 时如何做到这一点。我一直在研究基于类似问题中的其他建议的类似解决方案,到目前为止看起来像这样(但功能并不完整:

保存状态

#!/usr/bin/awk -f
# Note: this won't work yet, just saved version from command line
# Need to adjust to work as stand alone script

# State can be restored with `$ { xargs -d "\n" -a ~/.openpdfs evince; } &`,
# but this is probably not the best option

BEGIN { 
    cmd = "lsof"; 
    while ((cmd | getline) > 0) 
        if ($1=="evince"                                   \
                && /\/home\/.+\.[^. ]+$/                   \
                && !/\.(ttf|cache|log|i686-pc-linux-gnu)$/ \
                && sub(/^[^\/]+/, "")) 
                print > "'$HOME'/.openpdfs"; 
    close(cmd); 
}

恢复状态

/usr/bin/xargs -d "\n" -a ~/.openpdfs /usr/bin/evince;

答案2

对于 ubuntu 用户,基于其他答案,我编写了一个简单的应用程序来加载最后打开的文档:Github 仓库。它使用lsof命令定期检查 evince 进程打开的 pdf,并在最后一个 evince 窗口关闭或运行第二个程序(如切换按钮以加载和关闭 evince 会话)之前 15 到 30 秒保存会话(打开的 pdf)。

相关内容