{ "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": "M PLUS 1 Medium, Source Han Sans JP, Noto Sans CJK JP", "fontSize": 35, "fontColor": "#cad3f5", "fontWeight": 700, "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": "#232634", "hoverTokenColor": "#f4dbd6", "hoverBackground": "rgba(54, 58, 79, 0.84)", "preserveLineBreaks": false, "autoPauseVideoOnHover": true, "autoPauseVideoOnYomitanPopup": true, "secondary": { "fontFamily": "Manrope, Inter", "fontSize": 24, "fontColor": "#cad3f5", }, "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, }, "anilist": { "characterDictionary": { "enabled": true, "collapsibleSections": { "description": false, "characterInformation": false, "voicedBy": false, }, }, }, "immersionTracking": { "enabled": true, "dbPath": "", "backend": { "mode": "remote", "remote": { "baseUrl": "http://subminer-db:5432", "deviceId": "cachypc", }, }, }, "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": { "preferredGamepadId": "8BitDo 8BitDo Ultimate 2 Wireless Controller for PC (Vendor: 2dc8 Product: 310b)", "preferredGamepadLabel": "8BitDo 8BitDo Ultimate 2 Wireless Controller for PC (Vendor: 2dc8 Product: 310b)", }, }