“evdev-right-click-emulation” はタブレットで Linux を使うのにすごく便利

タブレットで GNU/Linux を試したことのある方なら,タッチスクリーンでは右クリックできないことにお気づきのことでしょう。

Gnome 3 はこの問題の解決に取り組んでいるようですが,まだ不完全です。キーの組み合わせで右クリックを発生させるようなスクリプトでさしあたり右クリックできるようになりますが,Android や Windows と比べてあまりに不便です。

そんなわけで,これは X か何かの設計上の問題に起因していて解決は困難だろうと思っていました。この小さなプログラムに出会うまでは。

Peter Cai さんによる evdev-right-click-emulation は,デバイスを低レベルで直接読んで長押しを検知するというシンプルな方法で,右クリックの問題をほぼ解決しています。

このやり方はおそらく正攻法ではないのでしょうし,何らかの予期しない問題を招く恐れもありますが,evdev-right-click-emulation がタブレット上での GNU/Linux の UX を大幅に改善することは間違いありません。

“evdev-right-click-emulation” is a smashing useful tool for Linux tablet users

If you’ve ever tried GNU/Linux on tablet devices, you might have noticed that you can’t do right click with a touchscreen.

Gnome 3 seems trying to solve this problem, but it’s still incomplete. Hacky script like emulating right click with key combination may work as a workaround, but it’s a too awkward way compared to those of Android or Windows.

I believed this should a design problem of X or something and too hard to fix… Until meet this tiny program.

evdev-right-click-emulation by Peter Cai have successfully (almost) solved that problem with simpler way; read devices directly and detect long tap.

Though this mean might not a kind of entering at the front door and possibly cause unexpected errors, it is certain that evdev-right-click-emulation drastically improves UX of GNU/Linux on tablet devices.

Debian 10 + Xfce + Let’s note RZ4 で画面自動回転

GNOME 3 であれば iio-sensor-proxy 経由で加速度センサによる画面自動回転にデフォルトで対応していますが,GNOME 3 はラップトップのデスクトップ環境としての実用性が限られているという問題があります。しかし,Linux の常としてセンサの入力もデバイスファイルとして扱われているので,他のデスクトップ環境でも,簡単なスクリプトで状態を読んでやれば画面の自動回転ができるようになります。

とはいえスクラッチで書くのも大変なのでとりあえず ArchWiki で紹介されている “rotate.py” を試してみたところ,そのまま画面回転ができました。

ただし,このスクリプトでは RZ4 のタッチパネルは想定されず,このままではタッチ操作のジオメトリが変わらずに表示とずれてしまいますので,ちょっとだけ修正する必要があります。幸いにも処理の実際の内容である xinput での設定自体は全く同じでよいので,タッチパネルとして扱わせるためにスクリプトが用意しているリストに書き加えるだけです。

RZ4 は eGalax 製のデジタイザを使用しており,xinput –list –name-only での表示名に(”touchscreen” “wacom” は含まれず)”eGalax” の文字列が含まれるため,

touchscreen_names = ['touchscreen', 'wacom']

とある行を

touchscreen_names = ['touchscreen', 'wacom', 'egalax']

と書き換えてください(入力を一度小文字にした上で比較しているので,すべて小文字の egalax と指定してください)。

あとはこの rotate.py を自動起動して常駐させるなり,必要なときに起動するなりすれば, Xfce やその他のデスクトップ環境でもばっちり画面回転できるようになります。Onboard と組み合わせればタブレットとしてそれなりに実用的に使えるようになります。

余談:
この機種は Buster ではバックライトをホットキーから調整できない問題がありますが,例によって xorg の設定ファイルを追加するだけで対応可能です。

さらに余談:
どうやら UEFI で設定された画面輝度が OS 起動後に操作できる上限となるようで,UEFI での輝度が一定以下だと OS 起動後の輝度調整ができなくなります。わかってしまえばどうということもないことですが,上記のハードウェア認識の問題と混同してしまうと苦労することになるので気をつけましょう。 UEFI 画面が表示されるのは一瞬のことですので,通常は最大輝度にしておくのがよいでしょう。

……ということをなぜ書くかというと,以前ハマったこの問題にまたハマってしまい,検索したらこの記事が出てきて,ふと思い出して無事解決できたからです。次も思い出せるかはわからないので記録しておきます(何度も忘れるな)。

Linux でサスペンドからのレジューム後にタッチパッドが使えない時は

ラップトップ PC によっては,サスペンドからのレジューム後にタッチパッドが使えなくなる場合があります 1。BIOS/UEFI の設定で改善したという話もあり,どうも BIOS/UEFI の挙動に原因があるように見受けられますが,幸いにもドライバモジュールの再読込だけでも正しく認識されるようになります。具体的には,サスペンド時に modprobe -r psmouse,レジューム時に modprobe psmouse を実行してやれば良いわけです。
なお,最近の機種の場合,異なるバスのデバイスが使われている場合もあり,その場合には i2c_hid や rmi_smbus を試す必要があるようです。なお,これらのモジュールはタッチパッド以外にも使われている場合があり,アンロードは psmouse の場合ほど安全ではないため,事前に調査するべきでしょう。

さて,早速片付けてしまいましょう。
まずはサスペンド時に modprobe -r するサービスを書きます。

# vi /etc/systemd/system/tptweak-suspend.service
[Unit]
Description=Unload psmouse
Before=suspend.target

[Service]
Type=simple
ExecStart=/sbin/modprobe -r psmouse

[Install]
WantedBy=suspend.target

同様に,レジューム時に modprobe するサービスを書きます。

# vi /etc/systemd/system/tptweak-resume.service
[Unit]
Description=Load psmouse
After=suspend.target

[Service]
Type=simple
ExecStart=/sbin/modprobe psmouse

[Install]
WantedBy=suspend.target

あとは,登録するだけです。簡単ですね。

# systemctl daemon-reload
# systemctl enable tptweak-suspend.service
# systemctl enable tptweak-resume.service

非常にシンプルなサービスのため,たまには失敗するかもしれませんが,今のところうまく機能しています。

参照:
Synaptics タッチパッド – ArchWiki
電源管理 – ArchWiki
サスペンドの前後でコマンドを実行する。 – ガジェット好きの日記

Notes:

  1. いままでに何台かの富士通製で遭遇。

Firefox で国際化ドメイン名を punycode で表示する ―― IDN 悪用フィッシングにとりあえず対策

 最近になって暗号通貨取引所に成りすましたフィッシングサイトが多く現れているようで,国際化ドメイン名(IDN)悪用の問題が話題になっているようです。
 この問題は国際化ドメイン名の登場当初から指摘されており,たとえば「apple.com」ではなく「аpple.com」(キリル文字で「アー・エル・エル・パーロチカ・イェー」)で登録するなどして,正規ウェブサイトのドメイン名と視覚上見分けがつかないドメイン名を取得し,フィッシングに悪用するという手法です。

窓の杜 – 【NEWS】Mozilla/Firefox/Operaなどに国際化ドメイン名の盲点をついたURL偽装の問題(2005/02/08)
肉眼では偽物と見抜けない国際化ドメイン悪用のURL偽装、Google Chromeなどで対策進む – 窓の杜(2017/04/21)

 国際化ドメイン名のコンセプト自体に起因している問題であるため抜本的な対策は困難で,十年以上にわたり対策が試みられ続けてきてなお完全な解決を見ていない問題ですが(なにしろ Unicode には十万以上の文字が収録されていますし,各レジストラのポリシも様々です) 1,国際化された表示を無効化し,国際化ドメイン名表示のための符合である punycode で表示するように設定することでさしあたりユーザ側で簡単にフィシング対策ができます。

about:config を開き,
network.IDN_show_punycode」の値を true にしてください。

これで,国際化ドメイン名が punycode で表示されるようになります。先述の「аpple.com」なら「xn--80ak6aa92e.com」と表示され,正規のサイトではないことが一目瞭然になります。
デメリットは国際化ドメイン名がわかりにくくなることですが,それで困る人がいるのかは不明。

Notes:

  1. レジストラが紛らわしいドメイン名の登録を拒否する,Firefox などクリックせずに EV-SSL の組織情報が表示されるブラウザで EV-SSL を利用する等が考えられますが,現実的には難しいでしょうね。

IPS パネルは壮絶に「焼きつく」けど,簡単に元に戻せる

概要

液晶ディスプレイや有機 EL (OLED) ディスプレイにおいても,ブラウン管の焼き付きに類似した表示残存が発生することがあり,一般にこれらも「焼き付き」と総称される。ただし,そのメカニズムや症状の程度はディスプレイの種類により大きく異なる。IPS パネル,VA パネル,有機 EL パネルでは家庭やオフィスにおける通常の使用でも発生しうる。このうち,IPS パネルと VA パネルにしばしば見られるのは一時的なものであり,簡単に元に戻すことができる。

パネルの種類による違い

-液晶
– IPS: 使用状況や機種によっては使用が困難になるほど激しい「焼き付き」が発生することがあるが,これは同じ表示が続くことにより液晶内の成分が偏在したり 1,意図しない電荷が蓄積したりする 2ことが原因とされており,簡単に直すことができる。
- VA: PC 用ディスプレイとして使われることは少ないためあまり話題にならない。一般に IPS パネルより「焼き付き」が発生しやすいとも言われている 3。その一方で,レビューサイト RTINGS.com による検証では,実用上「焼き付き」の心配はないという結果になっている 4。発生した場合でも,やはり簡単に直すことができる。
- TN: 通常の使用では問題になるほどの「焼き付き」は見られない(おそらく)。
有機 EL: 自然に「焼き付き」が発生するが 5,すぐに使用を妨げられるほどではない。ただし,一時的な現象に加えて有機 EL では発光体の劣化も原因となり 6 7,発光体の劣化に起因する「焼き付き」は直すことはできない
※液晶パネルでも,デジタルサイネージなどの特殊な用途で長い期間に渡って同じ表示が続けば,部材の劣化による永続的な「焼き付き」は発生しうる。

IPS または VA パネルの「焼き付き」を直すには

様々な色(たとえばRGB白黒)を数十分から数時間程度のあいだ均等に代わる代わる表示させることで画面表示のクセを取り除くことができる。
※点滅にご注意ください

GIF 動画を用意してみました。お使いのディスプレイと同じ解像度(なければ同じアスペクト比 8)のものをダウンロードのうえ,フルスクリーン表示してご使用ください 9
8192×4320 8K 4K 2K
2048×1536 QXGA 4:3
1920×1200 WUXGA 16:10
1920×1080 FullHD 16:9
1366×768 FWXGA
1024×600 WSVGA


以下元の記事
続きを読む IPS パネルは壮絶に「焼きつく」けど,簡単に元に戻せる