- linuxに関する基本的な知識があるソフトウェアエンジニアもしくはヘビーユーザで、Quest 3のlinuxをGUI環境で使いたい人
- apkのインストールとか説明しませんが、Quest 3に入れたやつは、アプリ一覧からカテゴリでUntrusted Sourcesみたいなのを選ぶと出てきます
- termuxの上にlinux distroを載せるのは、遅いのでやりません。prefixed-rootだろうがシングルユーザだろうがmusl libcだろうが我々なら大丈夫だ!
- https://github.com/LinuxDroidMaster/Termux-Desktops
- https://github.com/sabamdarif/termux-desktop
- FDroid から最新の termux app & termux api を取ってきて入れる
- Termux-x11のレポのActionsから、Build Artifactで最新のtermux-x11.apkを探して入れる
- Termux起動して
$ termux-change-repo
$ pkg upgrade
$ pkg install termux-tools x11-repo root-repo tur-repo termux-api
$ pkg install termux-x11-nightly xfce4
$ termux-x11 :1 -xstartup xfce4-session
- AndroidのPhantom Process Killerを止めとかないと、X内でプロセスぱかぱか立ててTermux丸ごと死にます。なので下記を実行
termux から adb を使うには sidequest とか入れればできる
% pkg install android-tools
$ adb devices
$ adb shell "/system/bin/device_config set_sync_disabled_for_tests persistent"
$ adb shell "/system/bin/device_config put activity_manager max_phantom_processes 2147483647"
$ adb shell settings put global settings_enable_monitor_phantom_procs false
出典
- https://github.com/Termux-Monet/termux-monet?tab=readme-ov-file#phantom-process-killer
- https://github.com/atamshkai/Phantom-Process-Killer
- アプリをTermux-x11に切り替えるとXが起動してるはず
mozcはビルド環境作るのが大変そう(bazelを構築するのが死ぬほど面倒)なのでanthy。
まず fcitx5 入れて、
% pkg install fcitx5 fcitx5-configtool fcitx5-gtk2 fcitx5-gtk3 fcitx5-gtk4 fcitx5-qt
pkg install git libtool wget autoconf build-essential make binutils-is-llvm
git clone https://github.com/fujiwarat/anthy-unicode.git
cd anthy-unicode
wget https://gist.githubusercontent.com/kazuho/453311b4fba9b4c987a7edc7fe0ae7e4/raw/e7a8bd967116acbb51fd8b38528c8c22dedb2857/anthy-unicode.termux.patch
git apply anthy-unicode.termux.patch
autoreconf --install
./configure --prefix=$PREFIX && make && make install
fcitx5-anthyはパッチあてる必要なくて
pkg install extra-cmake-modules gettext
git clone https://github.com/fcitx/fcitx5-anthy.git
cd fcitx5-anthy
cmake -DCMAKE_INSTALL_PREFIX=$PREFIX && make && make install
で、 fcitx5
をコマンドラインから起動すると、/anthy.dic
がないっていう。これは anthy-unicode.conf
を違うところに探しにいってるからなので
% ln -s $PREFIX/etc/anthy-unicode.conf $PREFIX/share/anthy-unicode
$ ln -s $PREFIX/share/anthy-unicode $PREFIX/share/anthy
して、fcitx5 コマンドラインから再実行してうまくいくこと確認。うまくいかないなら strace fcitx5 2>&1 | grep unicode.conf
とかして、どこに何を探しにいってるか確認するとよい。
xfce4 起動時に dbus が必要なので
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export INPUT_METHOD=fcitx
export SDL_IM_MODULE=fcitx
export GLFW_IM_MODULE=ibus
dbus-run-session termux-x11 :1 -xstartup xfce4-session
fctix 5 configuration アプリで IME に anthy を追加
termux-x11 で ctrl-space を使えるようにする方法 termux/termux-x11#665 (comment) 一秒くらい押しっぱなしにしないとといけない
代わりに shift-space を使ってる
とりあえずこれで日本語入力はできた 変換候補が表示されなかったりするが
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export INPUT_METHOD=fcitx
export SDL_IM_MODULE=fcitx
export GLFW_IM_MODULE=ibus
pulseaudio --start --verbose &
export PULSE_SERVER=$PREFIX/tmp/pulseserver
export MESA_NO_ERROR=1 MESA_GL_VERSION_OVERRIDE=4.3COMPAT MESA_GLES_VERSION_OVERRIDE=3.2 LIBGL_DRI3_DISABLE=1
virgl_test_server_android &
trap 'kill $(jobs -p) 2>/dev/null' EXIT
sleep 1
export XDG_RUNTIME_DIR=${TMPDIR}
export DISPLAY=:0
export XDG_CONFIG_DIRS=/data/data/com.termux/files/usr/etc/xdg
export VK_ICD_FILENAMES=/data/data/com.termux/files/usr/share/vulkan/icd.d/wrapper_icd.aarch64.json
export MESA_SHADER_CACHE=512MB
export MESA_SHADER_CACHE_DISABLE=false
export vblank_mode=0
export GALLIUM_DRIVER=virpipe
termux-x11 :0 -xstartup "dbus-launch --exit-with-session xfce4-session"
まず
% pkg install vim pulseaudio pavucontrol espeak sox
後2者はテスト用。
次に vim $PREFIX/etc/pulse/default.pa
を開いて unix socket の設定を
load-module module-native-protocol-unix socket=/data/data/com.termux/files/usr/tmp/pulseserver auth-anonymous=1
load-module module-sles-source
に変更。
mkdir -p $PREFIX/etc/pulse/default.pa.d
vim $PREFIX/etc/pulse/daemon.conf
の exit-idle-time
をアンコメントし -1
に設定。
そしてTermuxで
% pulseaudio --start &
% espeak -w /dev/stdout 'hell world' | PULSE_SERVER=$PREFIX/tmp/pulseserver play -
$ pulseaudio --kill
x てやって、サウンドが聞こえるか確認。
聞こえるなら、Xを起動する前に
% pulseaudio --start &
& export PULSE_SERVER=$PREFIX/tmp/pulseserver
が実行されるよう設定し、X再起動。 (export PULSE_SERVER=$PREFIX/tmp/pulseserver
is not required)
ここで、termuxをフロントで実行したままtermux-x11に切り替えるとX側でも音がなるはず。
check sound sources & sinks
pacmd list-sources
pacmd list-sinks
termux.api のマイクアクセスを quest の設定アプリで許可する必要る
termux-api は quest3 のマイクをうまく扱えないらしく、 pulseaudio で入力デバイスは認識するが無音になる。 termux 単体で termux-microphone-record が無音になる。
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export INPUT_METHOD=fcitx
export SDL_IM_MODULE=fcitx
export GLFW_IM_MODULE=ibus
pulseaudio --start &
export PULSE_SERVER=$PREFIX/tmp/pulseserver
#dbus-run-session termux-x11 :1 -xstartup xfce4-session
termux-x11 :0 -xstartup "dbus-launch --exit-with-session xfce4-session"
$ pkg install firefoz
firefox でマウスのwheel click でpaste発動させない方法 https://forum.figma.com/archive-21/release-of-middle-mouse-button-paste-text-from-clipboard-33508
https://hone-choko.com/blogs/t/android-linux-2
$ pkg install openssh
# OpenSSHサーバーの起動
$ sshd
# IP確認
$ pkg install iproute2
$ ip -4 a
## inet 192.168.1.x/24 という表記の192.168.1.xの部分がIPになります
# ユーザー名確認
$ id
## uid=xxxxx(u0_axxxxx) という表記のu0_axxxxxがユーザー名になります
# パスワード設定 これでパスワードを設定します、適当なパスワードを設定してください
$ passwd
ssh [email protected] -p 8022
shortcuts