Files
dotfiles/.config/SubMiner/config.jsonc##os.Linux
2026-03-07 17:47:22 -08:00

234 lines
6.6 KiB
Plaintext

{
"keybindings": [
{
"key": "KeyR",
"command": ["add", "sub-pos", -5],
},
{
"key": "Shift+KeyR",
"command": ["add", "sub-pos", 5],
},
{
"key": "KeyJ",
"command": ["cycle", "sub"],
},
{ "key": "BracketRight", "command": ["add", "sub-delay", 0.1] },
{ "key": "BracketLeft", "command": ["add", "sub-delay", -0.1] },
{ "key": "Backslash", "command": ["set_property", "sub-delay", 0] },
],
"shortcuts": {
"copySubtitle": "CommandOrControl+C",
"copySubtitleMultiple": "CommandOrControl+Shift+C",
"updateLastCardFromClipboard": "CommandOrControl+V",
"triggerFieldGrouping": "CommandOrControl+G",
"triggerSubsync": "CommandOrControl+Alt+S",
"mineSentence": "CommandOrControl+S",
"mineSentenceMultiple": "CommandOrControl+Shift+S",
"multiCopyTimeoutMs": 3000,
"toggleSecondarySub": "CommandOrControl+Shift+V",
"markAudioCard": "CommandOrControl+Shift+A",
"openRuntimeOptions": "CommandOrControl+Shift+O",
"toggleVisibleOverlayGlobal": "Alt+Shift+O",
"toggleInvisibleOverlayGlobal": "Alt+Shift+I",
},
"auto_start_overlay": false,
"texthooker": {
"launchAtStartup": true,
"openBrowser": false,
},
"websocket": {
"enabled": "auto",
"port": 6677,
},
"ankiConnect": {
"enabled": true,
"url": "http://127.0.0.1:8765",
"deck": "Minecraft",
"pollingRate": 500,
"proxy": {
"enabled": true,
"host": "127.0.0.1",
"port": 8766,
"upstreamUrl": "http://127.0.0.1:8765",
},
"fields": {
"audio": "ExpressionAudio",
"image": "Picture",
"sentence": "Sentence",
"miscInfo": "MiscInfo",
"translation": "SelectionText",
},
"ai": {
"enabled": true,
"alwaysUseAiTranslation": true,
"apiKey": "",
"model": "openai/gpt-oss-120b:free",
"baseUrl": "https://openrouter.ai/api/v1",
"sourceLanguage": "Japanese",
"systemPrompt": "You are a translation engine for translating Japanese into natural-sounding, context-aware English. Return only the translated text with no extra explanations or commentary. The translation must preserve the original tone and intent of the source. If the input is not in the target language, translate it to the target language. If the input is already in the target language, return it as is.",
},
"media": {
"generateAudio": true,
"generateImage": true,
"imageType": "avif",
"imageFormat": "webp",
"animatedFps": 24,
"animatedMaxWidth": 640,
"animatedMaxHeight": null,
"animatedCrf": 35,
"audioPadding": 0.5,
"fallbackDuration": 3,
},
"behavior": {
"overwriteAudio": false,
"overwriteImage": true,
"mediaInsertMode": "append",
"highlightWord": true,
"notificationType": "system",
"showNotificationOnUpdate": true,
"autoUpdateNewCards": true,
},
"nPlusOne": {
"decks": ["Minecraft", "Kaishi 1.5k"],
"highlightEnabled": true,
"refreshMinutes": 60,
"matchMode": "headword",
"minSentenceWords": 3,
},
"metadata": {
"pattern": "[SubMiner] %f (%t)",
},
"isLapis": {
"enabled": true,
"sentenceCardModel": "Lapis Morph",
},
"isKiku": {
"enabled": true,
"fieldGrouping": "manual",
"deleteDuplicateInAuto": false,
},
"tags": ["SubMiner"],
},
"secondarySub": {
"autoLoadSecondarySub": true,
"secondarySubLanguages": ["en", "eng"],
},
"subsync": {
"defaultMode": "manual",
"alass_path": null,
"ffsubsync_path": null,
"ffmpeg_path": null,
"replace": true,
},
"subtitleStyle": {
"fontFamily": "M PLUS 1 Medium, Source Han Sans JP, Noto Sans CJK JP",
"fontSize": 35,
"fontColor": "#cad3f5",
"fontWeight": 600,
"lineHeight": 1.35,
"letterSpacing": "-0.01em",
"wordSpacing": 0,
"fontKerning": "normal",
"textRendering": "geometricPrecision",
"textShadow": "0 3px 10px rgba(0,0,0,0.69)",
"fontStyle": "normal",
"backgroundColor": "rgb(30, 32, 48, 0.88)",
"backdropFilter": "blur(6px)",
"hoverTokenColor": "#f4dbd6",
"hoverBackground": "rgba(54, 58, 79, 0.84)",
"preserveLineBreaks": false,
"autoPauseVideoOnHover": true,
"secondary": {
"fontFamily": "Manrope, Inter",
"fontSize": 24,
"fontColor": "#cad3f5",
"backgroundColor": "transparent",
},
"frequencyDictionary": {
"enabled": true,
"sourcePath": "",
"topX": 10000,
"mode": "single",
"matchMode": "headword",
"singleColor": "#f5a97f",
"bandedColors": ["#ed8796", "#f5a97f", "#f9e2af", "#a6e3a1", "#8aadf4"],
},
"enableJlpt": true,
"jlptColors": {
"N1": "#ed8796",
"N2": "#f5a97f",
"N3": "#f9e2af",
"N4": "#a6e3a1",
"N5": "#8aadf4",
},
"nPlusOneColor": "#c6a0f6",
"knownWordColor": "#a6da95",
},
"jimaku": {
"apiKeyCommand": "cat ~/.jimaku-api-key",
"apiBaseUrl": "https://jimaku.cc",
"languagePreference": "ja",
"maxEntryResults": 10,
},
"youtubeSubgen": {
"mode": "automatic",
"whisperBin": "/usr/bin/whisper-cli",
"whisperModel": "~/models/whisper.cpp/ggml-small.bin",
},
"anilist": {
"characterDictionary": {
"enabled": true,
"collapsibleSections": {
"description": false,
"characterInformation": false,
"voicedBy": false,
},
},
},
"immersionTracking": {
"enabled": true,
"dbPath": "",
},
"jellyfin": {
"enabled": true,
"serverUrl": "http://pve-main:8096",
"username": "sudacode",
"deviceId": "subminer",
"clientName": "SubMiner",
"clientVersion": "0.1.0",
"defaultLibraryId": "",
"directPlayPreferred": true,
"remoteControlEnabled": true,
"remoteControlAutoConnect": true,
"autoAnnounce": false,
"remoteControlDeviceName": "SubMiner",
"directPlayContainers": ["mkv", "mp4", "webm", "mov", "flac", "mp3", "aac"],
"transcodeVideoCodec": "h265",
"pullPictures": true,
"iconCacheDir": "~/S/japanese/subminer-jellyfin-icons",
},
"logging": {
"level": "debug",
},
"discordPresence": {
"enabled": true,
"detailsTemplate": "Mining and crafting (Anki cards)",
"stateTemplate": "Idle",
"largeImageKey": "subminer-logo",
"largeImageText": "SubMiner",
"smallImageKey": "study",
"smallImageText": "Sentence Mining",
"buttonLabel": "",
"buttonUrl": "",
"updateIntervalMs": 15000,
"debounceMs": 750,
},
"startupWarmups": {
"lowPowerMode": false,
"mecab": true,
"yomitanExtension": true,
"subtitleDictionaries": true,
"jellyfinRemoteSession": false,
},
}