You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
466 lines
16 KiB
466 lines
16 KiB
# ---------------------------------------------------------------- #
|
|
# Go-Musicfox Configuration File #
|
|
# ---------------------------------------------------------------- #
|
|
# 本文件使用TOML格式。详细语法请参考: https://toml.io/ #
|
|
# ---------------------------------------------------------------- #
|
|
|
|
# 启动页相关配置
|
|
[startup]
|
|
# 是否显示启动页
|
|
enable = false
|
|
# 启动页进度条是否具有回弹效果
|
|
progressOutBounce = true
|
|
# 启动页的持续时长(秒)
|
|
loadingSeconds = 2
|
|
# 启动页欢迎语
|
|
welcome = "musicfox"
|
|
# 启动页动画:sequence、fade-in、rainbow-wave、typewriter、spinner、slide-in、glitch、matrix-rain、particle-burst
|
|
animation = "sequence"
|
|
# 是否停用启动页动画以减少动态效果
|
|
reducedMotion = false
|
|
# 启动时是否自动签到 (网易云有风控,建议关闭)
|
|
signIn = false
|
|
# 启动时是否检查应用更新
|
|
checkUpdate = true
|
|
|
|
|
|
# 主界面与核心功能配置
|
|
[main]
|
|
# altScreen 显示模式
|
|
altScreen = true
|
|
# 是否在界面中启用鼠标事件
|
|
enableMouseEvent = true
|
|
# 是否开启 Debug 模式(封面大包写入时记录字节/耗时/RSS/限流状态到 musicfox.log;慢写会 Warn)
|
|
debug = false
|
|
# 播放时 UI 刷新帧率(更高帧率可使动画更平滑,但消耗更多cpu)
|
|
frameRate = 5
|
|
# 界面语言(影响 foxful-cli 内置文案,如帮助提示、弹窗按钮)
|
|
# 可选:"zh"(中文,默认)、"en"(英文)等;留空跟随中文
|
|
locale = "zh"
|
|
|
|
# 实时频谱显示(目前仅支持 osx, beep 播放引擎)
|
|
# 调高 main.frameRate 更丝滑
|
|
[main.visualizer]
|
|
# 是否显示实时频谱
|
|
enable = false
|
|
# 频谱最大行数(0 表示不限制;会随可用空间自动缩小)
|
|
maxHeight = 8
|
|
# 频谱渲染样式:bar(柱状图), line(折线图), mirror_bar(镜像柱状图), dot(散点图),
|
|
# oscilloscope(示波器), vectorscope(向量示波器), spectrogram(滚动频谱图)
|
|
style = "oscilloscope"
|
|
# 声道模式:dual(左右声道分开显示,默认) / mono(左右声道合并显示)
|
|
channelMode = "mono"
|
|
|
|
# bar / mirror_bar 样式字符(仅使用首个 Unicode 字符)
|
|
barHalfBlock = "▌"
|
|
barFullBlock = "█"
|
|
barEmptyBlock = " "
|
|
barVerticalGradient = false
|
|
# 启用条间水平渐变(每条独立颜色,默认false)
|
|
barHorizontalGradient = false
|
|
# 无声时显示微小顶部标记(cava 风格 idle bar heads)
|
|
showIdleBarHeads = false
|
|
# 条生长方向:bottom(从下往上,默认) / top / left / right / horizontal / vertical
|
|
barOrientation = "bottom"
|
|
|
|
# mirror_bar 样式字符(留空则沿用 bar 对应项)
|
|
mirrorBarHalfBlock = "▌"
|
|
mirrorBarFullBlock = "█"
|
|
mirrorBarEmptyBlock = ""
|
|
|
|
# line 样式:braille(盲文,细腻) / block(块字符,醒目)
|
|
lineMode = "braille"
|
|
# 波段交叉点:满格
|
|
lineFullBlock = "•"
|
|
# 插值线段:下半角,纵向填充分层
|
|
lineHalfBlock = "•"
|
|
lineEmptyBlock = "•"
|
|
|
|
# dot 样式:braille(盲文,细腻) / block(块字符,醒目)
|
|
dotMode = "braille"
|
|
dotFullBlock = "•"
|
|
dotHalfBlock = "•"
|
|
dotEmptyBlock = " "
|
|
|
|
# oscilloscope 示波器样式:braille(盲文,细腻) / block(块字符,醒目)
|
|
oscilloscopeMode = "braille"
|
|
oscilloscopeScatter = false
|
|
oscilloscopeFullBlock = "█"
|
|
oscilloscopeHalfBlock = "▌"
|
|
oscilloscopeEmptyBlock = " "
|
|
|
|
# vectorscope 向量示波器样式:braille(盲文,细腻) / block(块字符,醒目)
|
|
vectorscopeMode = "braille"
|
|
vectorscopeFullBlock = "•"
|
|
vectorscopeHalfBlock = "•"
|
|
vectorscopeEmptyBlock = " "
|
|
|
|
# spectrogram 滚动频谱图设置
|
|
# 滚动速度(1=慢, 10=快,默认4)
|
|
spectrogramSpeed = 4
|
|
|
|
# FFT 频谱增强(对 line/dot 等频谱样式生效)
|
|
# FFT 帧平均数量(1 表示不平滑,越大越平滑但响应越慢)
|
|
spectrumAverage = 1
|
|
# 纵轴刻度:true=对数(dB,默认) / false=线性(原始振幅)
|
|
spectrumLogScale = true
|
|
# 叠加显示左右声道相位相关性(仅 dual 声道模式生效)
|
|
spectrumPhaseDiff = false
|
|
|
|
# cava 风格后处理平滑(对 bar/mirror_bar 样式生效)
|
|
# monstercat 指数扩散平滑(0=关,>0=启用,典型值1.0-3.0,值越小条越融合)
|
|
monstercat = 0
|
|
# waves 二次扩散模式(与monstercat互斥,0=关,1=开)
|
|
waves = false
|
|
# 视觉超调百分比(0=关,典型值10-30)
|
|
overshoot = 0
|
|
|
|
|
|
# 桌面通知相关设置
|
|
[main.notification]
|
|
# 是否启用桌面通知
|
|
enable = false
|
|
# (Windows/Linux) 默认通知图标
|
|
icon = "logo.png"
|
|
# (Windows/Linux) 是否使用歌曲的专辑封面作为通知图标(如为否则使用默认通知图标)
|
|
albumCover = true
|
|
# 是否在 TUI 内显示原生 toast 通知(点赞、下载、订阅、签到等瞬时事件)
|
|
# 独立于桌面通知开关,可与桌面通知同时启用
|
|
inApp = false
|
|
# TUI 内 toast 自动消失时长(秒,0 使用默认 4 秒)
|
|
inAppTimeout = 4
|
|
|
|
# 歌词显示相关设置
|
|
[main.lyric]
|
|
# 是否显示歌词
|
|
show = true
|
|
# 是否显示翻译歌词
|
|
showTranslation = true
|
|
# 歌词显示时间的全局偏移量(毫秒),正值表示歌词提前显示
|
|
offset = 0
|
|
# 忽略歌词解析错误
|
|
skipParseErr = false
|
|
# YRC 歌词渲染模式(仅对逐字歌词有效)
|
|
# 可选: "simple"(简单,默认), "smooth"(平滑), "wave"(波浪), "glow"(发光)
|
|
renderMode = "smooth"
|
|
|
|
# 封面图显示设置(需要支持Kitty图形协议的终端,如Kitty、WezTerm、Ghostty等)
|
|
[main.lyric.cover]
|
|
# 是否显示封面图
|
|
show = true
|
|
# 封面图宽度占窗口宽度的比例(取值范围 0.1-0.8,默认 0.3)
|
|
widthRatio = 0.1
|
|
# 封面图圆角半径百分比(取值范围 0-100,默认 8 即 8%,0 则关闭,越大越圆)
|
|
cornerRadius = 8
|
|
# 是否启用旋转封面(需要更高的帧率支持平滑效果)
|
|
spin = false
|
|
# Kitty图形协议不支持角度变化目前只能以动画呈现,合成动画需要更高的CPU性能
|
|
# 旋转封面帧率(取值范围 1-60,默认 30,更高帧率更流畅但消耗更多CPU)
|
|
spinFPS = 30
|
|
# 旋转一圈的时长(秒,取值范围 1-30,默认 6)
|
|
# 时长和帧率挂钩:60fps*6s=360帧,30fps*6s=180帧,30fps*12s=360帧
|
|
spinDuration = 6
|
|
# 是否允许在 tmux 内经 DCS 透传绘制封面,默认关闭,需要时手动开启
|
|
# 开启后仅显示静态封面,并自动缩图、限流;写入缓慢时暂停传输后重试
|
|
# 不使用 tmux 时,此设置不影响封面显示与旋转
|
|
tmuxPassthrough = false
|
|
|
|
# 桌面歌词设置(目前仅支持 macOS)
|
|
[main.lyric.desktopLyrics]
|
|
# 是否启用桌面歌词
|
|
enable = false
|
|
# X 位置系数(0.0-1.0,0.5 表示居中,0.0 最左,1.0 最右)
|
|
xPositionFactor = 0.5
|
|
# Y 位置系数(0.0-1.0,0.0 底部,1.0 顶部,默认 0.5 居中)
|
|
yPositionFactor = 0.5
|
|
# 字体大小(默认 24 匹配系统标签字体)
|
|
fontSize = 24
|
|
# 字体名称(留空使用系统默认字体)
|
|
fontName = ""
|
|
# 文字颜色(十六进制)
|
|
textColor = "#FFFFFF"
|
|
# 文字阴影颜色(十六进制)
|
|
shadowColor = "#EA403F"
|
|
# 阴影模糊半径(像素)
|
|
shadowRadius = 1.0
|
|
# 背景颜色(十六进制)
|
|
backgroundColor = "#000000"
|
|
# 背景透明度(0.0-1.0,默认 0.60)
|
|
backgroundAlpha = 0.60
|
|
# 背景圆角半径(像素,0 使用默认胶囊形状 fontSize/2)
|
|
cornerRadius = 0
|
|
# 窗口整体透明度(0.0-1.0)
|
|
windowAlpha = 1.0
|
|
# 单行模式(只显示当前行)
|
|
oneLineMode = false
|
|
# 暂停时隐藏歌词
|
|
hideOnPause = false
|
|
# 允许拖拽移动歌词窗口
|
|
draggable = true
|
|
# 窗口最大宽度占屏幕比例(0.3-0.9,默认 0.7)
|
|
maxWindowWidth = 0.7
|
|
|
|
# 桌面歌词频谱可视化(GPU 加速,Core Animation 渲染)
|
|
spectrumEnabled = false
|
|
# 频谱区域高度(像素,默认 60)
|
|
spectrumHeight = 60
|
|
# 频段数量(2-64,默认 64)
|
|
spectrumBarCount = 64
|
|
# 频段间距(像素,默认 1)
|
|
spectrumBarGap = 1
|
|
# 频谱刷新帧率(默认 30)
|
|
spectrumFPS = 30
|
|
# 频谱渲染样式:"bar" / "line" / "capsule" / "dot" / "mirror" / "waveform" / "fire" / "led" / "circular" / "ring_arc" / "ripple"
|
|
spectrumStyle = "line"
|
|
# 频谱整体透明度(0.0-1.0,默认 0.8)
|
|
spectrumOpacity = 0.8
|
|
# 低频颜色(十六进制)
|
|
spectrumColorLow = "#00FF00"
|
|
# 中频颜色(十六进制)
|
|
spectrumColorMid = "#FFCC00"
|
|
# 高频颜色(十六进制)
|
|
spectrumColorHigh = "#FF0000"
|
|
|
|
# Go性能分析工具pprof的相关设置
|
|
[main.pprof]
|
|
# pprof 服务监听的端口,通过 --pprof 命令行选项启用
|
|
port = 9876
|
|
|
|
# 账号相关配置
|
|
[main.account]
|
|
# 网易云音乐的登录 Cookie
|
|
neteaseCookie = ""
|
|
|
|
|
|
# 主题设置
|
|
[theme]
|
|
# 活跃主题名称(对应主题文件中的 name 字段,默认 "Default")
|
|
# 主题文件存放于 embed/themes/(内置)和 ~/.config/go-musicfox/themes/(用户自定义)
|
|
activeTheme = "Default"
|
|
# 是否在界面顶部显示标题
|
|
showTitle = true
|
|
# 菜单加载时显示的提示文字
|
|
loadingText = "[加载中...]"
|
|
# 是否使用双列布局(需要等宽字体以获得最佳体验)
|
|
doubleColumn = true
|
|
# 菜单行数是否根据终端高度动态变化
|
|
dynamicMenuRows = false
|
|
# 菜单内容起始行上限,限制菜单上方标题区域向下的最大偏移量(0 不限制)
|
|
maxTitleStartRow = 12
|
|
# 界面所有内容居中(实验性功能,未来版本中可能会大幅改动)
|
|
centerEverything = false
|
|
# 主题颜色
|
|
# 随机
|
|
# primaryColor = "random"
|
|
# 经典网易云音乐红
|
|
primaryColor = "#EA403F"
|
|
# 是否显示底部状态栏(面包屑导航路径 + 时间)
|
|
statusBar = true
|
|
# 无障碍模式:高对比度主题 + 强调样式
|
|
# 关闭时仍会依据终端 NO_COLOR/ACCESSIBLE 环境变量自动探测
|
|
accessibleMode = false
|
|
|
|
# 进度条字符样式配置
|
|
[theme.progress]
|
|
# 进度条渲染模式
|
|
# 可选: "smooth"(平滑,默认), "wave"(波浪), "glow"(发光)
|
|
renderMode = "smooth"
|
|
# 进度条已加载字符
|
|
fullChar = "#"
|
|
fullCharWhenFirst = "#"
|
|
fullCharWhenLast = "#"
|
|
lastFullChar = "#"
|
|
# 进度条未加载字符
|
|
emptyChar = "·"
|
|
emptyCharWhenFirst = "·"
|
|
emptyCharWhenLast = "·"
|
|
firstEmptyChar = "·"
|
|
|
|
|
|
# 下载、缓存等文件存储相关配置
|
|
[storage]
|
|
# 下载目录
|
|
# 若设置了 MUSICFOX_ROOT 变量,则默认为 ${MUSICFOX_ROOT}/download
|
|
# 若未设置 MUSICFOX_ROOT 变量,则为相应系统的默认下载目录的 go-musicfox 子目录
|
|
# 请使用绝对路径
|
|
downloadDir = ""
|
|
# 歌词文件的默认下载目录。如果为空,则与downloadDir保持一致。
|
|
lyricDir = ""
|
|
# 下载歌曲时是否同时下载歌词文件(仅当下载歌曲成功时)
|
|
downloadSongWithLyric = true
|
|
# 下载文件的命名模板
|
|
# 可用字段参考 #自定义分享模板 中的 song 部分,FileExt 为自适应的后缀名
|
|
# fileNameTpl = "{{.SongName}}-{{.SongArtists}}.{{.FileExt}}"
|
|
|
|
# 音乐播放缓存相关设置
|
|
[storage.cache]
|
|
# 缓存目录
|
|
# 若设置了 MUSICFOX_ROOT 变量,则默认为 ${MUSICFOX_ROOT}/cache
|
|
# 若未设置 MUSICFOX_ROOT 变量,则为相应系统的默认缓存目录的 go-musicfox 子目录
|
|
dir = ""
|
|
# 音乐缓存路径,相对路径相对于 dir
|
|
# 注意:如果使用 mpd,mpd 配置中的 "music_directory" 必须与 musicDir 路径一致
|
|
musicDir = "music_cache"
|
|
# 音乐缓存文件的总大小限制(单位:MB)
|
|
# 0 为不使用缓存,-1 为不限制
|
|
limit = 0
|
|
|
|
|
|
# 播放器引擎与行为配置
|
|
[player]
|
|
# 播放引擎,可选: "beep", "dlna", "mpd", "mpv", "osx", "win_media", "auto"(根据系统自动选择)
|
|
# Mac 默认 "osx", Windows 默认 "win_media", 其他系统默认 "beep"
|
|
engine = "auto"
|
|
# 允许的最大连续失败重试次数
|
|
maxPlayErrCount = 3
|
|
# 期望的歌曲音质
|
|
# 可选: "standard", "exhigh", "higher", "lossless", "hires",
|
|
# "jyeffect"(高清环绕声), "sky"(沉浸环绕声), "jymaster"(超清母带)
|
|
songLevel = "higher"
|
|
# 是否获取并显示歌单下的所有歌曲,默认前 1000 首
|
|
# 开启后可能会占用更多内存(大量歌曲数据)和带宽(会同时发送多个请求获取歌单下歌曲数据)
|
|
showAllSongsOfPlaylist = false
|
|
# Ctrl + 鼠标滚轮单次滚动调节的音量值 (取值范围 1-20)
|
|
mouseVolumeStep = 1
|
|
|
|
# `beep` 引擎专属配置 (跨平台)
|
|
[player.beep]
|
|
# MP3解码器,可选: "go-mp3", "minimp3"
|
|
# "minimp3" CPU占用更低,但稳定性可能稍逊于 "go-mp3"
|
|
mp3Decoder = "go-mp3"
|
|
# 无缝播放(仅 beep 引擎),默认关闭;MP3 使用 go-mp3 时会裁剪编码器延迟和尾部填充
|
|
# minimp3 仅支持连续流切换,不处理 MP3 编码器延迟和尾部填充
|
|
gapless = false
|
|
# 开始预加载下一首时,当前歌曲的剩余秒数
|
|
gaplessPreloadSeconds = 15
|
|
|
|
# `mpd` 引擎专属配置,需要安装mpd
|
|
[player.mpd]
|
|
# mpd 可执行文件的路径,如果为空,则在系统 PATH 中查找
|
|
bin = "mpd"
|
|
# mpd配置文件的路径
|
|
# 注意:配置文件中必须设置 pid_file,否则应用退出时无法正确关闭 mpd 进程
|
|
configFile = ""
|
|
# 与mpd服务的连接方式,可选: "tcp", "unix"
|
|
network = "unix"
|
|
# 连接地址
|
|
# network 为 "tcp" 时,填写 "ip:port" (如 "127.0.0.1:6600")
|
|
# network 为 "unix" 时,填写 socket 文件路径
|
|
addr = ""
|
|
# 是否在需要时自动启动 mpd 服务
|
|
autoStart = true
|
|
|
|
# `mpv` 引擎专属配置,需要安装 mpv
|
|
[player.mpv]
|
|
# mpv 可执行文件的路径,如果为空,则在系统 PATH 中查找
|
|
bin = "mpv"
|
|
|
|
# `dlna` 引擎专属配置
|
|
[player.dlna]
|
|
# DLNA 设备描述 URL,例如:http://192.168.1.100:49152/description.xml
|
|
# 使用 gupnp-tools 的 gupnp-universal-cp 工具可扫描并获取设备 URL
|
|
deviceUrl = ""
|
|
# 本机局域网 IP(用于内置 HTTP server)
|
|
localIP = ""
|
|
|
|
|
|
# 启动时自动播放相关配置
|
|
[autoplay]
|
|
# 是否在启动后自动开始播放
|
|
enable = false
|
|
# 自动播放的歌单
|
|
# 可选: "dailyReco", "like", "no", 或 "name:歌单名"
|
|
# "no" 表示保持上次退出时的播放列表,无视 offset
|
|
playlist = "dailyReco"
|
|
# 播放列表的起始偏移量,0 为第一首,-1 为最后一首
|
|
offset = 0
|
|
# 播放模式
|
|
# 可选: "listLoop", "order", "singleLoop", "random"(无视offset), "intelligent"(心动), "last"(上次退出时的模式)
|
|
mode = "last"
|
|
|
|
|
|
# UNM (Unlock NetEase Music) 相关配置,用于解锁灰色或无版权歌曲
|
|
[unm]
|
|
# 是否启用 UNM 功能
|
|
enable = false
|
|
# 音源匹配来源,可配置多个,用逗号分隔
|
|
# 可选: "kuwo", "kugou", "migu", "qq"
|
|
sources = ["kuwo"]
|
|
# UNM搜索其他平台限制 0-3
|
|
searchLimit = 0
|
|
# 解除会员限制
|
|
enableLocalVip = true
|
|
# 解除音质限制
|
|
unlockSoundEffects = true
|
|
# 用于获取QQ音乐音源的Cookie文件路径
|
|
qqCookieFile = ""
|
|
# 检测到无效的歌(如提示酷我...)时跳过播放,该效果计入播放错误计数
|
|
skipInvalidTracks = false
|
|
# unm代理URL,"http://127.0.0.1:8080",配置后会禁用内置的unm
|
|
proxyURL = ""
|
|
|
|
|
|
# 播放状态上报配置
|
|
[reporter]
|
|
# 是否将播放状态上报回网易云音乐(“听歌排行”)
|
|
# 注意:可能存在风控风险
|
|
[reporter.netease]
|
|
enable = false
|
|
|
|
# 上报至 Last.fm
|
|
[reporter.lastfm]
|
|
enable = false
|
|
# Last.fm API Key
|
|
key = ""
|
|
# Last.fm API Shared Secret
|
|
secret = ""
|
|
# 播放一首歌的百分比达到多少时,才进行上报
|
|
# 范围: 50-100
|
|
scrobblePoint = 50
|
|
# 是否只上报歌曲的第一位艺术家
|
|
onlyFirstArtist = false
|
|
# 是否跳过电台节目的上报
|
|
skipDjRadio = false
|
|
|
|
|
|
# 快捷键绑定配置
|
|
[keybindings]
|
|
# 是否使用应用内置的默认快捷键作为基础
|
|
# 设置为false时,只有您在 [keybindings.app] 中定义的快捷键会生效。
|
|
useDefaultKeyBindings = true
|
|
|
|
# 全局快捷键,即使应用在后台也能响应
|
|
# 格式: "快捷键组合" = "功能名"
|
|
# 功能名列表请参考项目文档
|
|
[keybindings.global]
|
|
# "ctrl+shift+space" = "toggle"
|
|
|
|
# 应用内快捷键
|
|
# 格式: "功能名" = ["按键1", "按键2", ...]
|
|
[keybindings.app]
|
|
help = ["?", "?"]
|
|
pageUp = ["ctrl+u", "pgup"]
|
|
pageDown = ["ctrl+d", "pgdown"]
|
|
# 空格
|
|
playOrToggle = ["space"]
|
|
# 空数组表示取消此功能的快捷键
|
|
toggle = []
|
|
previous = ["[", "【"]
|
|
next = ["]", "】"]
|
|
backwardFiveSec = ["X"]
|
|
backwardOneSec = ["x"]
|
|
forwardFiveSec = ["v"]
|
|
forwardTenSec = ["V"]
|
|
downVolume = ["-", "−", "ー"]
|
|
upVolume = ["=", "="]
|
|
switchPlayMode = ["p"]
|
|
intelligence = ["P"]
|
|
clearSongCache = ["u", "U"]
|
|
logout = ["W"]
|
|
curPlaylist = ["c", "C"]
|
|
|
|
|
|
# 自定义分享模板
|
|
# 格式: "名称" = "模板字符串"
|
|
# 详细用法请参考项目文档(README)
|
|
[share]
|
|
|