BrainuxとX環境への接続について
Brainuxには、標準でX環境(X11[X window system])が利用できます。
X環境(X11[X Window system])の1つの特徴として、アプリケーションと表示するシステムが独立していて、アプリケーションを動かすサーバと、画面描画するサーバが別でも構わないことです。
X11はクライアント/サーバモデルで提供しているのですが、
あくまで画面描写が主体となっているため、一般的な認識とは逆になります。
・ここでの「クライアント」は、GUIを表示するプログラム(Xアプリケーション)になります。
・ここでの「サーバー」は、クライアント(Xアプリケーション)からの要求を受け付けて、画面に表示する内容を管理するプログラム(X11[X window system])になります。
Brainの画面でX11アプリケーションを利用するには、いくつかのパターンがあります。
- Brainを直接操作して、Brain上でXアプリケーションを起動し、Brainの画面で操作する
- Brainから他PCにsshでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する
- 他PCからsshでBrainにログインして、Brain上でXアプリケーションを起動し、Brainの画面で操作する
- 他PCでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する
| 1 | 起動操作 | Xアプリケーション実行 | Xアプリ表示(操作) |
| 1.Brainを直接操作して、Brain上でXアプリケーションを起動し、Brainの画面で操作する | Brain | Brain | Brain |
| 2.Brainから他PCにsshでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する | Brain->他PC | 他PC | Brain |
| 3.他PCからsshでBrainにログインして、Brain上でXアプリケーションを起動し、Brainの画面で操作する | 他PC->Brain | Brain | Brain |
| 4.他PCでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する | 他PC | 他PC | Brain |
ここでは、以下を想定して、それぞれの方法での接続例を紹介します。
brain(IP:192.168.29.11) Brainux環境
他PC(IP:192.168.29.19) X11環境を持ったLinuxを想定
今回の環境的には、USBホストアダプタを使って、USBネットワークアダプタ経由でネットワークに接続しています。
(USBでホストPCを経由してネットワークに接続する(USB Ethernet Gadget)だと、他PCからBrainへの通信について制限が出てくるので、ホストPCがX11導入したLinuxであればいけるかもといったところ)
1.Brainを直接操作して、Brain上でXアプリケーションを起動し、Brainの画面で操作する
| 起動操作 | Xアプリケーション実行 | Xアプリ表示(操作) |
| Brain | Brain | Brain |
これがBrainuxでの一般的な操作になります。
Brain上でBrainuxを起動する際には、「xinitrc」か「jvm」を選択して起動すれば、X環境が立ち上がります。
あとは、terminalを起動し、Xアプリケーションを起動してください。
DISPLAY環境変数にはすでに:0は設定されているので、明示的に設定する必要はありません。(xeyesは、マウスカーソルの方向を向く目玉のアプリケーションです。)
xeyes &
|
1 2 3 4 |
user@brain:~$ printenv DISPLAY :0 user@brain:~$ xeyes & [1] 1714 |

その他デフォルトで、x11-appsというパッケージが導入されているようです。
xeyes(目玉アプリ)以外にも、oclock(アナログ時計),xclock(アナログ時計),calc(電卓)、xedit(エディタ)、xmore(ビューア)あたりは普通に使えると思います。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
x11-apps - ビットマップ画像を操作するツール atobm, bitmap および bmtoa - 多面体を動画表示するデモプログラム ico - グラフィカルな時計 oclock および xclock - render拡張の実装を検査するプログラム rendercheck - ウィンドウの不透明度属性を設定するツール transset - 新着メールを通知するツール xbiff - 関数電卓デスクトップアクセサリ xcalc - カットアンドペーストしたテキスト選択部分の管理ツール xclipboard - システムコンソールメッセージを監視する xconsole - PNG から X のカーソルファイルを作成するツール xcursorgen - ditroff 出力用ビューア xditview - X 用のシンプルなテキストエディタ xedit - 二つの目がポインタを追いかけるデモプログラム xeyes - グラフィックデモ xgc - システム平均負荷モニタ xload - X のロゴを表示するデモプログラム xlogo - X 画面の一部を拡大する xmag - マニュアルページブラウザ xman - テキストページャ xmore - X セッションのウィンドウダンプ ("スクリーンショット") を取る ユーティリティ xwd - xwd によって作成されたウィンドウダンプのビューア xwud - X Window System 上でのグラフィック性能をベンチマークするツール x11perf および x11perfcomp (Xmarkは入っていないようです) |
2.Brainから他PCにsshでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する
| 起動操作 | Xアプリケーション実行 | Xアプリ表示(操作) |
| Brain->他PC | 他PC | Brain |
Brainから、他PCにSSHログインして起動したXアプリケーションを、Brainの画面に出す方法です。
Terminalを立ち上げて、sshでログインする際に、-X オプションを設定することで、アクセス元のX環境に画面表示のリダイレクトをしてくれます。(DISPLAY環境変数は自動設定されます。)
ssh -X user@192.168.29.19
xeyes &
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
user@brain:~$ ssh -X user@192.168.29.19 user@192.168.29.19's password: Welcome to Linuxfx 11.2 22.04.6 LTS (GNU/Linux 5.15.0-67-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage * Introducing Expanded Security Maintenance for Applications. Receive updates to over 25,000 software packages with your Ubuntu Pro subscription. Free for personal use. https://ubuntu.com/pro Last login: Sat Nov 8 17:21:53 2025 from 192.168.29.11 nasubi@nasubi-vmwarevirtualplatform:~$ printenv DISPLAY localhost:10.0 nasubi@nasubi-vmwarevirtualplatform:~$ xeyes & [1] 11904 |
3.PCからsshでBrainにログインして、Brain上でXアプリケーションを起動し、Brainの画面で操作する
| 起動操作 | Xアプリケーション実行 | Xアプリ表示(操作) |
| 他PC->Brain | Brain | Brain |
他PCからsshでBrainにログインして、Brain上でXアプリケーションを起動する方法です。
他PCはWindows上でもputty等でのsshアクセスでもかまいません。問題ありません。
Brainのキーボードで直接入力すると、特殊なキーバインドの違いや反応の悪さなどで、他PCでアプリの起動をする場合等に使用できます(デバック向けかな)。
以下の通り、画面表示先を指定する、DISPLAY環境変数を手動で設定すればOKです。
export DISPLAY=:0
xeyes &
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
user@pc1:~$ ssh user@192.168.29.11 login as: user user@192.168.29.11's password: Linux brain 5.4.149-gaa3edcd5fcbc #2 PREEMPT Mon Dec 23 11:34:55 UTC 2024 armv5tejl ____ _ | _ \ (_) | |_) |_ __ __ _ _ _ __ _ ___ __ | _ <| '__/ _` | | '_ \| | | \ \/ / | |_) | | | (_| | | | | | |_| |> < |____/|_| \__,_|_|_| |_|\__,_/_/\_\ by Brain Hackers https://github.com/brain-hackers Last login: Sun Nov 9 15:00:04 2025 from 192.168.29.19 user@brain:~$ printenv DISPLAY user@brain:~$ export DISPLAY=:0 user@brain:~$ printenv DISPLAY :0 user@brain:~$ xeyes & [1] 1770 |
4.他PCでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する
| 起動操作 | Xアプリケーション実行 | Xアプリ表示(操作) |
| 他PC | 他PC | Brain |
これは、Xアプリケーションの実行ウィンドウのみを、Braiに表示させるものです。
ただし、Brain上で、X11側で、Xアプリケーションからの接続を許可させる必要があるため、通常と違う手順が必要です。
接続許可は、xhosts というコマンドを利用します。
ただし、Brainux標準では、xhostは導入されていないようです。
|
1 2 |
user@brain:~$ xhost bash: xhost: command not found |
まずは、BrainにXアプリケーションからの接続を許可すためのコマンド(xhost)を導入します。
(一度導入すれば、大丈夫です。)
sudo apt update
sudo apt show x11-xserver-utils
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
user@brain:~$ sudo apt update Hit:1 http://archive.debian.org/debian bullseye InRelease Hit:2 https://packagecloud.io/brainhackers/brainux/any any InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done 1 package can be upgraded. Run 'apt list --upgradable' to see it. user@brain:~$ sudo apt show x11-xserver-utils Package: x11-xserver-utils Version: 7.7+8 Priority: optional Section: x11 Maintainer: Debian X Strike Force <debian-x@lists.debian.org> Installed-Size: 476 kB Depends: libc6 (>= 2.26), libice6 (>= 1:1.0.0), libx11-6, libxaw7, libxcursor1 (>> 1.1.2), libxext6, libxi6, libxmu6, libxmuu1, libxrandr2 (>= 2:1.5.0), libxrender1, libxt6, libxxf86vm1, cpp Suggests: nickle, cairo-5c, xorg-docs-core Conflicts: iceauth, sessreg, xgamma, xhost, xmodmap, xrandr, xrdb, xrefresh, xrgb, xset, xsetmode, xsetpointer, xsetroot, xstdcmap, xvidtune Breaks: arandr (<< 0.1.9) Replaces: iceauth, sessreg, xbase-clients (<< 1:7.3), xgamma, xhost, xmodmap, xrandr, xrdb, xrefresh, xrgb, xset, xsetmode, xsetpointer, xsetroot, xstdcmap, xutils (<< 1:7.2), xvidtune Tag: implemented-in::c, interface::commandline, role::program, uitoolkit::TODO, x11::xserver Download-Size: 158 kB APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages Description: X server utilities An X client is a program that interfaces with an X server (almost always via the X libraries), and thus with some input and output hardware like a graphics card, monitor, keyboard, and pointing device (such as a mouse). . This package provides a miscellaneous assortment of X Server utilities that ship with the X Window System, including: - iceauth, a tool for manipulating ICE protocol authorization records; - rgb; - sessreg, a simple program for managing utmp/wtmp entries; - xcmsdb, a device color characteristic utility for the X Color Management System; - xgamma, a tool for querying and setting a monitor's gamma correction; - xhost, a very dangerous program that you should never use; - xmodmap, a utility for modifying keymaps and pointer button mappings in X; - xrandr, a command-line interface to the RandR extension; - xrdb, a tool to manage the X server resource database; - xrefresh, a tool that forces a redraw of the X screen; - xset, a tool for setting miscellaneous X server parameters; - xsetmode and xsetpointer, tools for handling X Input devices; - xsetroot, a tool for tailoring the appearance of the root window; - xstdcmap, a utility to selectively define standard colormap properties; - xvidtune, a tool for customizing X server modelines for your monitor. user@brain:~$ sudo apt install x11-xserver-utils Reading package lists... Done Building dependency tree... Done Reading state information... Done Suggested packages: nickle cairo-5c xorg-docs-core The following NEW packages will be installed: x11-xserver-utils 0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded. Need to get 158 kB of archives. After this operation, 476 kB of additional disk space will be used. Get:1 http://archive.debian.org/debian bullseye/main armel x11-xserver-utils armel 7.7+8 [158 kB] Fetched 158 kB in 1s (127 kB/s) Selecting previously unselected package x11-xserver-utils. (Reading database ... 44310 files and directories currently installed.) Preparing to unpack .../x11-xserver-utils_7.7+8_armel.deb ... Unpacking x11-xserver-utils (7.7+8) ... Setting up x11-xserver-utils (7.7+8) ... Processing triggers for man-db (2.9.4-2) ... user@brain:~$ xhost access control enabled, only authorizaed clients cat connect |
次に、BrainでBrainuxを起動する際に、「shell」で起動してください。
(そのまま「xinitrc」か「jvm」で起動してしまうと、X接続用のポート(:0の場合6000)が閉じているため接続できません。)
shellが起動したら、以下のコマンドでXを起動します。
|
1 |
user@brain:~$ stratx -- -listen tcp |
Brain上でXが起動したら、terminalを起動して、アクセス許可を設定します(X起動毎に設定が必要です。)
(今回は、”192.168.29.19″からのアクセスを許可するものとします。)
xhost +192.168.29.19
(なお「xhost +」とすると、すべての接続を許可する設定になってしまいます。セキュリティ的には非推奨になります。)
+はBrainのキーボードでは、「シフト+記号+F」ですが、入力がしずらい場合があります。
|
1 2 3 4 5 6 7 8 9 10 11 |
user@brain:~$ xhost access control enabled, only authorizaed clients cat connect SI:localuser:user user@brain:~$ xhost +192.168.29.19 192.168.29.19 being added to access contol list user@brain:~$ xhost access control enabled, only authorizaed clients cat connect INET:192.168.29.19 SI:localuser:user |
ここまで終われば、他PC(Linux)でTerminalを立ち上げて、
DISPLAY環境変数を上書き設定します。
(BraiのIPは192.168.29.11とした場合)
export DISPLAY=192.168.29.11:0
xeyes &
|
1 2 3 4 5 6 7 8 9 |
user@pc1:~$ printenv DISPLAY :0 user@pc1:~$ export DISPLAY=192.168.29.11:0 user@pc1:~$ printenv DISPLAY 192.168.29.11:0 user@pc1:~$ xeyes & |
X環境への接続についての補足
上記の接続の組合せでも、X環境を利用することができます。
例えば、3の後に2をやることで、疑似的に4の接続にすることも可能です。
(4.の特殊なXnの立ち上げや設定が不要)
| 起動操作 | Xアプリケーション実行 | Xアプリ表示(操作) |
| 他PC->Brain->他PC | 他PC | Brain |
2.Brainから他PCにsshでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する
4.他PCでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する
ssh user@192.168.29.11
export DISPLAY=:0
ssh -X nasubi@192.168.29.19
xeyes &
|
1 2 3 4 5 6 |
user@pc1:~$ ssh user@192.168.29.11 user@brain:~$ export DISPLAY=:0 user@brain:~$ ssh -X nasubi@192.168.29.19 user@pc1:~$ xeyes & |
実際にやってみると、他PC上でXアプリケーションを起動する以下の方法では、
速度的にも問題なくアプリケーションを利用することができます。
これらは、俗にいう「シンクライアント」運用になります。
別PCに処理をさせて、結果のみBrainに表示させ、
BrainにUSBキーボードとマウスを付ければ、ハンドヘルドPCの出来上がりです。
また、これまでの説明の中のサーバ指定を逆にすれば、別サーバのX画面に、Braiux上で起動したアプリケーションを表示することもできますが、ここでは割愛します。
難点をいれば、現状Sound再生はされないといったところぐらいでしょうか・・・
xterm の設定変更について(Xリソースファイルの管理)
lxterminaiは 40MB程度と結構メモリを消費するので、
メモリ消費量が比較的少ない(8MB)ターミナルとして
xtermも使えるようにしておきます。
ただxtermのデフォルトでは、白地に黒文字で目が痛いので
黒地に白文字に変更するためには、
xtermの設定変更として、Xのリソースファイルに追記します。
Xのリソースファイルは、アプリごとに以下のフォルダにまとめられています。
/etc/X11/app-default/
xtermの場合、/etc/X11/app-default/XTerm に追記します。
黒地に白文字に変更するには、ファイルの最後に、以下の行を追加します。
$ sudo vi /etc/X11/app-default/XTerm
xterm*reverseVideo:on
なお、ユーザ単位での設定では一般的に
~/.Xresourcesに追加するように書かれている資料もありますが、
Brainuxでは、このファイルを参照する様にはなっていないので、
もしユーザ単位でリソースファイルを切り替えたいのであれば、
~/.xprofileに、以下のような行を追加してみてください。
起動時に、~/.Xresourcesが読み込みされるようになります。
$ vi ~/.Xresources
xtermreverseVideo:on
x-terminal-emulatorreverseVideo:on
$ vi ~/.xprofile
xrdb -merge ~/.Xresources
JWMのメニューにアプリケーション(xterm)に追加する
現状JWMのメニューには、Terminal(lxterminal)しかアプリが登録されていないので、
xtermを追加してみます。
調べてみると、JWMのコンフィグは、以下にありました。
/etc/jwm/system.jwmrc
なお、ユーザごとにカスタマイズしたいのであれば、
先ほどのファイルを、~/.jwmrcにコピーすれば、これらの設定が優先的に使われます。
/etc/jwm/system.jwmrcファイルの先頭部分を確認してみると、
以下のようになっていました。
<?xml version=”1.0″?>
<JWM>
<!– The root menu. –>
<RootMenu onroot=”12″> <Include>/etc/jwm/debian-menu</Include>
<Program icon=”terminal.png” label=”Terminal”>lxterminal</Program>
<Separator/>
<Program icon=”lock.png” label=”Lock”> xlock -mode blank </Program>
<Separator/>
<Restart label=”Restart” icon=”restart.png”/>
<Exit label=”Exit” confirm=”true” icon=”quit.png”/>
</RootMenu>
ここで、メニューに、xtermの定義を追加してみます。
ついでに、Includeの行の下に<Separator/>も追加しています。
<Program label=”xterm”>xterm</Program>
$ sudo vi /etc/jwm/system.jwmrc
<Include>/etc/jwm/debian-menu</Include>
<Program icon=”terminal.png” label=”Terminal”>lxterminal</Program>
<Separator/>
↓
<Include>/etc/jwm/debian-menu</Include>
<Separator/>
<Program icon=”terminal.png” label=”Terminal”>lxterminal</Program>
<Program label=”xterm”>xterm</Program>
<Separator/>
設定に間違いがないか、以下のコマンドでチェックします。
jwm -p
最初は /etc/jwm/debian-menu ファイルがないため、そこは失敗しますが、
今回はその分はエラーでOKです。それ以外にエラーが出ないことを確認します。
では以下のコマンドで、設定をリロードします。
jwm -reload
すると、xtermが追加されました。

xtermをクリックすると、、定義したxtermが起動しました。
OSに登録されたアプリケーションをJWMに表示する
BrainuxはDebian11ベースのOSですので、DebianにAptコマンドでアプリをインストールすると、以下のフォルダにアプリケーション登録ファイル(*.desktop)が登録されています。
/usr/share/applications
この登録ファイルを元に自動でJWMの設定ファイルに変換してくれるツールを導入します
xdgmenumaker
$ cd
$ mkdir xdgmenumaker
$ cd xdgmenumaker
$ git clone https://github.com/gapan/xdgmenumaker.git
$ cd xdgmenumaker/
$ sudo apt install txt2tags
$ make
$ pip install pyxdg
$ make install
$ sudo touch /etc/jwm/debian-menu
$ sudo chmod 666 /etc/jwm/debian-menu
$ xdgmenumaker -n -i -f jwm > /etc/jwm/debian-menu
これで、以下のコマンドで、設定をリロードします。
jwm -reload
すると、apt経由でインストールしたアプリケーションの分のメニューが追加されました。

ただ、この状態だとaptでアプリを追加しても自動でメニューへの反映がされません。
JWM起動時に自動的に反映させてもいいのですが、起動してからJWMが操作できるまでにかなり時間がかかるため、「メニューの反映」をreload menuとして登録して、手動で登録できるようにします(アイコンが不要であれば-iオプションを消すとMenu動作が軽くなります)。
$ sudo vi /etc/jwm/reloadjwmmenu
#!/bin/sh
xdgmenumaker -n -i -f jwm > /etc/jwm/debian-menu
jwm -reload
exit
$ sudo chmod 755 /etc/reloadjwmmenu
作成したスクリプトをsystem.jwmrcに登録します。
<Program label=”ReloadMenu”>sh /etc/jwm/reloadjwmmenu</Program>
ついでに、VirtualKeybordも追加しておきました。
これで「.profile」で自動起動しなくてもよくなります。
<Program label=”VirtualKeybord”>xvkbd</Program>
$ sudo vi /etc/jwm/system.jwmrc
<!– The root menu. –>
<RootMenu onroot=”12″>
<Include>/etc/jwm/debian-menu</Include>
<Separator/>
<Program icon=”terminal.png” label=”Terminal”>lxterminal</Program>
<Program label=”Xterm”>xterm</Program>
<Program label=”VirtualKeybord”>xvkbd</Program>
<Separator/>
<Program icon=”lock.png” label=”Lock”>
xlock -mode blank
</Program>
<Separator/>
<Program label=”ReloadMenu”>sh /etc/jwm/reloadjwmmenu</Program>
<Restart label=”Restart” icon=”restart.png”/>
<Exit label=”Exit” confirm=”true” icon=”quit.png”/>
</RootMenu>
これで、ReloadMenuをクリックすれば、メニューの反映が行われます。

なお、標準ではxlockが入っていないので、不要であれば、Lockの行は消してください。
多分もっといい方法がありそうだけど、とりあえず動いたということで良しとします。
今は、Lockの行の代わりに、以下のように「OS Reboot」を設定すると、
JWMから再起動できるようにしています。
$ sudo vi /etc/jwm/system.jwmrc
<!– The root menu. –>
<RootMenu onroot=”12″>
<Include>/etc/jwm/debian-menu</Include>
<Separator/>
<Program icon=”terminal.png” label=”Terminal”>lxterminal</Program>
<Program label=”Xterm”>xterm</Program>
<Program label=”VirtualKeybord”>xvkbd</Program>
<Separator/>
<Program label=”OS Reboot”>
/usr/bin/x-terminal-emulator -e sh -c ‘echo run Reboot;sudo reboot’
</Program>
<Separator/>
<Program label=”JWM ReloadMenu”>sh /etc/jwm/reloadjwmmenu</Program>
<Restart label=”JWM Restart” icon=”restart.png”/>
<Exit label=”Exit” confirm=”true” icon=”quit.png”/>
</RootMenu>
X11画面のスクリーンショットを撮る方法
X11画面のスクリーンショットは、「scrot」コマンドで取得できるようです。
scrotは、以下のコマンドでインストールできます。
sudo apt install scrot
コマンドオプションでいろいろ取得方法をカスタマイズできるようです。
scrot 画面全体のスクリーンショットを撮ります。
scrot -ub タイトルバー+アクティブウインドウのスクリーンショットを撮ります。
scrot -sb カーソルの形が+に変わるので、
その後ウインドウをクリックすると、タイトルバー+クリックしたウインドウ
のスクリーンショットを撮ります。(ウインドウ範囲外だと全画面)
左クリック長押しで範囲指定すると、その範囲のスクリーンショット
を撮ります。
また、scrot -d 10 のように、-dで秒数を指定すると、10秒後に取得されます。
スクリーンショット取得先は、、
指定がなければ、カレントディレクトリに
「2025-12-18-204617_854x480_scrot.png」といった名前で保存されます。
出力先を指定する場合は、以下のようにしてみてください。
scrot ‘scrot_%Y%m%d-%H%M%S_$wx$h.png’ -e ‘mv $f ~/screenshot/’
これで~/screenshot/に「scrot_20251218-212923_854x480.png」のような名前で保存されます。
また、リモートPCからssh -X(Xリダイレクトオプション付)でログインしている場合、
リモート側でscrot コマンドを実行して、遠隔実行することも可能です。
ssh -Xでログインしていない場合は -D :0 のようにBrain側のDiskplay番号を追加でOKです。
これでスクリーンショットが取れるようになりましたが、毎回コマンドを打つのも面倒です。
今回は、JWMのキーバインド設定をして、USBキーボードの”PrtSc(PrintScreen)”キーでスクリーンショットが取得できるように設定してみます。
(参考:JWM設定)(参考:JWMConfig)
sudo vi /etc/jwm/system.jwmrc
ファイルの最後のほうに、キーバインド設定がありますので、ここの最後に追記します
(mask設定は、Shift=”S”,Ctrl=”C”,ALT=”A”が対応します。ただSAとしたときにALTの認識に不具合出る場合もあるそうなのでこの辺は調整が必要かもしれません。)
<Key key=”Print”>exec:scrot ‘scrot_%Y%m%d-%H%M%S_$wx$h.png’ -e ‘mv $f ~/screenshot/'</Key>
<Key mask=”A” key=”Print”>exec:scrot -ub ‘scrot_%Y%m%d-%H%M%S_$wx$h.png’ -e ‘mv $f ~/screenshot/'</Key>
<Key mask=”CA” key=”Print”>exec:scrot -sb ‘scrot_%Y%m%d-%H%M%S_$wx$h.png’ -e ‘mv $f ~/screenshot/'</Key>

これで、以下のようなキーバインドになります。
(ただし、jwmのメニュー表示中は、このキーバインドは聞かないようです。)
・PrintScreen で全画面のスクリーンショット
・ALT+PrintScreen でアクティブウインドウのスクリーンショット
・Ctrl+ALT+PrintScreen でウィンドウ選択 or 範囲指定のスクリーンショット
もし、Brainのキーボードでスクリーンショットを撮りたいのなら、
キー指定を <Key mask=”CA” key=”s”> とかにすればCtrl+ALT+”s”がキーバインドになります。(“exec:xdotool key ctrl+alt+Print”に割当でキー入力のエミュレートでもいけます)[参考]
JWMのコンフィグファイルを変更したら、jwm -pで構成チェックをした後で、
JWMメニューのRestartをクリックするか、jwm -restart コマンドを実行で設定が反映されます。
あと今回気づいたのですが、JWMのキーバインド使えば
タッチパネルでの右クリック対応はxbindkeys使わなくてもいけますね
これで500kbぐらいメモリ消費量を削減できます。
/etc/jwm/system.jwmrc 追加&JWMリスタート
<Key mask=”CA” key=”z”>exec:xdotool click 3</Key>
~/.xprofile 一部コメント化
# bash xbind_keys_autostart
/etc/jwm/system.jwmrc 例

BrainuxでのSound再生について
標準の環境では、Brainuxではサウンドデバイスを認識していないため、Sound再生されません。
Brain に内蔵されているスマートアンプには大きく分けて Yamaha 系と Rohm 系があるとのことで、現状Brainux上でのSound再生は、現状解析中で非対応だそうです。
試しにUSBサウンドデバイスを付けてみたところ、OSとしては認識しました。
Bus 001 Device 004: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter
ターミナル上でのコマンド上では使用できましたが、一部ノイズが乗ります。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
user@brain:~$ sudo lsusb Bus 001 Device 003: ID 0b95:772b ASIX Electronics Corp. AX88772B Bus 001 Device 004: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub user@brain:~$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 user@brain:~$ aplay -L null Discard all samples (playback) or generate zero samples (capture) default Default Audio Device sysdefault Default Audio Device hw:CARD=Set,DEV=0 C-Media USB Headphone Set, USB Audio Direct hardware device without any conversions plughw:CARD=Set,DEV=0 C-Media USB Headphone Set, USB Audio Hardware device with all software conversions default:CARD=Set C-Media USB Headphone Set, USB Audio Default Audio Device sysdefault:CARD=Set C-Media USB Headphone Set, USB Audio Default Audio Device front:CARD=Set,DEV=0 C-Media USB Headphone Set, USB Audio Front output / input surround21:CARD=Set,DEV=0 C-Media USB Headphone Set, USB Audio 2.1 Surround output to Front and Subwoofer speakers surround40:CARD=Set,DEV=0 C-Media USB Headphone Set, USB Audio 4.0 Surround output to Front and Rear speakers surround41:CARD=Set,DEV=0 C-Media USB Headphone Set, USB Audio 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=Set,DEV=0 C-Media USB Headphone Set, USB Audio 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=Set,DEV=0 C-Media USB Headphone Set, USB Audio 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=Set,DEV=0 C-Media USB Headphone Set, USB Audio 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=Set,DEV=0 C-Media USB Headphone Set, USB Audio IEC958 (S/PDIF) Digital Audio Output dmix:CARD=Set,DEV=0 C-Media USB Headphone Set, USB Audio Direct sample mixing device user@brain:~$ amixer -c0 Simple mixer control 'Headphone',0 Capabilities: pvolume pswitch pswitch-joined Playback channels: Front Left - Front Right Limits: Playback 0 - 151 Mono: Front Left: Playback 44 [29%] [-20.13dB] [on] Front Right: Playback 44 [29%] [-20.13dB] [on] Simple mixer control 'Mic',0 Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined Playback channels: Mono Capture channels: Mono Limits: Playback 0 - 32 Capture 0 - 16 Mono: Playback 23 [72%] [34.36dB] [off] Capture 0 [0%] [0.00dB] [on] Simple mixer control 'Auto Gain Control',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] user@brain:~$ speaker-test -t sine -c 2 -f 220 speaker-test 1.2.4 Playback device is default Stream parameters are 48000Hz, S16_LE, 2 channels Sine wave rate is 220.0000Hz Rate set to 48000Hz (requested 48000Hz) Buffer size range from 2048 to 16384 Period size range from 1024 to 1024 Using max buffer size 16384 Periods = 4 was set period_size = 1024 was set buffer_size = 16384 0 - Front Left 1 - Front Right ^CTime per period = 4.344596 user@brain:~$ user@brain:~$ aplay sample.wav |
ALSAを使っているaplayではノイズが出るにせよ音が鳴るし、
amixerや、alsamixerも動いています。
なお、plusaudioは初期未導入っぽいので、この辺が影響してそうです。
この辺もう少しし調べたいのですが、正直勉強不足です。
まあ、USBサウンドデバイスつけないといけないから、おま環ではあります。
この辺が参考になるのだろうか?
Linux の Audio 機能をコマンドラインで設定
X11 Forwarding で音声を再生する
音楽・動画再生は?
音楽・動画再生としては、mplayer や smplayerが apt経由でインストール可能です。
・mplayer コマンドラインの音楽・動画再生プレイヤーです。
・smplayer mplayerのラッパーで、GUI操作インターフェイスを提供します。
sudo apt update
sudo apt install mplayer
sudo apt install smplayer
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
user@brain:~$ sudo apt show mplayer [sudo] password for user: Package: mplayer Version: 2:1.4+ds1-1+deb11u1 Priority: optional Section: video Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org> Installed-Size: 4,301 kB Depends: liba52-0.7.4 (>= 0.7.4), libaa1 (>= 1.4p5), libasound2 (>= 1.0.16), libass9 (>= 1:0.13.6), libaudio2, libavcodec58 (>= 7:4.2), libavformat58 (>= 7:4.2), libavutil56 (>= 7:4.0), libbluray2 (>= 1:0.2.2), libbs2b0, libc6 (>= 2.29), libcaca0 (>= 0.99.beta17-1), libcdio-cdda2 (>= 10.2+2.0.0), libcdio-paranoia2 (>= 10.2+2.0.0), libcdio19 (>= 2.1.0), libdca0 (>= 0.0.5), libdv4 (>= 1.0.0), libdvdnav4 (>= 4.1.3), libdvdread8 (>= 4.1.3), libegl1, libenca0 (>= 1.9), libfaad2 (>= 2.7), libfontconfig1 (>= 2.12.6), libfreetype6 (>= 2.2.1), libfribidi0 (>= 0.19.2), libgif7 (>= 5.1), libgl1, libjack-jackd2-0 (>= 1.9.10+20150825) | libjack-0.125, libjpeg62-turbo (>= 1.3.1), liblirc-client0, libmad0 (>= 0.15.1b-3), libmng1 (>= 1.0.10), libmpeg2-4 (>= 0.5.1), libmpg123-0 (>= 1.13.7), libogg0 (>= 1.0rc3), libopenal1 (>= 1.14), libpng16-16 (>= 1.6.2-1), libpostproc55 (>= 7:4.0), libpulse0 (>= 0.99.1), libsdl1.2debian (>= 1.2.11), libsmbclient (>= 2:4.0.3+dfsg1), libspeex1 (>= 1.2~beta3-1), libswresample3 (>= 7:4.0), libswscale5 (>= 7:4.0), libtheora0 (>= 1.0), libtinfo6 (>= 6), libvdpau1 (>= 0.2), libvorbisidec1 (>= 1.2.1+git20180316), libx11-6, libxext6, libxinerama1, libxss1, libxv1, libxvidcore4 (>= 1.2.2), libxvmc1 (>= 2:1.0.12), libxxf86dga1, libxxf86vm1, zlib1g (>= 1:1.1.4) Suggests: bzip2, fontconfig, fonts-freefont-ttf, mplayer-doc, netselect | fping Homepage: https://www.mplayerhq.hu Tag: interface::graphical, interface::x11, role::program, uitoolkit::sdl, x11::application Download-Size: 2,057 kB APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages Description: movie player for Unix-like systems MPlayer plays most MPEG, VOB, AVI, Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, yuv4mpeg, FILM, RoQ, PVA files, supported by many native, XAnim, RealPlayer, and Win32 DLL codecs. It can also play VideoCD, SVCD, DVD, 3ivx, RealMedia, and DivX movies. . Another big feature of MPlayer is the wide range of supported output drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib, fbdev, but also SDL. . Not all of the upstream code is distributed in the source tarball. See the README.Debian and copyright files for details. user@brain:~$ sudo apt install mplayer Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: liba52-0.7.4 libass9 libaudio2 libavformat58 libbluray2 libbs2b0 libcdio-cdda2 libcdio-paranoia2 libcdio19 libchromaprint1 libdca0 libdvdnav4 libdvdread8 libenca0 libfaad2 libgif7 libgme0 libldb2 liblirc-client0 libmad0 libmng1 libmpeg2-4 libnorm1 libopenmpt0 libpgm-5.3-0 libpostproc55 librabbitmq4 libsmbclient libsrt1.4-gnutls libssh-gcrypt-4 libtalloc2 libtdb1 libtevent0 libudfread0 libvorbisfile3 libvorbisidec1 libwbclient0 libzmq5 python3-ldb python3-talloc samba-libs Suggested packages: nas libbluray-bdj libdvdcss2 lirc fonts-freefont-ttf mplayer-doc netselect | fping Recommended packages: libaacs0 The following NEW packages will be installed: liba52-0.7.4 libass9 libaudio2 libavformat58 libbluray2 libbs2b0 libcdio-cdda2 libcdio-paranoia2 libcdio19 libchromaprint1 libdca0 libdvdnav4 libdvdread8 libenca0 libfaad2 libgif7 libgme0 libldb2 liblirc-client0 libmad0 libmng1 libmpeg2-4 libnorm1 libopenmpt0 libpgm-5.3-0 libpostproc55 librabbitmq4 libsmbclient libsrt1.4-gnutls libssh-gcrypt-4 libtalloc2 libtdb1 libtevent0 libudfread0 libvorbisfile3 libvorbisidec1 libwbclient0 libzmq5 mplayer python3-ldb python3-talloc samba-libs 0 upgraded, 42 newly installed, 0 to remove and 1 not upgraded. Need to get 12.1 MB of archives. After this operation, 39.5 MB of additional disk space will be used. Do you want to continue? [Y/n] Y Get:1 http://archive.debian.org/debian bullseye/main armel libtalloc2 armel 2.3.1-2+b1 [26.5 kB] ~ Processing triggers for libc-bin (2.31-13+deb11u11) ... user@brain:~$ sudo apt show smplayer Package: smplayer Version: 20.6.0~ds0-1 Priority: optional Section: video Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org> Installed-Size: 4,357 kB Depends: mpv (>= 0.6.2) | mplayer, libc6 (>= 2.28), libgcc-s1 (>= 3.5), libqt5core5a (>= 5.14.1), libqt5dbus5 (>= 5.14.1), libqt5gui5 (>= 5.14.1) | libqt5gui5-gles (>= 5.14.1), libqt5network5 (>= 5.14.1), libqt5widgets5 (>= 5.14.1), libqt5xml5 (>= 5.1), libstdc++6 (>= 5), libx11-6, zlib1g (>= 1:1.1.4) Recommends: smplayer-themes, smplayer-l10n Homepage: http://smplayer.sourceforge.net/ Tag: interface::graphical, interface::x11, role::program, uitoolkit::qt, use::playing, works-with::audio, works-with::video, x11::application Download-Size: 1,873 kB APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages Description: Complete front-end for MPlayer and mpv Qt5 front-end for mplayer and forks, with basic features like playing videos, DVDs, and VCDs to more advanced features like support for MPlayer filters and more. One of the most interesting features of SMPlayer: it remembers the settings of all files you play. So you start to watch a movie but you have to leave... don't worry, when you open that movie again it will resume at the same point you left it, and with the same settings: audio track, subtitles, volume... user@brain:~$ sudo apt install smplayer Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libdouble-conversion3 libinput-bin libinput10 libmd4c0 libpcre2-16-0 libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5widgets5 libqt5xml5 libwacom-common libwacom2 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-util1 libxcb-xinerama0 libxcb-xinput0 libxkbcommon-x11-0 Suggested packages: qt5-image-formats-plugins qtwayland5 Recommended packages: qttranslations5-l10n libqt5svg5 qt5-gtk-platformtheme libwacom-bin smplayer-themes smplayer-l10n The following NEW packages will be installed: libdouble-conversion3 libinput-bin libinput10 libmd4c0 libpcre2-16-0 libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5widgets5 libqt5xml5 libwacom-common libwacom2 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-util1 libxcb-xinerama0 libxcb-xinput0 libxkbcommon-x11-0 smplayer 0 upgraded, 24 newly installed, 0 to remove and 1 not upgraded. Need to get 10.2 MB of archives. After this operation, 34.0 MB of additional disk space will be used. Do you want to continue? [Y/n] Y Get:1 http://archive.debian.org/debian bullseye/main armel libdouble-conversion3 armel 3.1.5-6.1 [39.6 kB] ~ Processing triggers for hicolor-icon-theme (0.17-2) ... user@brain:~$ user@brain:~$ mplayer MPlayer 1.4 (Debian), built with gcc-10 (C) 2000-2019 MPlayer Team Usage: mplayer [options] [url|path/]filename Basic options: (complete list in the man page) -vo <drv> select video output driver ('-vo help' for a list) -ao <drv> select audio output driver ('-ao help' for a list) vcd://<trackno> play (S)VCD (Super Video CD) track (raw device, no mount) dvd://<titleno> play DVD title from device instead of plain file -alang/-slang select DVD audio/subtitle language (by 2-char country code) -ss <position> seek to given (seconds or hh:mm:ss) position -nosound do not play sound -fs fullscreen playback (or -vm, -zoom, details in the man page) -x <x> -y <y> set display resolution (for use with -vm or -zoom) -sub <file> specify subtitle file to use (also see -subfps, -subdelay) -playlist <file> specify playlist file -vid x -aid y select video (x) and audio (y) stream to play -fps x -srate y change video (x fps) and audio (y Hz) rate -pp <quality> enable postprocessing filter (details in the man page) -framedrop enable frame dropping (for slow machines) Basic keys: (complete list in the man page, also check input.conf) <- or -> seek backward/forward 10 seconds down or up seek backward/forward 1 minute pgdown or pgup seek backward/forward 10 minutes < or > step backward/forward in playlist p or SPACE pause movie (press any key to continue) q or ESC stop playing and quit program + or - adjust audio delay by +/- 0.1 second o cycle OSD mode: none / seekbar / seekbar + timer * or / increase or decrease PCM volume x or z adjust subtitle delay by +/- 0.1 second r or t adjust subtitle position up/down, also see -vf expand * * * SEE THE MAN PAGE FOR DETAILS, FURTHER (ADVANCED) OPTIONS AND KEYS * * * user@brain:~$ user@brain:~$ |
mplayerで、再生したファイルを指定すれば、そのままALSAで再生されました。
(USB Audioデバイスを付けている場合)
mplayerでの音声再生では、ほとんどノイズは気になりませんでした。
[CUI,X11環境両方で実行可能]
mplayer pianos-by-jtwayne-7-174717.mp3
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
user@brain:/boot/sound$ mplayer pianos-by-jtwayne-7-174717.mp3 MPlayer 1.4 (Debian), built with gcc-10 (C) 2000-2019 MPlayer Team do_connect: could not connect to socket connect: No such file or directory Failed to open LIRC support. You will not be able to use your remote control. Playing pianos-by-jtwayne-7-174717.mp3. libavformat version 58.45.100 (external) Audio only file format detected. Load subtitles in ./ ========================================================================== Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III AUDIO: 44100 Hz, 2 ch, s16le, 256.0 kbit/18.14% (ratio: 32000->176400) Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III) ========================================================================== AO: [pulse] Init failed: Connection refused Failed to initialize audio driver 'pulse' AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample) Video: no video Starting playback... A: 18.5 (18.5) of 18.0 (18.0) 75.0% Exiting... (End of file) user@brain:/boot/sound$ |
smplayerでも音声再生OKです。
smplayer pianos-by-jtwayne-7-174717.mp3
[X11環境時で実行可能]

同様に動画ファイル(mp4ファイル)も試しましたが、
安定して音声・動画再生はされました。
ただ、さすがにマシンパワー不足で、
動画と音声の同期がうまくいっていませんでした。
(音声が先行する)
再生時パラメータや、動画ファイルの作成パラメータの調整が必要かもしれません。
(-autosync 30 -cache 8192 -framedropのオプションを付けてみたけど、やっぱり遅い)
mplayer -vo fbdev2 /dev/fd0 ./file.mp4
[CUI上で実行する場合、-vo fbdev2 /dev/fd0 オプションを付け得れば再生されました。]
mplayer ./file.mp4
[X11環境上で実行可能]

smplayer file.mp4
[X11環境上で実行可能]

PulseAudio導入について
ALSAに引き続き、PulseAudioの導入も検討していますが、
結構重いそうだし、ALSA強制指定で動くものも多いので、いったん保留。
音楽のリダイレクトはあとで試してみたい。
fmsx,openMSX関連で、Brainuxに「pulseaudio」を入れてみました。
インストール: sudo apt install pulseaudio
インストール直後はサービスが起動していないのですが、以下のコマンドで実行できます。
pulseaudio –start
起動状況確認コマンドは、pactl info
pilseaudioの停止コマンドは、pulseaudio -k
ただし、自動実行が設定されてしまっているため、再起動しても自動的に起動してしまします。
$ systemctl –user status pulseaudio.service
● pulseaudio.service – Sound Service
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2025-12-20 14:18:53 JST; 30min ago
TriggeredBy: ● pulseaudio.socket
Main PID: 472 (pulseaudio)
CPU: 4.902s
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/pulseaudio.service
└─472 /usr/bin/pulseaudio –daemonize=no –log-target=journal
自動機能の無効化は以下です。これで自動起動しなくなります。
$ systemctl –user mask pulseaudio.service pulseaudio.socket
もし、一時的にpulseaudioを起動したいのであれば、
pulseaudio –start
で起動できます。
結果としては,Pulseaudioが無効との時うまく動くアプリと、
逆にPulseaudioが有効の時うまくいくアプリがあるっぽい。
ALSAを直接叩いているようなアプリでは問題なく聞ける音楽でもPulseaudioが有効だと、ぶつ切りでまともに聞けなくなるし、
逆に、Pulseaudio経由で音楽を鳴らしているアプリでは、Pulseaudioが起動していたほうがちゃんとうまくなる気がしてます。
Pulseaudioが起動していると、メモリも10MB以上消費するので、
Brainuxでは通常Pulseaudioを利用しないで、必要なときのみ起動するほうがいいでしょう。
openMSXとかだと、PulseAudioを起動したほうが音がちゃんと出ることもあるので、
いったんは必要に応じて手動起動で運用してみます。