2022年6月23日木曜日

iWork7 の横画面設定でめちゃくちゃハマった話

 以前、iWork7 に LXDE 版 LMDE5 のインストールに成功したと書いたのですが、流石に縦画面では使いづらいと思った訳です。
タッチスクリーンも無線も使えるのだからあと一息…という訳で、立ち上がり時に横画面にする事にしたのですが…

  • 大きく分けてやる事は二つ。

1.タッチスクリーン判定を90度回転させる
2.画面を90度回転させる

以上を開始時に行えば良い訳です。
同時にやる方法は以前書いた事があるのですが、問題が多々ありまして。

1.接続されている機器によってタッチスクリーンの ID が毎度変わってしまう。
2.LXDE には他のフレーバーに存在する「自動起動するアプリの設定」
無い。

  • まずはタッチスクリーン
タッチスクリーンの機器IDが毎回変わってしまうと言うのなら、xinput_calibrator を使ってあらかじめ90度回転した当たり判定を作り、
作った当たり判定を /etc/X11/xorg.conf.d/99-calibration.conf として保存すれば良い…ハズ。

最初の壁。
うまく行かないと思ったら、標準でインストールされる xinput-calibrator にバグがあるらしく、コマンドラインで入れ直すようです…

コリジョン作成…
連続で xinput-calibrator を行うと毎回出力される値がかわるのだが…どうも段々と精度が上がっているらしい。どうしてそんなおかしな挙動をしているのかわからないが、5回目くらいの奴を保存。

ちなみに私の iWork7 はこんな値でした(個体差が出る値です

Section "InputClass"
    Identifier    "calibration"
    MatchProduct    "Goodix Capacitive TouchScreen"
    Option    "Calibration"    "2 793 1255 -4"
    Option    "SwapAxes"    "1"
EndSection

これにてひとまず起動時にタッチスクリーンの当たり判定は90度回転したのだが…


  • 次にスクリーン回転
コマンド自体は簡単で

$ xrandr -o right

これだけで良いのだが、起動時に自動で実行させようとするとさあ、大変。
まず、起動時に実行する内容は /etc/rc.local に書けとの事ですが、無い。
自力で作れとのことですので書いてみました

xrandr -o right
exit0

この内容で $sh /etc/rc.local と、単体起動しても動くのですが、再起動してみても動かない。
どうやらシバンとか言う奴が居なかったのがまずいらしい。

#!bin/sh
xrandr -o right
exit 0

今度もコマンドラインから単体起動でスクリーンが回転するのだが、再起動してみても動かない。
はい、コレは凡ミス

#!/bin/sh
xrandr -o right
exit 0

なんでコマンドライン単体では動くんだ。次こそは…と思って起動すると上手く行かない。

起動時のログ( /var/log/syslog )を見るとこんな感じ。
このログの出所は xrandor で回転させるスクリーンのデバイスを明示しろと言ってきている。
で、起動後に xrandor を使って確認したらデバイス名は…
DSI-1 …っぽい。

じゃあと

#!/bin/sh
xrandr --output DSI-1 -o right
exit 0

と書いても結果は変わらず。どうもディスプレイが定義される前に xrandor が呼ばれているような?
で、調べてみた所、

/etc/profile.d/ 以下にスクリプトを書いて実行したら動いたという記事が…

#!/bin/sh
xrandr -o right
exit 0

以上のスクリプトを /etc/profile.d/roll.sh

として保存、rc.local の方は起動する設定にしてしまっているので…

#!/bin/sh
exit 0

という、無意味スクリプトにしておきました。

で、再起動したら…
ログイン→一瞬横画面になる→ログイン画面に戻るの無限ループに陥る

…実は

#!/bin/sh
xrandr --output SDI-1 -o right
exit 0

ココが悪さをしたっぽい。(ログインと同時にエラーを起こして再度ログイン画面に帰って来る)結局インストールをやり直す事に。


  • そして完成へ
という訳でなんとか出来たのですが。正解の手順は以下の通り。

1.スクリーン回転
/etc/profile.d/roll.sh (名前はなんでも良い)を自分で作り、下記の内容として保存
#!/bin/sh
xrandr -o right

2.タッチ設定
xinput_calibrator の入れ直し作業を行った後、

/etc/X11/xorg.conf.d/99-calibration.conf

を自力で作る(内容は $ xinput_calibrator の出力次第)


…今回いろんな所のブログに助けられて完成まで漕ぎつけられました。本当に感謝です。
ただ、この作業に丸1日かかったのはどうなんだろう…そして、この記事はだれかの役にたつのだろうか?8年前のタブレットの記事だしなあ。
そして、なぜ Linux はバージョンが新しくなると便利な機能を減らしていくのだろうか…

0 件のコメント:

コメントを投稿