This commit is contained in:
2026-03-23 22:37:27 -07:00
parent 19e7680316
commit 8c2da7fea7
7 changed files with 176 additions and 89 deletions

View File

@@ -165,6 +165,9 @@ trust_level = "trusted"
[projects."/home/sudacode/projects/lua/ModernZ"]
trust_level = "trusted"
[projects."/home/sudacode/.config/rofi/scripts"]
trust_level = "trusted"
[notice.model_migrations]
"gpt-5.3-codex" = "gpt-5.4"

View File

@@ -2,32 +2,58 @@
"keybindings": [
{
"key": "KeyF",
"command": ["cycle", "fullscreen"],
"command": [
"cycle",
"fullscreen"
]
},
{
"key": "KeyR",
"command": ["add", "sub-pos", -5],
"command": [
"add",
"sub-pos",
-5
]
},
{
"key": "Shift+KeyR",
"command": ["add", "sub-pos", 5],
"command": [
"add",
"sub-pos",
5
]
},
{
"key": "KeyJ",
"command": ["cycle", "sub"],
"command": [
"cycle",
"sub"
]
},
{
"key": "BracketRight",
"command": ["add", "sub-delay", 0.1],
"command": [
"add",
"sub-delay",
0.1
]
},
{
"key": "BracketLeft",
"command": ["add", "sub-delay", -0.1],
"command": [
"add",
"sub-delay",
-0.1
]
},
{
"key": "Backslash",
"command": ["set_property", "sub-delay", 0],
},
"command": [
"set_property",
"sub-delay",
0
]
}
],
"shortcuts": {
"copySubtitle": "CommandOrControl+C",
@@ -42,16 +68,16 @@
"markAudioCard": "CommandOrControl+Shift+A",
"openRuntimeOptions": "CommandOrControl+Shift+O",
"toggleVisibleOverlayGlobal": "Alt+Shift+O",
"toggleInvisibleOverlayGlobal": "Alt+Shift+I",
"toggleInvisibleOverlayGlobal": "Alt+Shift+I"
},
"auto_start_overlay": false,
"texthooker": {
"launchAtStartup": true,
"openBrowser": false,
"openBrowser": false
},
"websocket": {
"enabled": "auto",
"port": 6677,
"port": 6677
},
"ankiConnect": {
"enabled": true,
@@ -62,19 +88,19 @@
"enabled": true,
"host": "127.0.0.1",
"port": 8766,
"upstreamUrl": "http://127.0.0.1:8765",
"upstreamUrl": "http://127.0.0.1:8765"
},
"fields": {
"audio": "ExpressionAudio",
"image": "Picture",
"sentence": "Sentence",
"miscInfo": "MiscInfo",
"translation": "SelectionText",
"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.",
"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,
@@ -87,7 +113,7 @@
"animatedCrf": 35,
"audioPadding": 0.5,
"fallbackDuration": 3,
"syncAnimatedImageToWordAudio": true,
"syncAnimatedImageToWordAudio": true
},
"behavior": {
"overwriteAudio": false,
@@ -96,52 +122,63 @@
"highlightWord": true,
"notificationType": "both",
"showNotificationOnUpdate": true,
"autoUpdateNewCards": true,
"autoUpdateNewCards": true
},
"knownWords": {
"decks": {
"Minecraft": ["Expression", "Reading"],
"Kaishi 1.5k": ["Word", "Word Reading"],
"Minecraft": [
"Expression",
"Reading"
],
"Kaishi 1.5k": [
"Word",
"Word Reading"
]
},
"highlightEnabled": true,
"refreshMinutes": 60,
"matchMode": "headword",
"addMinedWordsImmediately": true,
"addMinedWordsImmediately": true
},
"nPlusOne": {
"minSentenceWords": 3,
"minSentenceWords": 3
},
"metadata": {
"pattern": "[SubMiner] %f (%t)",
"pattern": "[SubMiner] %f (%t)"
},
"isLapis": {
"enabled": true,
"sentenceCardModel": "Lapis Morph",
"sentenceCardModel": "Lapis Morph"
},
"isKiku": {
"enabled": true,
"fieldGrouping": "manual",
"deleteDuplicateInAuto": false,
"deleteDuplicateInAuto": false
},
"tags": ["SubMiner"],
"tags": [
"SubMiner"
]
},
"ai": {
"enabled": true,
"alwaysUseAiTranslation": false,
"apiKeyCommand": "cat ~/.openrouterapikey",
"baseUrl": "https://openrouter.ai/api/v1",
"sourceLanguage": "Japanese",
"sourceLanguage": "Japanese"
},
"secondarySub": {
"autoLoadSecondarySub": true,
"secondarySubLanguages": ["en", "eng"],
"secondarySubLanguages": [
"en",
"eng"
]
},
"subsync": {
"defaultMode": "manual",
"alass_path": null,
"ffsubsync_path": null,
"ffmpeg_path": null,
"replace": true,
"replace": true
},
"subtitleStyle": {
"fontFamily": "M PLUS 1 Medium, Source Han Sans JP, Noto Sans CJK JP",
@@ -155,7 +192,6 @@
"textRendering": "geometricPrecision",
"textShadow": "0 3px 10px rgba(0,0,0,0.69)",
"fontStyle": "normal",
// "backgroundColor": "transparent",
"backgroundColor": "#232634",
"hoverTokenColor": "#f4dbd6",
"hoverBackground": "rgba(54, 58, 79, 0.84)",
@@ -165,7 +201,7 @@
"secondary": {
"fontFamily": "Manrope, Inter",
"fontSize": 24,
"fontColor": "#cad3f5",
"fontColor": "#cad3f5"
},
"frequencyDictionary": {
"enabled": true,
@@ -174,7 +210,13 @@
"mode": "single",
"matchMode": "headword",
"singleColor": "#f5a97f",
"bandedColors": ["#ed8796", "#f5a97f", "#f9e2af", "#a6e3a1", "#8aadf4"],
"bandedColors": [
"#ed8796",
"#f5a97f",
"#f9e2af",
"#a6e3a1",
"#8aadf4"
]
},
"enableJlpt": true,
"jlptColors": {
@@ -182,16 +224,16 @@
"N2": "#f5a97f",
"N3": "#f9e2af",
"N4": "#a6e3a1",
"N5": "#8aadf4",
"N5": "#8aadf4"
},
"nPlusOneColor": "#c6a0f6",
"knownWordColor": "#a6da95",
"knownWordColor": "#a6da95"
},
"jimaku": {
"apiKeyCommand": "cat ~/.jimaku-api-key",
"apiBaseUrl": "https://jimaku.cc",
"languagePreference": "ja",
"maxEntryResults": 10,
"maxEntryResults": 10
},
"youtubeSubgen": {
"mode": "automatic",
@@ -202,9 +244,12 @@
"fixWithAi": true,
"ai": {
"model": "google/gemini-2.5-flash-lite",
"systemPrompt": "Fix transcription mistakes only. Preserve the original language exactly. Do not translate, paraphrase, summarize, merge, split, reorder, or omit cues. Preserve cue numbering, cue count, timestamps, line breaks within each cue, and valid SRT formatting exactly. Return only corrected SRT.",
"systemPrompt": "Fix transcription mistakes only. Preserve the original language exactly. Do not translate, paraphrase, summarize, merge, split, reorder, or omit cues. Preserve cue numbering, cue count, timestamps, line breaks within each cue, and valid SRT formatting exactly. Return only corrected SRT."
},
"primarySubLanguages": ["ja", "jpn"],
"primarySubLanguages": [
"ja",
"jpn"
]
},
"anilist": {
"characterDictionary": {
@@ -212,13 +257,13 @@
"collapsibleSections": {
"description": false,
"characterInformation": false,
"voicedBy": false,
},
},
"voicedBy": false
}
}
},
"immersionTracking": {
"enabled": true,
"dbPath": "",
"dbPath": ""
},
"jellyfin": {
"enabled": true,
@@ -233,13 +278,21 @@
"remoteControlAutoConnect": true,
"autoAnnounce": false,
"remoteControlDeviceName": "SubMiner",
"directPlayContainers": ["mkv", "mp4", "webm", "mov", "flac", "mp3", "aac"],
"directPlayContainers": [
"mkv",
"mp4",
"webm",
"mov",
"flac",
"mp3",
"aac"
],
"transcodeVideoCodec": "h265",
"pullPictures": true,
"iconCacheDir": "~/S/japanese/subminer-jellyfin-icons",
"iconCacheDir": "~/S/japanese/subminer-jellyfin-icons"
},
"logging": {
"level": "info",
"level": "info"
},
"discordPresence": {
"enabled": true,
@@ -252,27 +305,26 @@
"buttonLabel": "",
"buttonUrl": "",
"updateIntervalMs": 15000,
"debounceMs": 750,
"debounceMs": 750
},
"startupWarmups": {
"lowPowerMode": false,
"mecab": true,
"yomitanExtension": true,
"subtitleDictionaries": true,
"jellyfinRemoteSession": false,
"jellyfinRemoteSession": false
},
"yomitan": {
"externalProfilePath": "",
"externalProfilePath": ""
},
"stats": {
"toggleKey": "Backquote", // Key code to toggle the stats overlay.
"serverPort": 6969, // Port for the stats HTTP server.
"autoStartServer": true, // Automatically start the stats server on launch. Values: true | false
"autoOpenBrowser": false,
}, // Local immersion stats dashboard served on localhost and available as an in-app overlay.
"toggleKey": "Backquote",
"serverPort": 6969,
"autoStartServer": true,
"autoOpenBrowser": false
},
"subtitleSidebar": {
"enabled": true,
// "layout": "embedded",
"toggleKey": "Backslash",
"pauseVideoOnHover": true,
"autoScroll": true,
@@ -285,6 +337,10 @@
"timestampColor": "#a5adcb",
"activeLineColor": "#f5bde6",
"activeLineBackgroundColor": "rgba(138, 173, 244, 0.22)",
"hoverLineBackgroundColor": "rgba(54, 58, 79, 0.84)",
"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)"
}
}

View File

@@ -80,15 +80,20 @@ bindm = $mainMod, mouse:273, resizewindow
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
bindel = ,F12, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,F11, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,F10, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
# Requires playerctl
bindl = , XF86AudioNext, exec, mpc next
bindl = , XF86AudioPause, exec, mpc toggle
bindl = , XF86AudioPlay, exec, mpc toggle
bindl = , XF86AudioPrev, exec, mpc prev
bindl = , F9, exec, playerctl next
bindl = , F8, exec, playerctl play-pause
bindl = , F7, exec, playerctl previous
# bindl = , XF86AudioStop, exec, mpc stop
# rofi
@@ -139,9 +144,11 @@ bind = CTRL $mainMod SHIFT, R, exec, hyprctl dispatch dpms off && sleep 1 && hyp
# Disable keybinds with one master keybind
# https://wiki.hypr.land/0.49.0/Configuring/Uncommon-tips--tricks/#disabling-keybinds-with-one-master-keybind
# PAGE DOWN
bind = $mainMod, code:117, submap, clean
submap = clean
bind = $mainMod, code:110, submap, reset
# PAGE UP
bind = $mainMod, code:112, submap, reset
submap = reset
bind = SUPER, l, exec, hyprlock

View File

@@ -88,5 +88,13 @@ windowrule = dim_around off, match:class SubMiner
windowrule = allows_input offf, match:class SubMiner
windowrule = border_size 0, match:class steam_app_1277940
windowrule = opacity 1.0 override, match:class SubMiner
# {{{ GSM Overlay and LunaTranslator tweaks
# }}}
# {{{ FEH
windowrule = float on, match:class feh
windowrule = center on, match:class feh
windowrule = border_size 0, match:class feh
windowrule = no_shadow on, match:class feh
windowrule = no_blur on, match:class feh
windowrule = no_anim on, match:class feh
# }}}

View File

@@ -15,7 +15,7 @@ idlescreen=yes
# show OSC window top bar: "auto", "yes", or "no" (borderless/fullscreen)
window_top_bar=auto
# show window controls in fullscreen
windowcontrols_fullscreen=yes
window_controls_fullscreen=yes
# show OSC when windowed
showwindowed=yes
# show OSC when fullscreen
@@ -311,11 +311,11 @@ automatickeyframemode=yes
automatickeyframelimit=600
# always show a small progress line at the bottom of the screen
persistentprogress=no
persistent_progress=no
# height of the persistent progress bar
persistentprogressheight=17
persistent_progress_height=17
# show buffer status on web videos in the persistent progress line
persistentbuffer=no
persistent_buffer=no
# Miscellaneous settings
# only used at init to set visibility_mode(...)

View File

@@ -5,48 +5,61 @@ source "$SCRIPT_DIR/rofi-menu-helpers.sh"
BROWSER=/usr/bin/zen-browser
DOC_GROUPS=(
"Arch Linux (btw)|ARCH"
"Hyprland|HYPRLAND"
"Arch Linux (btw)|ARCH"
"Hyprland|HYPRLAND"
"EVO|EVO80"
)
ARCH=(
"Archlinux Wiki|https://wiki.archlinux.org/title/Main_page"
"Archlinux Wiki|https://wiki.archlinux.org/title/Main_page"
)
HYPRLAND=(
"Hyprland Docs|https://wiki.hypr.land/"
"Hyprland Window Rules|https://wiki.hypr.land/Configuring/Window-Rules/"
"Hyprland Docs|https://wiki.hypr.land/"
"Hyprland Window Rules|https://wiki.hypr.land/Configuring/Window-Rules/"
)
EVO80=(
"Reference|feh $HOME/Documents/screenshots/reference/evo80/EVO80-Wireless-Keyboard-Reference.webp"
"Backlight|feh $HOME/Documents/screenshots/reference/evo80/EVO80-Wireless-Keyboard-Backlight-LED.webp"
"Modes|feh $HOME/Documents/screenshots/reference/evo80/EVO80-Wireless-Keyboard-Modes.webp"
)
select_group() {
rofi_select_label_value "Select Documentation Group" DOC_GROUPS
rofi_select_label_value "Select Documentation Group" DOC_GROUPS
}
select_url() {
local urls_array="$1"
rofi_select_label_value "Select Documentation" "$urls_array" "Back"
local urls_array="$1"
rofi_select_label_value "Select Documentation" "$urls_array" "Back"
}
main() {
while true; do
group_key="$(select_group)" || exit 0
case "$group_key" in
ARCH)
urls_ref=ARCH
;;
HYPRLAND)
urls_ref=HYPRLAND
;;
*)
exit 0
;;
esac
while true; do
group_key="$(select_group)" || exit 0
case "$group_key" in
ARCH)
urls_ref=ARCH
;;
HYPRLAND)
urls_ref=HYPRLAND
;;
EVO80)
urls_ref=EVO80
;;
*)
exit 0
;;
esac
selection="$(select_url "$urls_ref")" || exit 0
if [[ "$selection" == "Back" ]]; then
continue
fi
$BROWSER "$selection" &>/dev/null &
exit 0
done
selection="$(select_url "$urls_ref")" || exit 0
if [[ "$selection" == "Back" ]]; then
continue
fi
if [[ "$selection" == feh* ]]; then
bash -c "$selection" &> /dev/null &
exit $?
fi
$BROWSER "$selection" &> /dev/null &
exit 0
done
}
main