暇なので、手元にあるノートPCのほぼすべてにLinux Mintを導入して遊んでいる。MacBook Air に関する情報がネット上に多くないので、自己メモしておく。

MacOS内蔵のディスクユティリティを使って、内蔵SSDのパーティションをまず縮小しておく。自分の場合は元々の120GBのSSDを512GBに換装して、まだまだ十分の容量が余っているから、160GBをLinuxのために空けておく。

Linux MintのイメージISOファイルを公式サイトからダウンロードし、外部USBや外部SDカードに書き込む。外部SDカードを使う場合に、外部SDカードリーダが必要で、100円ショップから買えばよい。ISOファイルを書き込む無料ソフトとして、etcher (balena社)が有名で、https://www.balena.io/etcher/ から入手しよう。

そして、外部USBまたは外部SDカードリーダを差し込み、MacBook Airをリセットして、Optionキーを押しながら起動させ、Linux Mintの入っているデバイスを選ぶ。

Linux Mintのインストールでは、キーボードとして、英語(Macintosh)を選ぶ。自分のMacBook Airは英語キーボードだから。

途中のOSインストール画面において、一番下の「その他」という選択肢を選び、パーティションを編集する。ファイルシステムをext4、フォーマットをチェックし、マウントポイントを「/」にする。また、ブートローダのインストール先として、上で選んだパーティションを選ぼう。

インストール過程での他の処理はふつうのPCと同じ。

Optionキーを押しながらMacBook Airを起動すると、MacOSを立ち上げることができる。Optionキーを押さないで、ふつうに起動したらLinux Mintの起動になる。

また、ドライバの更新を勧めてくれるが、更新すると画面表示ができなくなるようだ。自分のMacBook Airだけかもしれないが、インストールした状態のままで、余分のドライバを入れないほうが良さそう。

キーボードのファンクションキーの機能について、「fn」キーを押さないときはファンクションキー、押したときは各種機能キー(音量調整や画面の明るさ調整等)として機能させるには、以下の設定でうまくいく。

root権限で、以下のファイルを作成しておく。

ファイルの中身はつぎのとおり。

そして、システムファイルを作成しなおす。

以上によって、リセットしてもファンクションキーの機能は設定したとおりになる。

そのほかに、英語キーボードなので、「半角/全角」キーはないが、スペースキーの右となりにある「Command」キーで代用することができる。

また、MacOSではタブーと言われるDeleteキーの追加についても、F12キーで代用することにした。以下はそのためのXmodmapファイル。96はF12キーのキーコード。勿論、Fnキー+BackSpaceキーでもDeleteキーの役割を果たす。

そして、「システム設定」にある「Startup Applications」に以下を追加する。ただし、Commandというところのxxxはユーザ名。

名前: Assign F12 as Delete Key
Command: /usr/bin/xmodmap /home/xxx/.Xmodmap
Comment: DeleteキーをF12で代用
起動遅延時間: 5秒

さらに、CapsLockキーをCtrlキーとして使えるのは自分にとって嬉しいので、「システム設定」「キーボード」「レイアウト」「オプション」「Ctrl Position」の順に辿っていけば設定可能。

このように、システムフォントのサイズや、キーボードの割当を自分の好みに応じてどんどんカスタマイズできるところはLinux Mintのよいところ。MacOSは制限がきついし、本MacBook Airのように約9年前購入の機種が最新OSに見捨てられたことも戴けない。

MacOSにサポートされず、Windowsで使っていた外部LANアダプターが動いたことにも感動。

最後にシステム情報を載せておく。

MX LinuxにConky Toggleというソフトによる日付とシステム情報の表示があり、それをLinux Mintに導入してみた。導入環境は Linux Mint 19.3 Tricia、機種は Thinkpad X240。

まずはパッケージをOSにインストール。

$ sudo apt-get install conky-all

つぎに、conkyが自動起動になるように、「システム設定」の「Startup Applications」を起動して、つぎのような項目を「+」で追加する。

名前は Conky
Command /usr/bin/conky
Comment 適当
起動遅延時間 適当(たとえば10秒)

そして、設定ファイル ~/.conkyrc を以下の通り作成する。

設定ファイルによって表示される情報は下図。

ロード平均値、CPU 4スレッドの使用率、使用周波数、メモリ使用率、バッテリーの充電率、日付時刻。

X240のCPUはCore i7vpro、内蔵メモリ8G、内蔵バッテリー2基。CPU情報やメモリ情報はほとんど意味ないが、ロード平均値とバッテリー容量が自分にとってとても大事。

ログアウト・ログインして、あるいは再起動すれば、ディスプレイの右下に表示されるはず。リフレッシュ間隔は3秒。

数台のPCを使っているので、忘れないようにメモしておく。

<Visual Studio Codeに入れた拡張機能>

Visual Studio Code(Linux内での正式プログラム名は code、/usr/bin/codeがそのパス)がいま大人気のエディタになっている。拡張機能を自分のニーズに応じて入れられるところ(つまり拡張性の高さ)が人気の秘密かもしれない。自分の入れた拡張機能は以下の7つ。

  1. Japanese Language Pack for Visual Studio Code: メニュー等を日本語化してくれる。

  2. C/C++: C言語、C++言語のプログラムを書くので。

  3. Bracket Pair Colorizer: カッコのペアを異なる色で示してくれるので、認知性向上に貢献する。

  4. Trailling Spaces: 行末の余計なスペースを示してくれる。

  5. Code Runner: Visual Studio Code内で端末を開き、プログラムの実行を可能にしてくれる。入力の対応はしていないかもしれないので、なくてもいいかも。

  6. Markdown All in One: 書いたMarkdown形式の文書をプレビューしてくれる。

  7. Markdown PDF: 書いたMarkdown形式の文書をPDFやJPGにしてくれる。

<Linux Mintのショートカット機能>

いわゆるキー操作でいろいろなことをできるようにするもの。LinuxではWinキー(SuperキーとLinuxでは呼んでいる)がそれほど使われていない(昔のキーボードにはなかったキー)ので、統一して「Superキー+何か」にする。

  1. Super+C: 電卓(Calculator)の起動

  2. Super+D: Desktop

  3. Super+E: エディタ(Editer)の起動

  4. Super+F: ファイラー(Filer)の起動

  5. Super+G: 検索(Google。適当な頭文字がないので、Googleでごまかし。)実態は、Catfish(/usr/bin/catfish)の起動

  6. Super+L: 画面ロック(Lock、席を離れる時に有用)

  7. Super+M: ウィンドウの移動(Move。文字の倍率を高くした場合に、ウィンドウにあるボタンの一部がディスプレイの外に出ることがあり、そのときに備えたウィンドウの移動)

  8. Super+W: WWWブラウザの起動

  9. Super+P: スクリーンショット(起動するプログラム /usr/bin/gnome-screenshot --interactive)

  10. Super+S: システム設定(Setting。プログラム名 /usr/bin/cinnamon-settings)の起動

  11. Super+T: 端末(Terminal)の起動

  12. Super+V: Visual Studio Code の起動

  13. Super+⬅: ウィンドウを左のワークスペースに移動

  14. Super+➡: ウィンドウを右のワークスペースに移動

  15. Super+Shift+⬅: 左のワークスペースに移動

  16. Super+Shift+➡: 右のワークスペースに移動

その他、よく使われる他のものも記しておく。

  1. Alt+Tab: プログラムの切り替え

  2. Ctrl+Shift: 日本語や中国語、英語IMEの切り替え(Windows 10のようにWin+Space、あるいはMac OSのようにCtrl+Spaceにしたかったが、自分の力量ではできなかった)

やりたいことは難しくない。7人がMicrosoft Wordで書いたレポートを1冊の報告書にまとめる、それだけのこと。こういう需要は結構あると思われる。

問題は報告書の各ページに通し番号(ページ番号ともいう)をつけることができなかった。そんなバカな。自分もひとに頼まれたときに、最初はそう思った。Wordでつくったレポートでしょ、Wordにページ番号をつければいいでしょ、みたいな軽い気持ち。現場の知らないひとはだいたい自分の知識で物事を考える。難しいことを安易に、逆に簡単なことを難しく考えたりするものだ。

各レポート(それぞれのレポートの長さは50〜100ページ、全部で7本のレポート)に確かにページ番号はもともと付いていた。これらのレポートは2段組になっているが、ところどころに図表のために、1段組の箇所もけっこうあったりする。2段組と1段組のレイアウトを切り替えるためにWordではセクションで分割されている。つまり、同じセクションならすべてのコンテンツは2段組、あるいは1段組み。異なるセクションなら異なる段組でもOK。

セクションをレポートの作者たちが適当に作ったりしていた。おそらく最初は段組ごとにそれぞれひとつのセクションというものだったが、図表の削除や追加等の繰り返し作業によって、コンテンツのないセクションが沢山できあがってしまった。

ということで、すべてのレポートをWordでまとめて、ページ番号をつけようとしたら、通し番号にならない。前のセクションに続くページ番号を設定しても、そもそも前のセクションはコンテンツがないので、Wordの印刷画面に表示されない。Wordのアウトライン画面(あるいは下書き画面)でセクション区切りを削除すると、今度は2段組と1段組のレイアウトが崩れてしまう。こういうセクションが10以下の数であれば、時間をかけてなんとか処理できるかもしれないが、500ページを超える報告書にこういう問題のあるセクションが数百以上もあれば、私なら発狂してこういう仕事を拒否する。

仕方なく、考えた対応策とは、すべてのレポートはページ番号を削除して、それぞれをPDFファイルに保存しておき、PDFファイルをひとつに結合して、フッターとしてページ番号をつけることで報告書を完成させる。

Windows上なら、Adobe Acrobatというソフトがあれば、PDFファイルの結合や、フッター(あるいはヘッダー)をつけることは簡単。Linuxにそういうソフトはあるか、調べてみた。

Open-source jPDF Tweak ならできるとの情報あり!

では、やってみよう。

まず、jpdftweak.sourceforge.net から、

Binary download, Linux x64 version (Version 1.1, 7256 KB)

をダウンロードし、解凍する。つぎに、自分のLinux環境(Linux Deepin 15.11 desktop版)上のjavaバージョンを確認する。本プログラムはJava環境下で動くように作られているため。

README.txtではjava 5以上が必要とのことで、問題ない。いよいよ実行する。プログラムがインストールされたディレクトリから、コマンドとして、

を入力して、Enterキーで実行させる。jpdfweak.jarはダウンロードしたプログラムの本体。

立ち上がった画面で、Inputタブに切り替え、PDFファイルを読み込む。今回は実験でふたつをとりあえず読ませた。

画面説明:ファイルを読ませたところ

つぎに、タブWatermarkに切り替え、ページ番号の追加を選ぶ。番号の位置はページの下部中央とした。

画面説明:追加するページ番号とその位置

最後に、タブOutputに切り替え、保存するファイル名を設定しておき、画面右下の「Run」ボタンをクリックすれば、実行される。

出力ファイルに見事に通し番号がつけられたのだ。Adobe AcrobatのないLinuxでもそういうことは無料できる。オープンソースコミュニティに感謝!

なお、本記事で使っているMicrosoft Wordは2013バージョン。その後の新しいバージョンでは簡単にページの通し番号をつけることができるかもしれないが、試していない。

ノートPCにWindows以外に、各種Linuxディストリビューションを入れるのが好き。Fedora、CentOS、Ubuntu、Linux Mint、Linux Deepin等。好き嫌いの理由は多くデザインに由来する。個人的には Linux Mintがもっとも好きだが、Huawei Matebook 13のような高解像度ディスプレイ機種には今バージョンのLinux Mintは文字の大きさが別にして、ボタン等の非文字系は小さすぎて、自分にとっては使い物にならなかった。中国武漢(いまの新型肺炎ウィルス発祥の地)にある会社がつくったLinux Deepinを代わりに入れて使っている。

そういうことで、多くのOSを入れ替えた結果、ノートPCのUEFIを汚してしまった。以下はその一部。

hmbはノートPCにつけた名前。efibootmgrはLinux上のUEFIを管理するプログラムの名前。Linux Deepin上でも動く。Boot0001はWindows 10、Boot0002はLinux Mint用(すでにLinux Mintをインストールしたパーティションは削除したので、それを選んでもノートPCは立ち上がらない)、Boot0003はLinux Deepin用。Boot004は外付けMicro SDカード。Boot2001~2003は各種ハードウェア対応用。

なお、エントリーナンバー(上記のBoot0001等)の右隣りにあるアスタリスク(*)はそのエントリーが有効であることを意味する。Huawei MateBook 13はどういうわけか、Bootの順番を変えることは自分ではできなかった。仕方なく、最初のエントリーであるBoot0001(Windows10用)を無効化にしてある。そうすると、Boot0002も無効なので、Boot0003(Linux Deepin)が最初の有効エントリーとして立ち上がる。立ち上がった画面でLinux Deepinで起動するか、Windows 10を起動するか、選択すれば Windows 10を起動することもできる。

では、無用なエントリー Boot002 ubuntu を削除してみる。ネット記事では削除できるかできないかはノートPCの製造メーカー(正確にはUEFIメーカー)に委ねられているとか。

結果的にうまく削除できたようだ。削除するまえに、削除対象のエントリーを無効化しないといけない、みたいな説明がネット記事にあったが、自分の場合にすでにBoot0002が無効化になっていたので、削除できたのかもしれない。

なお、エントリーを無効化するコマンドは以下の通り

これで、きれいなUEFIに戻った。めでたしめでたし。

ちょっとしたことで、MacBook Air(以下MBAということにする)のOSを再インストールすることになった。自分にとって、初めての経験だったので、自己メモしておく。2度とやることはないかもしれないが。

ますは機種の確認。購入時期は平成23年1月、CPU Intel Core 2 Duo 1.6GHz、メモリ4GB 1067MHz DDR3(基板への直付けとのことのようで、交換できないらしい)、ストレージ120GB SSD SATA、英語キーボード。ACアダプターは電圧14.5V/3.1A(45W)。機種は MacBook air 11インチ Late 2010 と呼ばれるようだ。

プロキシ接続なしのネット環境下で、MBAを起動し、速やかにキー Shift+Option+Command+Rを、回転する地球儀が表示されるまで押し続ける。

数十分のダウンロードタイムを経て、やっとインストール画面が表示される。内蔵のSSDディスクの内容を消去して、OSをインストールする。OSのバージョンはMAC OSX 10.7 Lion。Apple ID、パスワードを入力したら、他のMACデバイス(自分の場合はiPhone)に6桁の認証コードが表示される。この6桁のコードをもう一度MBAにて、パスワードの後に入力して、Apple IDとパスワードの入力を完了させる(ということで、2回の入力になる。1回目はふつうのパスワード、2回目はパスワード+6桁認証コード。)

OS Lionのインストールが完了したら、MBAが使えるようになる。そこで、ソフトAppストアを起動し、購入履歴から、OSX Yosemiteにアップデートしていく。失敗談として書いておきたいのは、LionのつぎにいきなりOSX 10.11 El Capitanをアップデートしてみたところ、見事にインストール不可を食らった。数十分のダウンロード+数十分のインストールの最後にそういう表示が出てしまい、アップル社の技術なさを恨んでしまった。結局、もう一度最初から、Lionの再インストールからやり直した。

そういうことで、Lion → Yosemite → El CapitanとひとつひとつOSをアップデートしていく。所要時間は数時間以上。急ぐ場合にやれることではない。