diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1edb61c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +immersive-data diff --git a/.gitmodules b/.gitmodules index af0f685..8f41a50 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "scripts/autosubsync-mpv"] path = scripts/autosubsync-mpv url = git@github.com:Ajatt-Tools/autosubsync-mpv.git +[submodule "scripts/immersive"] + path = scripts/immersive + url = git@github.com:Ben-Kerman/immersive.git diff --git a/script-opts/immersive-dictionaries.conf b/script-opts/immersive-dictionaries.conf new file mode 100644 index 0000000..3d4cd38 --- /dev/null +++ b/script-opts/immersive-dictionaries.conf @@ -0,0 +1,70 @@ +# this line is here so the file is encoded as UTF−8 +# do not delete it unless you know what that means + +# example dictionary config for JMdict + +[JMdict] +location=/home/sudacode/Documents/jmdict +type=yomichan + +# Only the two entries above are strictly required for each dictionary. +# optional entries: + +# cf. doc/lookup-transformations.md, empty by default: +#transformations=deinflect-japanese,deinflect-migaku(ja.json),kana + +# cf. doc/dictionaries.md for details +#preload=<...> +#insert_cjk_breaks=no +#exporter=default +#quick_def_template={{readings:::・}}{{variants:【:】:・}}: {{definitions:::; }} + +#export:digits=<...> +#export:reading_template={{reading}}{{variants:【:】:・}} +#export:definition_template={{tags::
:, }}{{num}}. {{keywords:::; }} +#export:template={{readings[1]}}:{{readings[2:] (:): }}
{{definitions:::
}} +#export:use_single_template=yes +#export:single_template={{readings[1]}}:{{readings[2:] (:): }} {{keywords:::; }} + +# -------------------- + +# example config for Daijirin, probably usable for any EPWING exported by +# yomichan-import + +# also set 'definition_substitutions=\
<\n' in your target config +# to add HTML line breaks to the definition + +#[大辞林] +#location= +#type=yomichan + +# to make text more readable in mpv +#insert_cjk_breaks=yes + +# there is only one definition for EPWINGs exported to Yomichan +# and it already includes the word +#quick_def_template={{definitions}} + +# same as for quick_def_template +#export:definition_template={{keywords}} +#export:template={{definitions}} + +# these aren't needed since the reading and word are already in the definition +#export:reading_template= +#export:use_single_template=no + +# -------------------- + +# example config for a Migaku dictionary + +#[Migaku Dictionary] +#location= +#type=migaku +#exporter=default +#quick_def_template={{definitions}} +#export:template=[[ +#{{terms[1]}}{{terms[2:] (:):, }}:
+#{{altterms::
:, }}{{pronunciations::
:, }}{{positions::
:, }} +#{{definition}} +#{{examples:::, }} +#]] diff --git a/script-opts/immersive-keys.conf b/script-opts/immersive-keys.conf new file mode 100644 index 0000000..014cd57 --- /dev/null +++ b/script-opts/immersive-keys.conf @@ -0,0 +1,4 @@ +open_global_menu=ctrl+i +show_dict_target=ctrl+I +export_active_line_instant=ctrl+e +export_active_line_menua=ctrl+E diff --git a/script-opts/immersive-series.conf b/script-opts/immersive-series.conf new file mode 100644 index 0000000..f5941ac --- /dev/null +++ b/script-opts/immersive-series.conf @@ -0,0 +1,12 @@ +# this line is here so the file is encoded as UTF−8 +# do not delete it unless you know what that means + +## streamed video; something similar should work for any platform youtube-dl supports +#[youtube] +#title={{media_title}} +#keywords=youtu be +# +## local video file +#[kaguya-sama] +#title=かぐや様は告らせたい +#keywords=kaguya sama kokurasetai diff --git a/script-opts/immersive-style.conf b/script-opts/immersive-style.conf new file mode 100644 index 0000000..61f1a40 --- /dev/null +++ b/script-opts/immersive-style.conf @@ -0,0 +1,143 @@ +# this line is here so the file is encoded as UTF−8 +# do not delete it unless you know what that means + +# Global entries serve as the basis for all other styles. +#align =5 +#bold = +#italic = +#underline =no +#strikeout =no +#border = +#border_x = +#border_y = +#shadow = +#shadow_x = +#shadow_y = +#blur = +#font_name = +#font_size =30 +#letter_spacing = +#primary_color = +#secondary_color =808080 +#border_color = +#shadow_color = +#all_alpha =FF +#primary_alpha = +#secondary_alpha =00 +#border_alpha = +#shadow_alpha = + +# -------------------- + +# message log at the top right +#[messages] +#align=9 + +#[messages/fatal] +#bold=yes +#primary_color=5791F9 + +#[messages/error] +#primary_color=7A77F2 + +#[messages/warn] +#primary_color=66CCFF + +#[messages/info] +# none + +#[messages/verbose] +#primary_color=99CC99 + +#[messages/debug] +#primary_color=A09F93 + +#[messages/trace] +# none + +# -------------------- + +# menu help ("Press h to show key bindings") +#[menu_help] +#align=7 + +# key bindings +#[menu_help/key] +#bold=yes + +# top line of the menu help +#[menu_help/hint] +#italic=yes + +# -------------------- + +# menu info (timings, active target, etc.) +#[menu_info] +#align=1 + +# description of an info item +#[menu_info/key] +#bold=yes + +# unset/unknown/automatically generated values +#[menu_info/unset] +#italic=yes + +# -------------------- + +# line selection +#[line_select] +# none + +# actively selected line +#[line_select/selection] +#bold=yes +#primary_color=FFD0D0 + +# -------------------- + +# text selection +# applied on top of line_select during target selection +#[text_select] +# none + +# selected text +#[text_select/selection] +#primary_color=FF8080 + +# -------------------- + +# Forvo audio selection +# applied on top of line_select +#[word_audio_select] +# none + +# pronunciations that have not been loaded yet +#[word_audio_select/unloaded] +#primary_color=808080 + +# pronunciations that are currently loading +#[word_audio_select/loading] +#primary_color=8080FF + +# pronunciations that are ready to play +#[word_audio_select/loaded] +# none + +# -------------------- + +# overlay of selected subtitles during subtitle selection +#[selection_overlay] +#align=3 + +# -------------------- + +# overlay shown when Immersive is blocked, e.g. while importing dictionaries +#[info_overlay] +#align=1 + + +# overlay for hiding the video during and after target selection +#[blackout] +#primary_color= +#primary_alpha= diff --git a/script-opts/immersive-targets.conf b/script-opts/immersive-targets.conf new file mode 100644 index 0000000..fd86dab --- /dev/null +++ b/script-opts/immersive-targets.conf @@ -0,0 +1,139 @@ +# this line is here so the file is encoded as UTF−8 +# do not delete it unless you know what that means + +[target name] +# Anki profile the target will use +# Can be taken from the window title of the main Anki window or from the profile +# menu (Ctrl+Shift+P in Anki) +profile=sudacode + +# Anki deck the target will use +# Subdecks use the same syntax as in Anki itself +# e.g. Root::Subdeck::Subsubdeck +deck=Craft + +# note type the target will use +note_type=Lapis + +# -------------------- + +# example field definitions + +# uncomment (remove the #) and change so they fit your note type +# Anki field names go between 'field:' and '=', exactly as they are +# in Anki, including spaces. +# Template variables come after the '=', like in the examples. + +#field:Front={{sentences}} +#field:Back={{definitions}} +#field:Word={{words[1]}} +#field:Words={{words::: }} +#field:Audio={{audio}} +#field:Word Audio={{word_audio}} +#field:Image={{image}} + +field:ExpressionAudio={{audio}} +field:Picture={{image}} +field:MiscInfo={{series_title}} + +# Everything below this line has default values and is not required. +# It is recommended to change image/max_width or image/max_height in order to +# reduce file sizes, however. +# -------------------- + +# how export data will be added to existing notes +# allowed values: 'append', 'prepend', 'overwrite' +# overwrite replaces fields (but cf. template variable {{prev_content}}) +add_mode=append + +# template used for formatting notes within mpv +# when selecting which existing note to export to +#note_template={{type}}: {{id}} + +# Anki media dir override, optional and normally derived from system default +# Must be an absolute path to the directory that encoded images/audio clips +# should be placed in (i.e., to collection.media). +#media_directory= + +# space-separated list of tags that will be added to exported notes +#tags=immersive + +# can be set dynamically using field template variables, e.g.: +#tags={{series_id}} + +# -------------------- + +# substitutions to apply to the {{sentences}} variable +# for more information, see doc/card-export.md +#sentence_substitutions=[[ +#<(.-%) +#<(.-%) +#]] + +# same as sentence_substitutions but for {{definitions}} +#definition_substitutions= + +# -------------------- + +# audio clip file extension +# unrelated to the format used, but should match it (especially on Windows) +#audio/extension=mka + +# audio container format +# e.g. 'matroska' (MKV/MKA), 'ogg', 'mp3' +#audio/format=matroska + +# audio codec +# e.g. 'libopus' (NOT 'opus'), 'aac', 'vorbis', 'libmp3lame' (MP3) +#audio/codec=libopus + +# audio bitrate +# Uses the same syntax as mpv/ffmpeg bitrates. +# Sensible values are 32ki-64ki for libopus and 128ki for AAC and MP3. +#audio/bitrate=48ki + +# how many seconds of padding to include before the start of audio clips +#audio/pad_start=0.1 + +# same as above, but after the end of the clip +#audio/pad_end=0.1 + +# -------------------- + +# image file extension +#image/extension=webp + +# image codec +# supported values are 'mjpeg' (JPG), 'libwebp' (WebP), and 'png' +# Technically, any codec that works with ffmpeg's image2 format can be used. +#image/codec=libwebp + +# maximum image width/height +# If one option is set to a negative value aspect ratio will be preserved. +# If both are negative the video's resolution will be used. +#image/max_width=-1 +#image/max_height=-1 + +# quality of JPG (mjpeg) images +# valid range: 1-69 +# lower is better (but files will be larger) +# Values above 5-10 result in noticeable artifacting. +#image/jpeg/qscale=5 + +# whether to use lossless compression for WebP +#image/webp/lossless=no + +# libwebp quality factor +# valid range: 0-100 +# higher is better +#image/webp/quality=90 + +# libwebp compression level +# valid range: 0-6 +# Higher values result in better compression but take longer to encode. +#image/webp/compression=4 + +# PNG compression level +# valid range: 0-9 +# higher is better +#image/png/compression=9 diff --git a/script-opts/immersive.conf b/script-opts/immersive.conf new file mode 100644 index 0000000..200a13f --- /dev/null +++ b/script-opts/immersive.conf @@ -0,0 +1,82 @@ +# this line is here so the file is encoded as UTF−8 +# do not delete it unless you know what that means + +# the mpv executable to use for audio previews and encoding +# if unset (default), the executable of the current process will be used +#mpv_executable=<...> + +# if set to 'yes', load dictionaries when mpv starts +preload_dictionaries=no + +# show the dictionary loading overlay when loading dicts at startup +startup_dict_overlay=yes + +# maximum number of target words per card +# set to 0 to disable limit +#max_targets=1 + +# always show minutes when displaying times, +# even if playback has not reached 01:00 yet +#always_show_minutes=yes + +# black out the screen during and after target selection +#target_select_blackout=yes + +# black out the screen when looking up words from the active subtitle +#active_sub_blackout=yes + +# language code to use when searching Forvo audio +#forvo_language=ja + +# Automatically load Forvo audio instead of waiting until attempting to play it. +#forvo_preload_audio=no + +# download mp3 files from Forvo instead of Ogg/Vorbis +#forvo_prefer_mp3=no + +# prefix for Forvo filenames in the Anki media directory +# Files will be named '-.'. +#forvo_prefix=word_audio + +# reencode Forvo audio files since they are unnecessarily large +#forvo_reencode=yes + +# Forvo audio encoding options +# These behave like the corresponding options in target configs. +#forvo_extension=mka +#forvo_format=matroska +#forvo_codec=libopus +#forvo_bitrate=64ki + +# AnkiConnect host and port +#ankiconnect_host=localhost +#ankiconnect_port=8765 + +# Windows clipboard copy mode +# "exact" takes longer (200ms-1s), but preserves the text exactly, +# i.e. it also copies line breaks. +# "quick" is much faster (<50ms), but might not copy the text +# with 100% accuracy. This method sometimes causes encoding issues +# and is known to sporadically copy corrupted text. +#windows_copy_mode=exact + +# enable automatic subtitle copying by default +#enable_autocopy=no + +# make subtitle autoselect toggle global instead of +# being tied to each subtitle select menu +#global_autoselect=yes + +# enable subtitle autoselect by default +#enable_autoselect=yes + +# same as above but for the menu help toggle +#global_help=yes +#enable_help=no + +# enable screenshots by default +#take_screenshots=yes + +# Hide the menu info at the bottom left if the help overlay is active. +# Useful if the two collide due to large font sizes. +#hide_infos_if_help_active=no diff --git a/scripts/immersive b/scripts/immersive new file mode 160000 index 0000000..9bde59a --- /dev/null +++ b/scripts/immersive @@ -0,0 +1 @@ +Subproject commit 9bde59a0abaa018096de5b6f38c3ad409b9cfdf1