From e1e421fcc5531e86585b86206afc7d791b20e6a5 Mon Sep 17 00:00:00 2001 From: rydesun Date: Tue, 25 Oct 2022 21:58:11 +0800 Subject: [PATCH] Change mpv data paths --- .config/mpv/mpv.conf | 12 +++--------- .config/mpv/scripts/screenshot.lua | 17 +++++++++++++++-- .config/mpv/scripts/xdg-dir.lua | 8 ++++++++ 3 files changed, 26 insertions(+), 11 deletions(-) create mode 100644 .config/mpv/scripts/xdg-dir.lua diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf index 75e8c88..9ae182b 100644 --- a/.config/mpv/mpv.conf +++ b/.config/mpv/mpv.conf @@ -33,17 +33,11 @@ sub-border-size=2 sub-shadow-color='#7676b0' sub-shadow-offset=1 -# ==== 截图 ==== -# 使用webp格式 -screenshot-format=webp -# 截图存放目录 -screenshot-directory='~~desktop/' - -# ==== 杂项 ==== +# ==== 路径 ==== # socket文件路径 input-ipc-server=/tmp/mpvsocket -# 进度数据文件存放目录 -watch-later-directory='~/.local/share/mpv/watch_later/' +# 截图目录由脚本 scripts/screenshot.lua 控制 +# 进度数据目录由脚本 scripts/xdg-dir.lua 控制 # ==== 渲染 ==== # 使用gpu-hq预设 diff --git a/.config/mpv/scripts/screenshot.lua b/.config/mpv/scripts/screenshot.lua index 94e7f8a..aaf0806 100644 --- a/.config/mpv/scripts/screenshot.lua +++ b/.config/mpv/scripts/screenshot.lua @@ -4,19 +4,31 @@ local opt = require 'mp.options' local user_opts = { -- 如果视频位于该目录下的子目录,则截图和视频保存在同一位置 - dirs = {'/mnt/', '/run/media/'}, + dirs = { '/mnt/', '/run/media/' }, + -- 否则位于XDG图片目录。如果该目录不存在则使用mpv默认值 } local script_name = mp.get_script_name() -local raw_user_opts = {dirs = ""} +local raw_user_opts = { dirs = '' } opt.read_options(raw_user_opts, script_name) if raw_user_opts.dirs ~= "" then user_opts.dirs = utils.parse_json(raw_user_opts.dirs) end +local function use_xdg_dir() + local res = mp.command_native { + name = 'subprocess', + args = { 'xdg-user-dir', 'PICTURES' }, + capture_stdout = true, + } + local dir = res and res.stdout:gsub('\n', '') or '' + mp.set_property('screenshot-directory', dir) +end + local function set_screenshot_dir() local filepath = mp.get_property("path") if filepath == nil or filepath:find("^http[s]?://") then + use_xdg_dir() return end local dir, _ = utils.split_path(filepath) @@ -26,6 +38,7 @@ local function set_screenshot_dir() return end end + use_xdg_dir() end mp.register_event("file-loaded", set_screenshot_dir) diff --git a/.config/mpv/scripts/xdg-dir.lua b/.config/mpv/scripts/xdg-dir.lua new file mode 100644 index 0000000..49b2bd4 --- /dev/null +++ b/.config/mpv/scripts/xdg-dir.lua @@ -0,0 +1,8 @@ +local mp = require 'mp' + +local data_dir = os.getenv('XDG_DATA_HOME') +if data_dir == nil then + data_dir = '~/.local/share' +end + +mp.set_property('watch-later-directory', data_dir..'/mpv/watch_later')