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.
L2
is mouse right click,R2
is 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
> Home
above 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
L2
and select Copy - Edit the location again to
~/.config/autostart
- Click
L2
on 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
libchewing
is 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=1
in/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/xsessions
and/usr/share/wayland-sessions
-
Some other customizations found
- Valve choose to use
dracut
instead of default initial ramfs generatormkinitcpio
used 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.
glibc
is 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.