{ "keybindings": [ { "key": "KeyF", "command": ["cycle", "fullscreen"], }, { "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, "model": "openai/gpt-oss-120b:free", "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, "syncAnimatedImageToWordAudio": true, }, "behavior": { "overwriteAudio": false, "overwriteImage": true, "mediaInsertMode": "append", "highlightWord": true, "notificationType": "both", "showNotificationOnUpdate": true, "autoUpdateNewCards": true, }, "knownWords": { "decks": { "Minecraft": ["Expression", "Reading"], "Kaishi 1.5k": ["Word", "Word Reading"], }, "highlightEnabled": true, "refreshMinutes": 60, "matchMode": "headword", "addMinedWordsImmediately": true, }, "nPlusOne": { "minSentenceWords": 3, }, "metadata": { "pattern": "[SubMiner] %f (%t)", }, "isLapis": { "enabled": true, "sentenceCardModel": "Lapis Morph", }, "isKiku": { "enabled": true, "fieldGrouping": "manual", "deleteDuplicateInAuto": false, }, "tags": ["SubMiner"], }, "ai": { "enabled": true, "alwaysUseAiTranslation": false, "apiKeyCommand": "cat ~/.openrouterapikey", "baseUrl": "https://openrouter.ai/api/v1", "sourceLanguage": "Japanese", }, "secondarySub": { "autoLoadSecondarySub": true, "secondarySubLanguages": ["en", "eng"], }, "youtube": { "primarySubLanguages": ["ja", "jpn"], }, "subsync": { "defaultMode": "manual", "alass_path": null, "ffsubsync_path": null, "ffmpeg_path": null, "replace": true, }, "subtitleStyle": { "fontFamily": "Hiragino Sans, M PLUS 1, Source Han Sans JP, Noto Sans CJK JP", "fontSize": 38, "fontColor": "#cad3f5", "fontWeight": 500, "lineHeight": 1.4, "letterSpacing": "0.02em", "wordSpacing": 0, "fontKerning": "normal", "textRendering": "optimizeLegibility", "paintOrder": "stroke fill", "WebkitTextStroke": "1.5px #000", "textShadow": "0 2px 6px rgba(0,0,0,0.9), 0 0 12px rgba(0,0,0,0.55)", "fontStyle": "normal", "backgroundColor": "transparent", "hoverTokenColor": "#f4dbd6", "backdropFilter": "blur(6px)", "hoverTokenBackgroundColor": "transparent", "preserveLineBreaks": false, "autoPauseVideoOnHover": true, "autoPauseVideoOnYomitanPopup": true, "secondary": { "fontFamily": "Manrope, Inter", "fontSize": 24, "fontColor": "#cad3f5", "backgroundColor": "transparent", "paintOrder": "stroke fill", "WebkitTextStroke": "0.75px #000", "textShadow": "0 1px 4px rgba(0,0,0,0.85), 0 0 10px rgba(0,0,0,0.5)", }, "frequencyDictionary": { "enabled": true, "sourcePath": "", "topX": 10000, "mode": "single", "matchMode": "headword", "singleColor": "#f5a97f", "bandedColors": ["#ed8796", "#f5a97f", "#f9e2af", "#8bd5ca", "#8aadf4"], }, "enableJlpt": true, "jlptColors": { "N1": "#ed8796", "N2": "#f5a97f", "N3": "#f9e2af", "N4": "#8bd5ca", "N5": "#8aadf4", }, "nPlusOneColor": "#c6a0f6", "knownWordColor": "#a6da95", }, "jimaku": { "apiKeyCommand": "cat ~/.jimaku-api-key", "apiBaseUrl": "https://jimaku.cc", "languagePreference": "ja", "maxEntryResults": 10, }, "anilist": { "enabled": true, "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": "info", }, "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, }, "yomitan": { "externalProfilePath": "", }, "stats": { "toggleKey": "Backquote", "serverPort": 6969, "autoStartServer": true, "autoOpenBrowser": false, }, "subtitleSidebar": { "enabled": true, "toggleKey": "Backslash", "pauseVideoOnHover": true, "autoScroll": true, "maxWidth": 420, "opacity": 0.69, "backgroundColor": "rgba(36, 39, 58, 0.78)", "textColor": "#cad3f5", "fontFamily": "\"M PLUS 1\", \"Noto Sans CJK JP\", sans-serif", "fontSize": 16, "timestampColor": "#a5adcb", "activeLineColor": "#f5bde6", "activeLineBackgroundColor": "rgba(138, 173, 244, 0.22)", "hoverLineBackgroundColor": "rgba(54, 58, 79, 0.84)", }, "controller": { "enabled": true, "profiles": { "Sony Interactive Entertainment Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 09cc)": { "label": "Sony Interactive Entertainment Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 09cc)", "bindings": { "toggleMpvPause": { "kind": "button", "buttonIndex": 10, }, "quitMpv": { "kind": "button", "buttonIndex": 8, }, }, }, }, }, "mpv": { "executablePath": "", "launchMode": "normal", }, "updates": { "enabled": true, "checkIntervalHours": 24, "notificationType": "system", "channel": "prerelease", }, }