Wine を箱《コンテナ》のなかで愉しもう

概説

この記事のゴール

LXC/LXD による仮想化コンテナで Wine を動作させ,SSH の X11 Forwarding でウィンドウをホスト環境に引っ張ってきて利用します。

続きを読む Wine を箱《コンテナ》のなかで愉しもう

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

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

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

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

“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.

続きを読む “evdev-right-click-emulation” is a smashing useful tool for Linux tablet users

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

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

続きを読む Debian 10 + Xfce + Let’s note RZ4 で画面自動回転

Debian 10 “Buster” が stable に

2019年7月6日,Debian 10 “Buster” が stable になりました。これにともない, “Stretch” は oldstable となります。

Buster ではそれほど目立つ変化はありませんが,AppArmor のデフォルトでの有効化,UEFI 対応強化など足回りが着実に強化されています。これまで testing として使ってきた感覚では,全体的に X 周りの安定性が高まっている印象もあります。

Stretch は2022年頃まで LTS 対象となる見込みです。Buster は2022年頃まで stable としてサポートされ,2024年頃まで LTS 対象となる見込みです。

Xfce の絶対に覚えておきたいキーボードショートカット6選

キーボードショートカットは強い味方

キーボードショートカットを覚えておくといろいろと便利なのは,必ずしも GUI に頼らなくてもよい Linux 環境でも同じです。

ショートカットの一覧を頭から暗記するようなことはおすすめできませんが(自分自身の利用スタイルで利用頻度の低いものまで覚えるのは混乱の元ですし,だいいち退屈です),誰であれまずこれだけは覚えておくと便利だろうという最低限のショートカットだけを紹介します。他の多くのデスクトップ環境でも使いまわせるので,この機会に覚えてみてください。

絶対に覚えておきたい Xfce キーボードショートカット

ショートカット 機能
Alt + F4 ウィンドウを閉じる
Alt + F9 ウィンドウを最小化する
Alt + F10 ウィンドウを最大化する
Alt + Tab 画面のフォーカスを切り替える(ウィンドウを切り替える)
Ctrl + Alt + D デスクトップを表示
Ctrl + Alt + Del 画面をロックする

付録(の方がなぜか長い)・絶対に覚えておきたい Firefox のキーボードショートカット8選

ショートカット 機能
Alt + ← or Ctrl + [ 戻る
Alt + → or Ctrl + ] 進む
Ctrl + Tab 右のタブへ
Ctrl + K or Ctrl + J 検索バーにフォーカスを移動
Ctrl + F ページ内検索
Ctrl + T 新しいタブを開く
Ctrl + F4 or Ctrl + W タブを閉じる
Ctrl + Shift + T 閉じたタブを開きなおす

特に Ctrl + K と Ctrl + Shift + T を使いこなせると作業効率が上がります。

light-locker でのユーザ切り替え

あるユーザでログインしたまま別のユーザでもログインするユーザ切り替え user switching は,同じマシンを複数の人が利用する場合のみならず,用途に応じて環境を切り替える手段としても便利ですが,light-locker の場合,どのようにして利用するのかわかりにくいです。

もしや light-locker ではユーザ切り替えができないのかとも思いましたが,なんのことはない,lightdm のログイン画面をロック画面として利用する light-locker では「特別な切り替え機能は必要ない」というのが答えでした。

すなわち,画面をロックし(light-locker-command –lock),別のユーザを選択してログインすればユーザを切り替えられます。

GRUB を復旧したメモ

あるマシンで,某 OS のアップデートがどうしても失敗するので諦めて October 2018 Update のインストールメディアを作成して 1クリーンインストールしたため,MBR が書き換えられてしまいました。これでは,メインの OS である Debian GNU/Linux が起動できません。

以下は GRUB (GRUB2) を再導入することで問題を解決したメモです。

前提

  • Linux 関連領域は /(DM-Crypt で暗号化)と /boot(平文)に切り分けられている
  • 両パーティションともデータは無傷で,MBR が書き換えられているだけ

手順

1. Linux システムを USB ブートする

世に言う Live ディスクですね。Debian ではここにあります。

USB メモリへの書き込みは,Linux の場合,GNOME Disks (gnome-disk-utility) 2 を使うのが簡便でしょう。GParted (gparted) にはない機能もあり,入れておいて損はないソフトです。

使用するのはできれば同じディストリビューションの同じバージョン・アーキテクチャが望ましいでしょうが,GRUB 関連パッケージのバージョンがそれなりに近ければなんでも構わないかと思います。ちなみに今回は 64 bit Debian GNU/Linux 9 に対し 32bit の Linux Mint 19 で実行しましたが特に問題は生じませんでした。

2. 内蔵ドライブのパーティションをマウントする

内蔵ドライブの各パーティションを,/ をマウントした場所を起点に元あったように並べていくイメージです。

実例で説明したほうが早いでしょう。
修復したいシステムで
/dev/sda5 が /boot
/dev/sda6 が /
だったとしたら,
/mnt をマウントポイントにするとして,
/dev/sda5 を /mnt/boot
/dev/sda6 を /mnt
にマウントすればいいわけです。簡単ですね。

具体的には,以下のようになるでしょう。

# mount /dev/sda6 /mnt
# mount /dev/sda5 /mnt/boot

自分の場合,/ は DM-Crypt で暗号化されており手動でマウントするのはちょっと面倒だからと,Thunar(xfce 標準のファイルマネージャ)でダブルクリックして /media/ 以下にふつーにマウントしてしまいました。もちろん,これでも特に問題はありません 3

3. GRUB をインストールする

いよいよお待ちかね(?),GRUB をインストールします。

ここで注意すべきは,BIOS 互換モードでインストールされたシステムでは通常アーキテクチャ等を意識する必要がないのに対し,EFI モードでインストールされたシステムに対しては,対象システムにあわせたオプションを指定しなければならないということです。詳しくは Gentoo Wiki の表と Arch Wiki の該当項目をご覧いただくとして,i386 や x64 といった target と BIOS や EFI といった platform の組み合わせで指定すべきオプションが異なり,また,UEFI 関連ファイルのディレクトリを指定する –efi-directory や UEFI にどのような名前で登録するかを指定する –bootloader-id といった EFI 特有のオプションを指定する必要があります。

もっとも,実用上は「BIOS 互換か 64bit EFI か」だけに気をつければよいかと思います。

BIOS 互換モードか 64bit EFI モードか判別する方法として,修復したいシステムの /boot(上記の例の /dev/sda5)を見るというものがあり,EFI モードでインストールされたシステムには /boot/efi が存在し,/boot/grub/i386-pc ではなく /boot/grub/x86_64-efi が存在します。

BIOS 互換モードの場合(64bit/32bit 問わず)

# grub-install --root-directory=/mnt /dev/sda

なお,設定ファイルが破損している場合は,いったん削除して再構築する必要があります。その場合は以下のようになります。

# grub-install --root-directory=/mnt --recheck /dev/sda
# update-grub

64bit EFI モードの場合

# grub-install --root-directory=/mnt --target=x86_64-efi --efi-directory=/mnt/boot/efi --bootloader-id=grub --recheck /dev/sda

–recheck しているのは bootloader-id がディストリビューションにより異なる場合があるためであり,できればディストリビューションが使用している bootloader-id (e.g. Debian 9 では “debian”)を確認し,それを指定することで,わざわざ再構築せずにそのまま流用するのが無難かと思います。

さて,これで完成です。

Installation finished. No error reported.

となれば問題ないはずです。再起動してみましょう。

ダメなら手順に誤りがないか確認して再実行です。

感想

以前にも経験はありましたが,もう5年くらい前の話で,実のところすぐにうまくいくとは思っていなかったのですが,ほんの小手調べのつもりでいじっただけで修復できてしまいました。

やはり Linux は血圧に優しい素晴らしい OS です……どこかの OS とは違って。

参考

GRUB – ArchWiki

GRUB2 – Gentoo Wiki

※ “GRUB 2” というのはいわば俗称で,公式には “GRUB” のみでバージョン2を指し,バージョン1は “GRUB Legacy” と呼ばれます。

2019/1/10 EFI モードでインストールされている場合について追記

Notes:

  1. これが簡単にできるようになったのは素晴らしい。そもそも同じメジャーバージョン内でアップデートに失敗するなよという話ではあるけど……
  2. なお,インストールするには gnome-disk-utility,起動するには gnome-disks とパッケージ名が微妙に変わりますが,GNOME Disks (gnome-disks) とは,ツール群である GNOME Disk Utility (gnome-disk-utility) に含まれるソフトウェアのひとつの名称ということのようです。
  3. 例は以下も引き続き /mnt として説明します。

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. いままでに何台かの富士通製で遭遇。

Debian Testing で最新の Firefox を使う

Firefox のバージョンも60を数えた2018年。Shiretoko (バージョン3.5)がもう遠い昔のことであるように思われます。アドオン類もメインストリームは Quantum 対応に移りつつあり,Quantum アップデートによる改革は成功したと言えるでしょう。
ところで,Debian GNU/Linux が採用している Firefox ESR は Quantum アップデート以前のバージョン52で,これをメインで使ってきた私は半年間に渡って世界の流れ(?)から取り残されてきたことになります。

もちろん Mozilla が配布しているパッケージを導入することもできるのですが,/opt 等以下にインストールするやり方は想像もしたくない,かといって ~/ 以下にインストールするやり方もユーザ権限で改変できるわけでなんだか気持ち悪い……というわけでなんとなく ESR を使い続けてきました。しかし,unstable (Sid) にある firefox が Mozilla による正式リリース版ほぼそのものだということを(今更)知ったので,unstable のレポジトリから持ってきてみました。偉大なる APT は我らを導く!

基本的にはDebian Mozilla team APT archive のページにある通りなのですが,重大な問題があって,現在はこの通りにするとシステム全体が unstable にアップグレードされてしまいます。こわい。なので,これに加えて Default-Releasae も指定してやる必要があります。具体的には以下のような手順になります。

この記事は Debian Testing(執筆時点 Buster)における方法を紹介したものです。
Stable(執筆時点 Stretch)で以下の手順を実行すると、システムが破壊される可能性があります。
必ず,お使いのブランチが Testing であることを事前に確認してください。
  1. unstable のレポジトリを追加
    # vi /etc/apt/sources.list.d/10-unstable.list
    
    deb http://http.debian.net/debian unstable main
    

     

  2. Default-Release を設定
    # vi /etc/apt/apt.conf.d/10default-release
    
    APT::Default-Release "testing";
    

     

  3. firefox と firefox-l10n-ja をインストール
    # apt update
    # apt install -t unstable firefox firefox-l10n-ja
    

     
    以上で最新の Firefox がインストールされました。

今の最新版は 60.0.1,検証期間が完了して Debian レポジトリの Firefox ESR が 60.2 に置き換わるまでにはしばらく時間がかかりますが,これでもう安心です。もっと早く気づくべきだった

なお,Debian Mozilla team APT archive ページを見るに,このやり方を stable で実行することは推奨されないようです。実際に試してみると,なぜか libc6 等にまで依存関係があり巻き込んでアップデートしてしまうようで,たしかにこれはよくないです。stable ではおとなしく firefox-esr を使うか ~/ にバイナリを置くかするようにした方がよいかと思われます。

以下は自分用メモ(読まずにコピペしないこと!)

echo "deb http://http.debian.net/debian unstable main" > /etc/apt/sources.list.d/10-unstable.list; echo "APT::Default-Release "testing";" > /etc/apt/apt.conf.d/10default-release; apt update; apt install -t unstable firefox firefox-l10n-ja