Input Eastern Languages With Steam Deck
Prerequisite
Understanding of Unix Philosophy
- Make each program do one thing well.
- Expect the output of every program to become the input to another, as yet unknown, program.
Which turns out to the fact that
- the SteamOS keyboard doesn’t count for input frameworks.
- the input framework doesn’t care about where the input comes from.
- the applications don’t care about what input framework is chosen, as long as they are properly registered.
- the desktop cares no integration of input frameworks, they should care about integration to desktop on their own.
Steam Deck Shortcuts
- button
"X"calls out the SteamOS keyboard on Desktop mode. - The keyboard dropped to oppsite half of screen of where the cursor lies.
L2is mouse right click,R2is mouse left click.- Right pad is mouse moving, left pad is scrolling.
Flatpak Package required
Make good use of the “Search” function
- Open
Discover - Search for “
fcitx5”, install it - Install additional input methods
- Chewing for Taiwanese users
- Anthy or Mozc (suggested) for Japanese users
- Hangul for Korean users
Desktop Integration
- Move your cursor to the bottom panel
- Click
L2, choose “Add Widgets” - Search for “Input Method” with a pen on the icon
- Move your cursor on to it, and double click the right pad
Autostart Fcitx on Login to Desktop Mode
Copy .desktop from flatpak exported directory
- Open Dolphin
- Click on the
> Homeabove main area - It now turns into input area
- Go to
/home/.steamos/offload/var/lib/flatpak/exports/share/applications - Move your Cursor onto
org.fcitx.Fcitx5.desktop - Click
L2and select Copy - Edit the location again to
~/.config/autostart - Click
L2on empty area, select Paste
Or, one liner in Konsole
---
$ cp /home/.steamos/offload/var/lib/flatpak/exports/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/
Safeguard Fcitx over IBus
- Create a file:
~/.config/plasma-workspace/env/input.sh
---
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export XIM=fcitx
Demo
Technical Details
Side Notes
- The Fcitx5 flatpak has fcitx-qt input module plugin included.
- Even though the flatpak doesn’t have gtk immodule, it works under flatpak firefox anyway.
- Users got to used to the scenario to change the input method by cursor then change the keyboard layout by controller.
- Noted that
libchewingis developed for general keyboard, thus the candidate number selection is based on general keyboard, instead of indication of the Steam keyboard. - You can edit the preference of Chewing module to use
asdfghjkl;as selector instead.
Valve package details
-
interesting finding from
steamdeck-kde-presets:export MOZ_ENABLE_WAYLAND=1in/etc/profile.d/kde.sh- Input method modules are exported in
/etc/xdg/plasma-workspace/env/ibus.sh, thus we kept our own in~/.config/plasma-workspace, the coresponded per-user configuration directory, as shown in above tutorial. - The Deck UI is running under Wayland, while plasma is traditional X11, check
/usr/share/xsessionsand/usr/share/wayland-sessions
-
Some other customizations found
- Valve choose to use
dracutinstead of default initial ramfs generatormkinitcpioused in regular Arch Linux. - Judging by the cursor shown during transition, it is obvious that the Deck UI and desktop are orthogonal.
- The display manager used is SDDM.
glibcis broken, you cannot generate locales even after unlock read-only mode.
- Valve choose to use
-
Noted that throughout this tutorial, we didn’t disable the said readonly status quo.