以前Pomeraにlinuxを入れた話を書いたが、今回は環境設定の詳細について整理してみる。
かなりいろいろ設定をいじっているので、忘れないうちにメモしておく。
現在の構成
- ハードウェア: Pomera DM250
- OS: Debian 11 bullseye (ARM v7l)
- ウィンドウマネージャー: i3wm
- ターミナル: URxvt (rxvt-unicode)
- 日本語入力: ibus + mozc
- フォント: Ricty Diminished
自動ログイン・X Window起動設定
.bash_profile
if [[ -z $DISPLAY ]] && [[ $(tty) == /dev/tty1 ]]; then
startx
fi
ログイン後、自動的にX Windowが起動するように設定している。tty1(最初のコンソール)でのログイン時のみstartxを実行。
.xprofile
#!/bin/sh
xset r rate 300 25
/usr/local/bin/x-set-keys &
X Window起動後に実行される設定。キーリピート速度の調整とx-set-keysの起動を行う。
手動起動の問題
現在、x-set-keysの自動起動がうまくいかず、X Window起動後に手動で以下を実行している:
sh .xprofile
この作業を忘れないように、.bashrcの末尾で操作メモを表示している:
.bashrc(末尾)
more /mnt/sd/doc/welcome.txt
/mnt/sd/doc/welcome.txt
ログイン後、sh .xprofile を実行してください そしたらMenuプラスEnterで別ターミナル開いて、Menu+wで最大化。 あとこれもやったらだめ固まるー>ctrl z してbgとかそういうやつ"
操作TIPS
・urxvt-unicodeでのペーストはCTRL+ALT+v
・文字サイズ変更はCTRL++,CTRL+-
・明るさ変更は ~/brightnessコマンド(GUI)
・マウスはCTRL+;
・日本語IMEオンオフは半角全角キー
このメモには、基本的な操作方法も含めている。
X Window関連設定
.xinitrc
export LANG=ja_JP.UTF-8
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
xrdb -merge -I$HOME ~/.Xresources
ibus-daemon -drx&
/usr/bin/keynav &
export LANG=ja_JP.UTF-8
exec i3
X起動時に日本語環境とibus、keynavを自動起動している。最初はXFCE4を使っていたが、軽量なi3wmに変更した。
.Xresources
URxvt*font: xft:Ricty Diminished:size=16
URxvt.letterSpace: -1
URxvt.faceSize: 12
URxvt.background: snow
URxvt.foreground: black
URxvt.saveLines: 3000
URxvt.scrollBar: false
URxvt.cursorBlink: true
URxvt.cursorUnderline: true
URxvt.pointerBlank: true
URxvt.fading: 40
URxvt.iso14755: false
URxvt.pastableTabs: false
URxvt.perl-ext-common: xim-onthespot,keyboard-select,resize-font
URxvt.inputMethod: ibus
URxvt.preeditType: OnTheSpot
URxvt.keyboard-select.clipboard: true
URxvt.keysym.Shift-Up: command:\033]720;1\007
URxvt.keysym.Shift-Down: command:\033]721;1\007
URxvt.keysym.M-s: perl:keyboard-select:activate
URxvtは軽くて設定が豊富。日本語入力のOnTheSpot設定がポイント。
マウス操作をキーで行う - keynav
Pomeraにはマウスがないので、keynavでキーボードからマウス操作を実現している。
.keynavrc
clear
daemonize
起動キー
ctrl+semicolon start,cursorzoom 20 20
終了
Escape warp,end
q warp,end
クリック
space warp,click 1
1 warp,click 1,end
2 warp,click 2,end
3 warp,click 3,end
カーソル移動(vim風)
h move-left 20
j move-down 20
k move-up 20
l move-right 20
shift+h move-left 50
shift+j move-down 50
shift+k move-up 50
shift+l move-right 50
Emacs風
ctrl+n move-down 20
ctrl+f move-right 20
ctrl+p move-up 20
ctrl+b move-left 20
アプリケーション起動
5 sh "lilyterm",end
6 sh "leafpad",end
7 sh "sylpheed",end
8 sh "midori",end
9 sh "gvim",end
0 sh "emacs",end
Ctrl+;でマウスカーソルが表示され、hjklで移動、spaceでクリック。
よく使うアプリケーションを数字キーで起動できるようにしている。
i3ウィンドウマネージャー設定
軽量で設定が柔軟なi3wmを採用。
~/.config/i3/config(抜粋)
set $mod Mod4
font pango:FontAwesome,Ricty Diminished,DejaVu Sans Mono 12
タブで次のワークスペース
bindsym $mod+Tab workspace next
bindsym $mod+Shift+Tab workspace prev
スクリーンロック
bindsym $mod+l exec slock && sleep 1
ボーダーを賢く非表示
hide_edge_borders smart
ステータスバー設定
bar {
font pango:FontAwesome,Ricty Diminished,DejaVu Sans Mono 14
status_command i3status
}
システム情報表示 - i3status
右下のバーにIPアドレスやバッテリー情報を表示。
/etc/i3status.conf
general {
output_format = "i3bar"
colors = false
interval = 7
}
order += "wireless _first_"
order += "battery 0"
order += "tztime local"
wireless _first_ {
format_up = "SSID:%essid/%ip%quality"
format_down = "Wifi:down"
}
battery 0 {
path = "/sys/class/power_supply/battery/uevent"
format = "%status%percentage"
}
tztime local {
format = "%Y-%m-%d(%a) %H:%M"
}
WiFi SSID、IPアドレス、電波強度、バッテリー残量、日時を表示。
日本語入力設定
.uim
(define default-im-name 'mozc)
(define-key generic-on-key? '(" " "zenkaku-hankaku"))
(define-key generic-off-key? '(" " "zenkaku-hankaku"))
Ctrl+SpaceとZenkaku-hankakuキーで日本語入力のON/OFF切り替え。
キーボード問題について
PomeraをLinux化すると、複数キー同時押しで意図しない文字が入力される問題がある。
現在の対策
1. キーリピート調整: /etc/X11/xorg.conf.d/00-keyboard.conf
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "AutoRepeat" "300 20"
EndSection
`
2. x-set-keysツール: /usr/local/bin/x-set-keys
- 複数キー入力問題を軽減するカスタムツール
- SUID権限で動作
- .xinitrcでコメントアウト中(不安定のため)
3. bashrcでの環境設定:
`bash
export LANG=ja_JP.UTF-8
`
具体的な問題
- 複数キー同時押しで文字化けが発生。具体的には りょ、ちゅ、などを高速入力するとたいてい違う文字が入る。
この問題は完全には解決していない。Pomeraのハードウェア特性に起因する可能性が高い。これについては以前にも少し書いた→ ポメラdm250をlinux化すると複数キー同時入力で違う文字が入ってしまう問題 : まさかの日記 https://masakano.com/archives/52628373.html
WiFi設定
/etc/network/interfaces
bash
Include files from /etc/network/interfaces.d:
source /etc/network/interfaces.d/*
NetworkManagerを使用してWiFi接続を管理。GUIでも設定可能。
その他の便利な設定
.bashrc
bash
export LANG=ja_JP.UTF-8
ヒストリー設定
HISTSIZE=1000 HISTFILESIZE=2000
.tmux.conf(Pomera側)
bash
unbind C-b
set-option -g prefix C-t
set-option -g status-interval 30
set-option -g status-right "|#(~/bin/date)|#(/home/pomera/bin/charge):#(/home/pomera/bin/batt)"
bind r source-file ~/.tmux.conf \; display-message "Config reloaded!"
`
プレフィックスキーをC-tに変更。ステータスラインには日付とバッテリー情報を表示。
開発環境
- エディタ: vim, emacs
- 言語: Python, Ruby, Common Lisp (SBCL + Quicklisp)
- ブラウザ: Firefox ESR
- メーラー: Sylpheed
最近はClaude Codeも快適に動作している。
パフォーマンス
軽量な構成にしているため、Pomeraでも意外と快適。
- メモリ使用量: 起動後約200MB
- CPU負荷: アイドル時1%以下
- バッテリー持続時間: 通常使用で6-8時間
今後の課題
1. キーボード問題の根本解決 - おそらく対応は不可能。ポメラの次バージョンに期待か?(でるんか?
2. パフォーマンス向上 - さらなる軽量化 - 起動時間の短縮
3. モバイル対応 - Tailscale経由での外部アクセス最適化 - バッテリー消費の改善
感想
正直pomeraの使いみちがなくて困っていたが、こんだけ遊べれば充分もとは取ったかな
ちなみにこの記事もclaude codeにほぼかいてもらった(expectコマンドで勝手に入ってもらって見てもらった)。このpomera のlinux側のいろんな設定をなにかに残さないとな、、とずっと思っていたが、ここでこういう形で実現して良かった。まあ二度とここまでやることは無いと思うが、、次のPomera(DM300か)が出たらまたやるかも。カーネルとかを出してくれている皆さんがいるあいだにw pomera dm300でググるといろいろ出てくるね→pomera dm300 - Google 検索 https://www.google.com/search?q=pomera+dm300&oq=pomera+dm300&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIJCAEQABgEGIAEMgcIAhAAGO8FMgoIAxAAGKIEGIkFMgoIBBAAGIAEGKIE0gEIMzc1NGowajeoAgCwAgA&sourceid=chrome&ie=UTF-8
---
参考
- 前回の記事: ポメラdm250をlinux化すると複数キー同時入力で違う文字が入ってしまう問題
- i3wm公式ドキュメント: https://i3wm.org/docs/
