MoreRSS

site iconBrandon SkerrittModify

A tech expert who invents open source projects, writes, makes videos, and worked as a Monzo security engineer.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Brandon Skerritt

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

2026-05-09 04:51:02

😋
This article is unfinished
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

The dream of being able to immerse in Japanese games using all the tools you love (GSM, Luna, JL) on a handheld device has simply not been possible.

Until now.

This blog post will show you, reader who already has an immersion setup on Windows, how to do the exact same thing on the Steamdeck.

But on Steamdeck.

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows
The end goal is to comfy maxxx

We're going to do this by dual-booting Windows and SteamOS on the Steamdeck.

But firstly, why dual-boot and not go full Linux?

  1. But they are workarounds.
  2. Pretty much every immersion tool you love is on Windows.
  3. Combining immersion tools that work on Windows with VNs that only work on Windows, and trying to do that on Linux is neigh on impossible.

So why not go full Windows?

SteamOS is specifically made for the Steamdeck.

I know I do!

If you want to attempt the Linux only way™️, read this:

Installing GSM on Steam Deck | GameSentenceMiner Documentation
GameSentenceMiner runs natively on the Steam Deck! Because the Steam Deck is essentially a Linux PC, you can run the full GSM experience directly on the handheld. Alternatively, for better battery life and performance, you can stream your desktop PC to the Deck.
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows
💡
This guide is for people that can comfortably dual boot Linux and Windows, but do not know specifically how to do it on Steamdeck.

Also I assume you have already done the whole TheMoeWay/Refold/AJATT/Migaku/whatever thing on Windows desktop and you just got a Steamdeck for Christmas.

SteamOS Beta

You should join the SteamOS Beta.

This is because it has BIOS drivers you need to make it work on Windows.

  1. To update to beta, press the Steam button or open the Steam menu.
  2. Select the Settings option.
  3. Go to the System option.
  4. Select Beta participation.
  5. Change the System update channel from Stable to Beta.
  6. Restart and apply the update.

Steamdeck password

You need to set a Steamdeck password to do adminy things.

Follow this:

Installing Windows

If you want a more hand-holdy video, this is good:

🐬
You can right click by touching the screen and long pressing.
  1. You need this to resize your partition.
Steam Support :: SteamOS Installation and Repair
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows
🤔
Hold volume up and press power button once to load the boot manager.
  1. Use KDE partition manager in the repair image.
  2. I chose 11 IOT as it uses less resources, and 11 has great touch support.
  3. Put them onto a USB and install them:
Steam Support :: Steam Deck - Windows Resources
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

Look for "setup information" file type, right click and "Install".

It should boot back into Windows.

Connect to WiFi and install Windows updates.

Now after doing that, restart the steamdeck.

Go back to Windows updates, click on "Advanced Options" and then "Optional updates"

Update everything again.

Now let's configure Clover.

When you dualboot normally you can choose between 3 things:

  1. Grub
  2. Refind
  3. Clover

I believe Clover has controller support whereas the others don't.

👽
just open this page on the steamdeck now you have wifi

Open cmd as admin.

bcdedit -set {globalsettings} highestmode on

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

Sets hardware clock to UTC rather than local time.

If you have ever dual booted Linux and Windows you know this is required.

  • Linux typically assumes the hardware clock is set to UTC and converts to local time in software
  • Windows typically assumes the hardware clock is set to local time directly
  • When you switch between OSes, each one "corrects" the clock based on its assumption, causing the time to jump forward or backward

Now shut down your Steamdeck, go into boot manager and boot into SteamOS.

Follow this video to fix it :)

😶‍🌫️
Note: If you see a black screen press "A" if you followed that video.

There were some status.txt

In the docs it says:

Use this only if you have Windows installed on microSD / external SSD and if Windows keeps hijacking the bootloader!

Since I don't use that, I don't care.

Optimise Windows

Now Windows should work fine, let's optimise it to work even better.

Your life will be much easier.

GitHub - rustdesk/rustdesk: An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer. - rustdesk/rustdesk
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

GitHub - ChrisTitusTech/winutil: Chris Titus Tech’s Windows Utility - Install Programs, Tweaks, Fixes, and Updates
Chris Titus Tech’s Windows Utility - Install Programs, Tweaks, Fixes, and Updates - ChrisTitusTech/winutil
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

Here's what I did:

  1. Ran all Standard tweaks.
    1. Additionally disable Background Apps (to speed things up)
    2. Disable Bing search in start menu
    3. Show hidden files and extensions
    4. Enable S3 sleep (this makes the Steamdeck hibernate)
💡
On modern Windows, it will not hibernate by dumping RAM into a file and then reopening that file when you turn the device back on.

Modern hibernate will let Windows install updates etc

This burns through battery life.

Enable S3 sleep in Chris Titus' tool, and then do this to add hibernate to Steamdeck:
Open Control PanelPower Options
Click Choose what the power buttons do (left sidebar)
Click Change settings that are currently unavailable
Check Hibernate under "Shutdown settings"
Change "Power button sleeps" to "Power button hibernates"
Click Save changes

Update: Hibernate breaks dualboots, use "Sleep" instead.

Disable All Updates:

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

Dual booting often breaks because Windows update breaks it.

I will disable all updates, but Windows Defender will still update its threat lists in the background so it's not all terrible.

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

On the Config page do this:

  • Set Up Autologin so you can just go straight to gaming.
  • All .Net frameworks.
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

In apps install:

  • Anki
  • Visual C++ 2015 64bit
  • 7zip

Now open Powershell in admin and run this:

Set-WinSystemLocale -SystemLocale ja-JP

Japanese games require Japanese locale :)

And do this:

  • Open Settings → Time & language → Language & region
  • Under "Country or region", select Japan from the dropdown

While you're there, also install Japanese language support.s

Mining Games

Now let's set up our mining stuff.

Anki

Set up Anki and login, sync or whatever.

Go to your Anki addons folder on Desktop (assuming you have it)

C:\Users\Bee\AppData\Roaming\Anki2\addons21

It all works.

GSM

We'll be using GameSentenceMiner.

Go to this and install it:

GitHub - bpwhelan/GameSentenceMiner: An All-in-One immersion toolkit for learning Languages through games and other visual media.
An All-in-One immersion toolkit for learning Languages through games and other visual media. - bpwhelan/GameSentenceMiner
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

Disable texthooker on startup.

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows
💡
Only use Silero, it is much lighter.

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows
💡
Actually set this to webp, avif requires reencoding.

I play visual novels so I don't need them to be animated 😄

But if you play games, activate animation!

I set AI up:

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows
💡
Actually I moved to using TranslateGemma 4b on Ollama for offline translation.

Install Ollama, open it, select TranslateGemma:
https://ollama.com/

4b takes around 5 seconds to run, 12b takes 30 seconds but lags a lot.

In GSM AI set it up to use Ollama and then TranslateGemma.

Then set MeikiOCR in Overlay:

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows
Meiki is Japanese specific so it uses less resources than OneOCR and on GPU it's faster.

In Advanced:

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

Close GSM and reopen it, my OBS was not synced properly until I did this the first time.

In OBS go to settings, output and then set these:

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

Now in Video tab:

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

Basically all these settings say:

  • I am playing a visual novel that does not move very fast, give me much lower settings to preserve battery life etc.

Finally in GSM enable "Start Overlay on Startup":

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

Open GSM Overlay and set Yomitan up, just export your settings from your desktop and move them over.

💡
Yomitan will check every dictionary you have installed before showing you "Add to Anki".

To save power I just run 4 dicts:
Jitendex (definitions)
Kanjidic
Jiten freq
GSM Character Dict (talked about next).

I also tell Yomitan to only show definitions from max 1 dictionary. This is because Yomitan loads every dict before letting you do anything, which can take some time and power to do

Pro GSM tip:

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

Go to settings -> Database Management and download the special Yomitan dictionary for character information in your games!

While you're here, set up Jiten reader. Use this for Custom Word CSS to make it look normal. The default CSS is horrific to look at.

.jiten-word.new { color: inherit !important; }
.jiten-word.blacklisted { color: inherit !important; }
.jiten-word.mature { color: inherit !important; }
.jiten-word.due { color: inherit !important; }
.jiten-word.young { color: inherit !important;}

Also in settings for Websocket remove all Websockets apart from 2333.

[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

2333 will be used by Lunahook, this saves some cpu cycles as GSM regularly checks to see if those sockets are open.

GSM keyboard shortcuts in overlay todo

Steamdeck controls

Now install this:

GitHub - ayufan/steam-deck-tools: (Windows) Steam Deck Tools - Fan, Overlay, Power Control and Steam Controller for Windows
(Windows) Steam Deck Tools - Fan, Overlay, Power Control and Steam Controller for Windows - ayufan/steam-deck-tools
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

This lets you control Steamdeck specific things like fans / gpu usage etc.

Lunatranslate

Install this:

GitHub - HIllya51/LunaTranslator: 视觉小说翻译器 / Visual Novel Translator
视觉小说翻译器 / Visual Novel Translator. Contribute to HIllya51/LunaTranslator development by creating an account on GitHub.
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

Turn off Google translate.

Put it into Windows defender allow list so it doesn't break.

Turn on networking.

Just make sure the webhooks in GSM hook up to it.

Random tools

I installed Copyparty to let me copy and paste games from my desktop to my SD:

GitHub - 9001/copyparty: Portable file server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file
Portable file server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file - 9001/copyparty
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

It's like FTP but:

  1. You run the .exe
  2. It says "enter this IP in your browser"
  3. You get automatic retries, able to make folders etc.

A lot less finicky for me.

f.lux
Software to warm up your computer display at night, to match your indoor lighting.
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

Cause GSM records the game itself and not the window (by default), your screenshots won't be yellow.

Windows nightlight has a max limit to it, F.lux does not. You can go super red.

Playnite - video game library manager
Video game library manager with one simple goal: To provide a unified interface for all of your games.
[Unfinished] Turning Steamdeck into a Japanese immerison machine by dual booting Windows

Use this to instantly load your gaming library on startup. Lunatranslator and GSM should auto switch to it.

Games

Steam games do not work :/

Anki VN Sorter

2026-05-04 16:25:32

Anki VN Sorter

Hi I vibe coded this addon

GitHub - bee-san/anki_sorter: Anki add-on for prioritizing new Kiku cards with VN-focused new-card sorting.
Anki add-on for prioritizing new Kiku cards with VN-focused new-card sorting. - bee-san/anki_sorter
Anki VN Sorter

it's a sorting addon for new flashcards in anki.

Other sorting algorithms:

  • Go by frequency alone, so similar kanji aren't bundled up together

this addon uses an advanced algorithm (I actually wrote it, but the AI implemented it. No idea if it's the most optimal, but I was going back and forth and double checking my new card order and this one looks like it works)

The idea is:

Reduce the struggle. Words with all Kanji known or only kana appear first, UNLESS there is a super high frequency word you are missing

Basically, if you know all the kanji the word is super easy so you should see it first.

it also works for other things not just visual novels

Algorithm

  1. Candidate selection: The default query is note:Kiku is:new -is:suspended. Review and learning cards are ignored.
  2. Known-kanji extraction: The add-on searches mature cards using matureQuery or the generated matureDays query. It reads the Expression field from those mature Kiku notes and extracts kanji characters. If a kanji appears there, it counts as known.
  3. Frequency source selection: The active list comes from jitenFrequencyListId. The default is global. The add-on tries to use:
    • the fresh cache for the selected list
    • the live Jiten export API for the selected list
    • the stale cache for the selected list
    • the bundled Global snapshot when the selected list is global
    • Kiku FreqSort only if no Jiten data is available
  4. Per-card features: For each candidate card, the add-on reads:
    • Expression
    • extracted kanji count
    • known kanji count
    • Jiten rank from the selected list
    • Kiku FreqSort rank as fallback
  5. Blended scoring: The default score is:This means:
    • absolute frequency score from Jiten, or FreqSort as fallback
    • multiplied by a readability adjustment:
      • all_kanji_known: 1.00
      • kana_only: 0.92
      • unknown kanji: 1 - min(0.18 * unknown_kanji_count, 0.54)
    • plus a small partial-known bonus:
      • 0.04 * coverage_score for cards that still have unknown kanji
  • similar-frequency known-kanji cards usually beat kana-only cards
  • super common kana-only cards can still rise early
  • super common one-unknown-kanji cards can outrank weaker easy cards
  • harder unknown-kanji cards still sink unless their frequency is very strong
  • Final ordering: Cards are sorted by:The older easy_first_tiered_v1 mode still exists if you want strict buckets.
    • higher blended score
    • then better raw rank
    • then shorter expression length when preferShorterExpressions = true
    • then current due
    • then card template order
    • then card id
  • Repositioning: The add-on calls Anki’s internal new-card reposition API. It starts from the minimum due among the eligible cards and only reorders the matching new cards. Non-matching cards are left alone as much as possible.
  • There are also optional strategies, easy_first_tiered_v1 and balanced_ease_v1, but the default and recommended path is frequency_first_soft_v1.

    Mature card exporter for anki

    2026-05-04 16:20:41

    Mature card exporter for anki

    hi i vibe coded this super simple anki addon

    GitHub - bee-san/anki_mature_words_export
    Contribute to bee-san/anki_mature_words_export development by creating an account on GitHub.
    Mature card exporter for anki

    go to tools -> Export Mature Words to Clipboard

    It will ask you to set up your cards, like what Mature is and what Anki card field has the word

    After that everytime you click this, it will export all mature words to your clipboard

    No features other than that.

    Use cases

    • External word trackers like Migaku, Jiten, JPDB can use this
    • Put it into ChatGPT or something
    • Excel?
    • I don't know, its just a really easy way to copy mature anki cards.

    My Moe Desktop Rice 2026

    2026-04-13 01:03:44

    Like any Linux nerd I have been into ricing for a while, stalking the good folks over on r/unixporn and making my own Hyprland rice.

    But for the past 6 months or so I've been using KDE.

    And the past 2 weeks I have gone back from Wayland to X11 (it's just more stable)

    This just so happened to coincide with me discovering this community:

    https://www.reddit.com/r/MoeDesktop/

    It's like r/unixporn but for classic 2005 otaku desktops, invoking the feeling of Moe (pronounced mo-eh).

    Moe (slang) - Wikipedia

    Which just means cuteness (or something like that) in Japanese

    So I thought I would try my hand at a Moe rice.

    GitHub - aeroshell-desktop/aerothemeplasma: An alternative shell for KDE Plasma that aims to replicate the look and feel of Windows 7.
    An alternative shell for KDE Plasma that aims to replicate the look and feel of Windows 7. - aeroshell-desktop/aerothemeplasma

    My first stop was this KDE Aero Plasma theme, since I'm a big big fan of the Vista aesthetic.

    I installed it in one Paru command and it worked 🥳 My desktop does look like Vista now!!

    Colour Matching

    I'm using this wallpaper from Nekopara:

    It's really cute!

    There's things in Python you can do to study the images colours using ImageMagik and match your colourscheme to it.

    Add an option to apply accent color from wallpaper (!1325) · Merge requests · Plasma / Plasma Workspace · GitLab
    This add an option to set accent color from wallpaper. The way it works is that it exposes some dbus calls. If a wallpaper plugin support wallpaper accent…

    So after Aero and my wallpaper I did this!

    Cursor

    In KDE you can edit your cursor super easily

    I went into KDE cursor store and got my Miku cursor!

    Miku Cursors
    Animated Miku cursors for Linux! This cursor set is a modified version of a small Windows set created by petit devil (ぷちでびる) [https://…

    Building Custom Widgets

    Like any good Otaku and doujinsoft fan I needed widgets.

    Doujin soft - Wikipedia

    Remember how cool it was in Vista!?

    So I looked at the defaults.

    I added the Photo Gallery widget

    Because I take so many screenshots of anime / visual novels I just pointed it at my folder.

    In this game her eyes reminded me of Oshi No Ko!

    Oshi no Ko - Wikipedia

    Second widget is weather!

    I live in the UK

    Somedays it's super sunny, the next it's raining.

    Last week I went to work in a coat. Everyone else was in cute dresses and skirts.... I was the odd one out :/

    Never again since I added this widget!

    But I had the thirst for more. MORE MOE WIDGETS!

    So like any good 2026 coder I asked my AI bot to build them for me lol

    City/landmark

    Like any late 20s white girl that visited Japan, I miss it dearly

    I told AI to build me a widget where once a day it'll show me a location from Japan, a photo of it, the Wikipedia description and let me click on it to go to Wikipedia:

    Works quite well!

    I even asked it to make curated lists, so there's one for the West of Tokyo (I lived in Suginami-ku, so I miss that part in particular)

    Word a day

    Every day (well, every hour) it picks a random word from my Anki deck and shows it to me.

    No Anki? No problem!

    We can change it to Local only and see a local word list of curated, fun words :)

    This is prettier than my Anki cards anyway, which are.... full of HTML and ugly...

    Moe Clock

    I built this from a GitHub repo called Moe_Counter or something

    It's just a clock, pretty cool!

    https://count.getloli.com/

    Someone did this on Windows already so I just made it a KDE widget :)

    Split Clock

    I wanna see:

    • The time in Tokyo and London (where I live)
    • If it's daylight or not
    • Moon phase
    • If the sun and moon are visible at the same time

    So I vibe coded this!

    The moon is not visible in Tokyo rn

    Conclusion

    This is my current desktop!

    5000 words

    2026-03-25 15:27:24

    5000 words
    5000 words

    5000 words.

    I hit 4000 words 87 days ago.

    That's 11.49 mature words a day.

    Stats since 4k words:

    5000 words

    Stats

    10k average daily characters.

    2 hours of visual novels a day on average.

    5000 words
    5000 words

    Since I hit 4k words in December:

    800k chars read, 128 hours spent reading.

    5000 words

    I've averaged 1 hour a day of reading (work....) and reading an average of 9.1k chars a day.

    5000 words
    💡
    My reading speed went from 5k / hour to 6.4k / hour!

    I've come across 15.5k unique words, and 5.8k of those I had never seen before.

    In that time I read:

    • Limelight Lemonade Jam
    • Marco and the Galaxy Dragon
    • Summer Pockets Reflection Blue
    5000 words

    In terms of Anki:

    💡
    Not all my cards are in Anki, a few hundred are in Migaku Memory.
    5000 words
    5000 words
    5000 words
    5000 words
    5000 words
    💡
    I don't care about JLPT that much, only about reading. In theory I am definitely N3, maybe N2. Who knows. I don't care. I just know that reading visual novels is still difficult for me
    5000 words

    332 hours studying Japanese since 5k words.

    I've been doing Migaku Memory Japanese Course for like 3 months now for funsies.

    5000 words
    5000 words
    5000 words

    What I made

    Firstly for GameSentenceMiner I added these things:

    • Added tokenisation to GSM stats
    • Added per game stats
    • Added Anki stats

    For Yomitan:

    • Added popup blur when under frequency
    5000 words

    I also made an Anki addon that turns your mature words into a freq dict so you can combine both of them.

    For Manabitan, a fork of Yomitan I:

    • Added MDX support
    • Made it way faster with Anki dedupe
    • Added themes
    5000 words

    OpenAI awarded me free Codex for my contributions to the above,

    5000 words

    I also made Bee's Character Dictionary:

    Bee’s Character Dictionary
    Generate auto-updating character name dictionaries for Yomitan based on what you are currently playing/reading
    5000 words

    To make name dicts.

    And also Bee's Custom Dict Maker for easy plaintext Yomitan dicts:

    Bee’s Custom Yomitan Dict Maker
    Create and edit custom Yomitan dictionaries with plaintext.

    What my routine looks like:

    • Anki - Every morning. Usually 10 - 15 mins.
    • Migaku Memory - 5 to 10 mins
    • Visual Novels - between 1 and 6 hours a day, depends on how hard I work.

    Since December I now work at FAANG so I don't have much time to immerse anymore, still it is the most important thing to me.

    I currently do 10 new Anki cards a day, some number of Migaku cards if I can be bothered, and I just read a VN to finish it off.

    I don't watch anime all that much, maybe 6 hours total since December.

    As for manga, maybe 15 minutes...

    I just read visual novels :P

    My plan is to just continue this. I'm making progress, albeit slowly.

    Goals

    • Hit 6k words by August 2026
    • Read Kanon in the winter
    • Read Manosaba this year
    • Read STEINS;GATE this year

    Introducing Bee's Character Dictionary

    2026-02-27 23:58:15

    Bee’s Character Dictionary
    Generate auto-updating character name dictionaries for Yomitan based on what you play/watch/read
    Introducing Bee's Character Dictionary
    Introducing Bee's Character Dictionary

    Generate auto-updating character name dictionaries for Yomitan based on what you play/watch/read