Firefox に Tridactyl をインストールしてとりあえずの設定
タイトルの通り Firefox 76 に Tridactyl をインストールして設定まで行う。
farewell, vimperator
Vimperator が使えなくなって久しい。一時期は本当にはまってプラグインも色々使ってカスタマイズしていたのだが、Mac の新規インストールを機にとうとうブラウザの更新を止めたまま Vimp を使い続ける姿勢を解いた。前にも書いたが 2020 年まで使っていた人はもう本当に少ないんじゃないかと思う。
ブラウザの操作をエディタの Vim ライクに行うことができるこの拡張。j,k,l,m のキー入力でのブラウジングに、f キーを押下するとリンクにアルファベットが表示されそれに従ってジャンプできる Hit-a-Hint、それらによりキーボード操作による Web 閲覧を可能にするものだったが、更新が止まって久しい。そこでもう何年も前から、Vimperator 代替として多くの拡張が Firefox および Google Chrome 用に出た。自分も当然色々と試した。
キーボード操作よりもマウス操作の方が早いという事実はわかっている。ただもう Vimp に慣れてしまって両手をホームポジションから動かすのがだるい。その悩みを解消する拡張は数点存在する。ただそれだけじゃないんだ自分にとっては。設定ファイルによる細かい自分好みの設定、有志による豊富なプラグイン、非力な自分にだってちょっと頑張れば JavaScript によるカスタマイズが可能。それに適うものがずっと見つけられなかった。たまに「vimperator から○○に乗り換えました」みたいな記事を見つけては、違うそうじゃないんだと勝手に落胆するということを繰り返していた。しかしそのまま数年が経過し、いよいよ環境を新しくしようというこの段でもう一度しっかり探し直した。vimperator-labs には代替拡張が書かれている。
vimperator/vimperator-labs: Vimperator
候補として次の2つの拡張に絞った。
参考にした記事。
Vimperatorの代替をVim VixenにすべきかTridactylにすべきか - 遠い叫び
結論を言うと Tridactyl に落ち着いた。理由は単純で、「いじれそうだから」。
Tridactyl をローカルでビルドしてインストール
色々やりたいので GitHub から clone してインストールする。
tridactyl/tridactyl: A Vim-like interface for Firefox, inspired by Vimperator/Pentadactyl.
$ git clone https://github.com/tridactyl/tridactyl.git
ビルドの流れは readme の通り。
$ cd tridactyl
$ yarn install
$ yarn run build
build ディレクトリが作成されるので、その中のファイルを全て選択し圧縮、拡張子を .xpi に変更 ( tridactyl.xpi とする ) 。 自分で作成した Add-on をインストールして利用する方法は2通り1。
- 一時的なアドオンとして読み込む
- パッケージ化して署名、もしくは未署名のアドオン許可の設定をして読み込む
手間が少ない前者を使う。アドレスバーに以下を入力し デバッガー画面を開く。
about:debugging
【一時的なアドオンを読み込む】から先程の【tridactyl.xpi】を選択。Tridactyl のチュートリアルが開けばOK。
使い方
f キー押下で Hit-a-Hint。表示されるアルファベットを入力するとリンク先へ遷移。f に ⇧shift キーを加え F を入力すると新規タブで開くヒントモードに。 コマンドも Vim と同様、: を入力するとコンソールが開く。その他チュートリアルはヘルプコマンドで確認可能。
:help
Native messenger のインストール
Tridactyl の機能をさらに拡張する。WebExtension だけでは実装できない機能を、Native Messenger App を経由して可能にする。2
参考
Tridactyl のコマンドで以下を実行。
:nativeinstall
クリップボードにインストール用コマンドがコピーされるので、シェルで実行する。完了後、Tridactyl で次のコマンドを実行しインストール済みのメッセージが出ればOK。
:native
# Native messenger is correctly installed, version X. X. XX
これで source なんかのコマンドが効くようになる。
Tridactyl の設定
Vimperator と同じ要領で、ホームディレクトリに【.tridactylrc】を置く。
$ touch ~/.tridactylrc
このファイルに設定を書いていく。Vimp のときのファイルから必要最低限だけ移行した。
~/.tridactylrc
" 基本設定 general config "============================================================================== colorscheme sweets set smoothscroll true set scrollduration 100 set allowautofocus false " キーマップ Key Mapping "============================================================================== " for TreeStyle Tab " keymap j k " keymap k j bind J tabprev bind K tabnext " for US Keyboard keymap ; : keymap : ; " disabling bookmark-add keymap A <Nop> bind / fillcmdline find bind n findnext 1 bind p findnext -1 bind ,<Space> nohlsearch " default scroll is a bit much bind j scrollline 5 bind k scrollline -5 " use <C-[> as <Escape> bind --mode=normal <C-[> composite mode normal; hidecmdline bind --mode=insert <C-[> composite unfocus | mode normal bind --mode=hint <C-[> hint.reset bind --mode=ex <C-[> ex.hide_and_clear " use clipboard " unbind --mode=normal y " command yy clipboard yankshort " command yt clipboard yanktitle " command ym clipboard yankmd unbindurl www\.tumblr\.com j unbindurl www\.tumblr\.com k unbindurl www\.tumblr\.com l unbindurl www\.tumblr\.com r unbindurl b\.hatena\.ne\.jp j unbindurl b\.hatena\.ne\.jp k unbindurl b\.hatena\.ne\.jp o
コメントアウトしているところは調整中。まだ全然荒い。主な設定としては
- J, K でのタブ移動を Tree Style Tab に合わせて上下を直感的に
- ページ内検索結果を n, p で言ったり来たり
- デフォルトの j, k スクロールはちょっと大幅なので調整
- デフォルトでキーショートカットが用意されている Web サイトではキーをエスケープ
などなど。
カラースキームの作成
Tridactyl にはデフォルトでいくつかのカラースキームが用意されており、次のコマンドで変更できる。
:colorscheme hogehoge
もしくは設定ファイルに次の記述をする。上ではもう追加してるけど。
colorscheme hogehoge
デフォルトで用意されているのは次の数点。
tridactyl/src/static/themes at master · tridactyl/tridactyl
アピアランスは大事。表示されるコマンドやヒントが小さくて見にくいようでは使い物にならない。そこで自分で用意する。
ところで Vimperator 時代にあった sweets というカラースキームをご存知だろうか。snaka72 さんが作成されたように記憶しているが、自分はこれに opacity オプションを加えてプロンプト部分を半透過にしたりして使わせてもらっていた。それに近いものを再現する。
tridactyl ディレクトリ内に新テーマ【sweets】を作成。
$ cd src/static/themes/
$ mkdir sweets
$ cd sweets
$ touch sweets.css
:root.TridactylThemeSweets { /* Generic */ --tridactyl-font-family: monospace; --tridactyl-font-family-sans: sans-serif; --tridactyl-font-size: 14pt; --tridactyl-small-font-size: 14px; --tridactyl-bg: white; --tridactyl-fg: black; --tridactyl-logo: url("data:image/png;base64,REPLACE_ME_WITH_BASE64_TRIDACTYL_LOGO"); /* Mode indicator */ --tridactyl-status-font-family: var(--tridactyl-font-family); --tridactyl-status-font-size: var(--tridactyl-small-font-size); --tridactyl-status-bg: var(--tridactyl-bg); --tridactyl-status-fg: var(--tridactyl-fg); --tridactyl-status-border: 1px lightgray solid; --tridactyl-status-border-radius: 2px; /* Search highlight */ --tridactyl-search-highlight-color: yellow; /* Hinting */ /* Hint character tags */ --tridactyl-hintspan-font-family: var(--tridactyl-font-family-sans); --tridactyl-hintspan-font-size: var(--tridactyl-small-font-size); --tridactyl-hintspan-font-weight: bold; --tridactyl-hintspan-fg: LightYellow; --tridactyl-hintspan-bg: DarkOrchid; --tridactyl-hintspan-border-color: ButtonShadow; --tridactyl-hintspan-border-width: 0px; --tridactyl-hintspan-border-style: solid; /* Element highlights */ --tridactyl-hint-active-fg: Black; --tridactyl-hint-active-bg: rgba(0, 0, 0, 0.7); --tridactyl-hint-active-outline: 1px solid DarkOrchid; --tridactyl-hint-bg: Pink; --tridactyl-hint-outline: 1px solid #8f5902; /* :viewsource */ --tridactyl-vs-bg: var(--tridactyl-bg); --tridactyl-vs-fg: var(--tridactyl-fg); --tridactyl-vs-font-family: var(--tridactyl-font-family); /*commandline*/ --tridactyl-cmdl-bg: rgba(0, 0, 0, 0.7); --tridactyl-cmdl-fg: LightYellow; --tridactyl-cmdl-line-height: 1.5; --tridactyl-cmdl-font-family: monospace; --tridactyl-cmdl-font-size: 14pt; /*completions*/ --tridactyl-cmplt-option-height: 1.4em; --tridactyl-cmplt-fg: LightYellow; --tridactyl-cmplt-bg: rgba(0, 0, 0, 0.7); --tridactyl-cmplt-font-size: 14pt; --tridactyl-cmplt-font-family: monospace; /* i don't think 0.5px is redered */ --tridactyl-cmplt-border-top: 1px solid grey; /* need a better way for naming variables * - .Properties for .HistoryCompletionSource table - .Properties for .BmarkCompletionSource table */ /*sectionHeader*/ --tridactyl-header-first-bg: rgba(146, 24, 146, 0.7); --tridactyl-header-second-bg: rgba(146, 24, 146, 0.7); --tridactyl-header-third-bg: rgba(146, 24, 146, 0.7); /* eg. What if I dont want liner-gradient as bg? * * :root .sectionHeader { background: blue; } * * ???? */ --tridactyl-header-font-weight: bold; /* i don't think 0.5px is redered */ --tridactyl-header-border-bottom: 1px solid bottom; /*url style*/ --tridactyl-url-text-decoration: none; --tridactyl-url-fg: LimeGreen; --tridactyl-url-bg: rgba(0, 0, 0, 0); --tridactyl-url-cursor: pointer; /*option focused*/ --tridactyl-of-fg: var(--tridactyl-fg); --tridactyl-of-bg: rgba(255, 236, 114, 0.7); /*new tab spoiler box*/ --tridactyl-highlight-box-bg: #eee; --tridactyl-highlight-box-fg: var(--tridactyl-fg); --tridactyl-private-window-icon-url: url("chrome://browser/skin/privatebrowsing/private-browsing.svg"); --tridactyl-container-fingerprint-url: url("resource://usercontext-content/fingerprint.svg"); --tridactyl-container-briefcase-url: url("resource://usercontext-content/briefcase.svg"); --tridactyl-container-dollar-url: url("resource://usercontext-content/dollar.svg"); --tridactyl-container-cart-url: url("resource://usercontext-content/cart.svg"); --tridactyl-container-circle-url: url("resource://usercontext-content/circle.svg"); --tridactyl-container-gift-url: url("resource://usercontext-content/gift.svg"); --tridactyl-container-vacation-url: url("resource://usercontext-content/vacation.svg"); --tridactyl-container-food-url: url("resource://usercontext-content/food.svg"); --tridactyl-container-fruit-url: url("resource://usercontext-content/fruit.svg"); --tridactyl-container-pet-url: url("resource://usercontext-content/pet.svg"); --tridactyl-container-tree-url: url("resource://usercontext-content/tree.svg"); --tridactyl-container-chill-url: url("resource://usercontext-content/chill.svg"); --tridactyl-container-color-blue: #37adff; --tridactyl-container-color-turquoise: #00c79a; --tridactyl-container-color-green: #51cd00; --tridactyl-container-color-yellow: #ffcb00; --tridactyl-container-color-orange: #ff9f00; --tridactyl-container-color-red: #ff613d; --tridactyl-container-color-pink: #ff4bda; --tridactyl-container-color-purple: #af51f5; --tridactyl-externaledit-bg: var(--tridactyl-logo) no-repeat center; }
default.css をベースに手を加えた。多分余計なこともたくさん書いてる。
この状態で再度上述の手順でビルド、インストール。
~/.tridactylrc 、もしくはコマンドで作成したテーマを読み込む。こんな感じになる。
statuspanel を非表示にする
リンクにカーソルオーバーするとリンク先の URL がブラウザ左下に表示されるが、これが tridactyl のコマンドと重なってしまって見にくいので、userChrome.css を用いて隠す。
まず userChrome によるカスタマイズを可能にする。アドレスバーに以下を入力。
about:config
toolkit.legacyUserProfileCustomizations.stylesheets を true に。
続いて userChrome。最近の Firefox では次を使わせてもらう。
$ git clone https://github.com/alice0775/userChrome.js.git
README に従ってプロファイルフォルダ内に chrome フォルダを作成し、userChrome.xml、userChrome.js をダウンロードして保存、さらに userChrome.css を作成。UTF-8 BOM 無しテキストにする必要がある点だけ注意。わからなければ CotEditor なんか使うと良い。
userChrome.css
toolbarbutton#alltabs-button { -moz-binding: url("userChrome.xml#js"); }
#statuspanel[type="overLink"] #statuspanel-label
{ display: none !important; }
Firefox を再起動すれば完了。
今後
ここまでやってだいぶ昔の環境が戻ってきた感じがあるものの、まだまだやりたいことは色々ある。
- JavaScript で操作されたテキストフィールドが入力不能になることがあるので解消したい。はてなブログの HTML 編集画面とか CSS 編集画面とかああいう箇所。
- J,K でのタブ移動だけでなく、<,>で閲覧タブ履歴を辿るとかやりたい。
- そもそも J,K でのタブ移動の挙動が未だに少し掴めない。単純に上下の移動なのか、閲覧履歴なのか、開いた履歴なのか、挙動からだけだと不明瞭。時間が作れたらコード読もうと思う。
- ヤンク周りが上手く動作しない。ページのURL、ページのタイトル+URL のコピーとかをストレスなくやりたい。rc ファイルに書いてるけど上手くいってない。
色々いじっていこうと思う。
Firefox 76 セットアップ
メインの Web ブラウザとして使う Firefox をセットアップする。現時点のバージョンは76。
様々な Add-on をインストールするけど自分の中で必須なのが以下。
- Vimperator 代替
- Vim Vixen と Tridactyl を両方試して Tridactyl に落ち着いた
- Tree Style Tab
- Add-Block
- AutoPagerize
他にも数点入れた Add-on を記録しておく。また Tridactyl についてはやることが多いので次回の記事にする。
Tree Style Tab
Tree Style Tab - ツリー型タブ – 🦊 Firefox (ja) 向け拡張機能を入手
開いているタブを縦に並べて表示、親タブと子タブによる階層管理ができ一覧性もよく非常に便利。自分は多いときはタブを50〜100超開くので、横に並んで幅の短いタブではとてもじゃないが使えないし、多段タブでも心もとない。そこでこれ。
タブを開く・閉じるときの挙動やコンテクストメニューの内容まで細かく設定できる点も良い。「このタブの子タブをすべて閉じる」なんかの設定を有効にする。
Add-Block
AdBlocker Ultimate – 🦊 Firefox (ja) 向け拡張機能を入手
広告排除。
weAutoPagerize
weAutoPagerize – 🦊 Firefox (ja) 向け拡張機能を入手
表示している Web サイトの「次のページ」を自動で下部に挿入してくれる。Google 検索結果なんかでも活躍。
類似 Add-on もいくつか試したが今の所これ。
DeepL / MultiTranslate
DeepL / MultiTranslate – 🦊 Firefox (ja) 向け拡張機能を入手
高精度翻訳、DeepL を利用するための拡張機能。UI はあまり好きじゃないけどとりあえず使えれば良い。
Stylus
Stylus – 🦊 Firefox (ja) 向け拡張機能を入手
ユーザースタイル作成・管理ツール。そんなに使わないけどちょっとした CSS テストに。
つづく
記事がキツネだらけになった🦊
macOS 10.15 Catalina 開発環境構築
よく使うアプリケーションが整ったので、次はプログラミング環境。
ローカル開発環境
Google Chrome
最初に入れた Firefox に加えて。Homebrew Cask で入れた。
$ brew cask install google-chrome
VirtualBox
仮想 PC ソフト。Homebrew Cask で。
$ brew cask install virtualbox
エディタ
Vim と MacVim-Kaoriya
プログラミング用エディタ
$ brew install vim
GUI フロントエンド 兼 日本語環境用調整済みツールとして MacVim-KaoriYa。
というか前回の記事で書いてた…けど KaoriYa のこともあるしいいか。
Git
tig
Git の CUI クライアント。
$ brew install tig
GitKraken
Free Git GUI Client - Windows, Mac, Linux | GitKraken
Git のデスクトップクライアント。UI がおしゃれ。
その他
anyenv
anyenv/anyenv: All in one for **env
~env 系 (rbenv や pyenv など、環境を複数バージョン管理するツール)を管理するツール。
$ brew install anyenv
必要な設定としては、シェルの設定ファイルに次を追加する。自分は ~/.zshenv
PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
環境ファイルを読み込んだ後、指示通りのコマンドを実行。
$ source ~/.zshenv
$ anyenv install --init
やることは rbenv なんかと変わらない。ただ *env の類いが先に入ってる場合は注意。
rbenv などをインストール済みで、新たに anyenv で管理したいということであれば、もとのものをアンインストール、シェルの設定ファイルに書いたそれらを使うためのパス設定などを削除、改めてanyenv でインストールすれば良い。
nodenv
nodenv/nodenv: Manage multiple NodeJS versions.
node.js の管理。
$ anyenv install nodenv
$ exec $SHELL -l
正しく入ったか確認。
$ nodenv -v
インストール可能なバージョンを確認。
$ nodenv install -v
任意のバージョンをインストール。
$ nodenv install X.X.X
$ nodenv rehash
インストール済みのバージョンを確認。
$ nodenv versions
使用するバージョンを任意に変更
$ nodenv global X.X.X
パスが $HOME/.anyenv/~ になってればOK
$ which node
/Users/sso775/.anyenv/envs/nodenv/version
yarn
JavaScript パッケージマネージャ。
$ brew install yarn
絵文字がかわいい。
今後
使用検討していく。
- Vargant
- Virtualbox の OS イメージ管理補助
- Neovim
- ナウいらしい
- ずっと使っていなくて .vimrc もごちゃごちゃになりすぎている。整理したい気持ちがある。
Mac (10.15 Catalina) に取り急ぎいれたアプリケーション
前回の 初期設定 に続き必要なアプリケーションをインストールしていく。前回の内容はクリーンインストールした macOS Catalina をとにかく最低限動くまでという感じ。今回は日常的に使うアプリケーションを入れていく。
普段使うのに必須だと感じていたり、昔のアプリケーション紹介サイト運営時の経験から最近はあまり使わなくなっても好きなアプリケーションとか。色々インストールしてく。
ユーティリティ
Alfred
Alfred - Productivity App for macOS
多機能ランチャー。
自分は Homebrew Cask でインストールした。
$ brew cask install alfred
Mac OS X 10.7 Lion から搭載された Launchpad により、アプリケーションへのアクセス、起動がかなり楽になりました。しかしながらやっぱりキーボードランチャーはほしい。
昔は高機能な QuickSilver 派だったが、今はもうそこまでは良いかなという感じ。Alfred では Powerpack を購入すればよりパワフルな動作が期待できるけど、無料の標準装備でも十分使える。
ホットキーは ⌥option + space を割り当て。入力するとテキスト入力フィールドが現れ、そこからアプリケーションの起動だけでなく、ファイルやフォルダへのアクセス、Web サイトでの任意のワードでの検索など、簡単に使える機能だけでも多岐に渡る。
- ⌥ + space → app~ で App Store 起動
- ⌥ + space → vlc でVLC 起動
- ⌥ + space → applica~ でアプリケーションフォルダを開く
- ⌥ + space → goolgle hogehoge で Google で hogehoge と検索
- ⌥ + space → youtube fugafuga で YouTube で fugafuga と検索
など、自分で設定したホットキーで様々なアクセスが可能になる。慣れると Launchpad 起動のトラックパッドジェスチャをしに右手を動かすのすら面倒になる。さらに Mac のロックやゴミ箱を空にする操作など、システムへのアクセスも可能。
AppCleaner
アプリケーションのアンインストーラー。
10年ほど前に自分が Mac を使い始めた頃から、「アプリケーションのアンインストールはゴミ箱に入れるだけです」なんてオフィシャルに言われていたりしたけど、アプリケーションの設定や使用情報などはライブラリフォルダに残ったりしている。その関連ファイルまでまとめて削除することができる。それこそ10年以上使い続けている。
アプリケーションファイルをドラッグ・ドロップすると関連ファイルとパスが表示される。名前で引っ張ってきているっぽいので一応余計なものを連れてきていないか確認して削除。
ClipMenu
ClipMenu.com: クリップボード管理ソフト - ClipMenu.com
クリップボード履歴管理アプリケーション。この類いのアプリケーションもかなり増えたけど、使い慣れたこれをずっと使っている。あまり高機能のものはいらない。
メニューバーに常駐して動く。
ホットキーに ⌘command + ⇧shift + v を割り当て。通常のペースト ⌘command + v に ⇧shift を加えることで、これまでのコピー履歴が表示され呼び出すことができる。
ここで前回の記事の Karabiner-Elements の設定とのコンビが最強。手を動かすことなく、Caps Lock キーを押しながら h/j/k/l の vim 風操作で履歴を再利用することができる。クリップボードの履歴を辿る機能は絶対にほしいしその操作性の良さに慣れると手放せない。
Disk Inventory X
ディスク内データ量可視化アプリケーション。データの整理に。
こんな感じでディスク内で占めるデータ量の割合に合わせて、ディレクトリの大きさをタイル状に可視化してくれるアプリケーション。
類似アプリに GrandPerspective というのもあるけど、自分は使い慣れた Disk Inventory X を使っている。
アーカイバ
MacWinZipper
Mac, Windows 間の zip ファイルのやりとりを快適に。
Mac で zip ファイルを作成し Windows で解凍をするとファイル名の文字化けや不要なファイルの紛れ込みが起こる。そこをこのアプリケーションを使って圧縮を行うことでそれを回避できる。
使い方もファイルをまとめてドラッグ・ドロップするだけと単純明快。
The Unarchiver
The Unarchiver | Top Free Unarchiving Software for macOS
多様なファイルを解凍する。
zip だけでなく、rar や lhA, 7-zip など様々なタイプの圧縮ファイルを解凍する。
テキストエディタ
CotEditor
CotEditor -Text Editor for macOS
Homebrew Cask でインストールした。
$ brew cask intall coteditor
シンプルながらシンタックスハイライトや設定の幅広さなどから昔から広く愛用されているプレーンテキストエディタ。
動作の軽快さとは裏腹にその動作はパワフル。シンプルなテキスト編集ツールとしてもアウトライン機能や Markdown 対応など頼もしく、シンタックスハイライトも幅広いプログラミング言語に対応しておりちょっとしたソース確認なんかにも使えるかなり使えるやつ。
nvALT
いつでも簡単に呼び出せる軽量ノートアプリ。Evernote は要らない (昔使ってたけど) 。これも Homebrew Cask でインストールした。
$ brew cask install nvalt
Notational Velocity というアプリケーションから派生したアプリケーション。その軽量さがウリで、用途の範囲としてはスティッキーズ的なちょっとしたメモからそこそこ分量のあるテキストをまとめるノートとして。
画像は Markdown で書いたテキストを右でプレビュー表示しているところ。
個人的な惚れポイントとしては、ノートの共有アプリ Simplenote との連携機能と、ホットキーでの起動機能の 2 点。常時起動させてメニューバーに常駐しているが、ホットキーに ⌘command + ⇧shift + return を設定しており、キー入力でトグルできる。そこに残したメモやテキストは、iPhone アプリと同期されて出先でも確認できる。気楽に使えて本当に良い。
新規ノートを開始し、一行目に入力したテキストがノートのタイトルとして記録され、複数のノートを管理できる。また Markdown での書き起こしとプレビュー機能も持っており、はてなブログの記事起こしにも使える。
ずっと使ってきたけどこれを機に調べてみたところ nvALT の次期プロジェクトとして nvUltra というのが始まってるらしい。
Codename: nvUltra - BrettTerpstra.com
ダウンローダ
macOS Catalina から 32bit 非対応となり使っていた URLcollector, Getter1 は非対応…。
SiteSucker
Web サイトをまるごとダウンロード。
期間限定公開 Web サイトだったりするコンテンツを手元に保存しておきたいときなどに。
対象 Web サイトの URL をコピペしてダウンロード先を指定するだけ。
ファイル共有
Dropbox
オンラインストレージ兼ファイル共有。知らん間に無料だと端末 3 台までになってたんですね…。
Homebrew Cask からインストールした。
$ brew cask install dropbox
SNS・コミュニケーション
夜フクロウ
Twitter も10年以上やっていると本当に色んなことがありました。Favstar/ふぁぼったーの終焉、UserStream 廃止、Twitter ドラマなんてのもありましたね。Timeline タブから正規表現でエアリプを拾って fav とかやってたな…。
昔ほど熱心に TL を追ってないけど、愛着と信頼を寄せて使っているクライアントアプリ。
Twitter Web にしても iPhone 公式アプリにしてもそうだけど、表示順は時系列じゃないわ要らん広告がんがん出してくいるわみたいな UI のツールを使う気はさらさら起きない。
LINE
コミュニケーションツール。特に言うことない。
メディア ( 画像・動画・音楽)
VLC
オープンソースの万能動画再生アプリケーション。これさえ入れておけば動画再生で困ることはない。幅広い拡張子、コーデックに対応。
オープンソースのベストなプレイヤー VLCメディアプレイヤーのオフィシャルダウンロードです。 - VideoLAN
MPlayerX
軽快に動くシンプルな動画プレイヤー。動作は軽く、ウインドウを縁取るベゼルもなく、ファイル名の連番を検知して自動再生してくれるなど、一番使っている動画再生アプリ。これで再生できなければ VLC を使うという感じにしている。
どうでもいいけどローカライズがところどころつたなくてかわいい。これを Twitter でぼやいたら開発者からこれまたつたない日本語でリプライもらったことある。応援したくなった。
ffmpeg
動画コンバータ。お気に入りの動画を iPhone 用に変換したり。
GUI フロントエンドもあるけどコマンドラインで十分。Homebrew で入れる。
$ brew install ffmpeg
動画コンバート始めると iMac のファンが怖いくらいの音立てる…もう寿命も近いのだろうか…。
Seashore
画像編集ソフト。オープンソースソフトウェア GIMP の流れを組むソフト。以前はこれの更に派生の Leeshore を使っていて使い慣れたこっちが良かったけど、これも 64bit の波に…
Homebrew Cask で入れた。
$ brew cask install seashore
SimpleComic
Dancing Tortoise | Simple Comic
漫画閲覧用アプリケーション。用途は漫画に留まらず、多量の画像ファイルを連続して閲覧するシーンでいつも使える。
画像ファイルの入ったフォルダを丸ごと、もしくはまとめられた zip ファイルでも、SimpleComic のアイコンにドラッグ・ドロップするだけ。漫画のように縦長の画像であれば見開きで表示してくれたり。不安定になることもなく使いやすいツール。
Lyrics Master
Lyrics Master - iPhone / iTunes / iPod で歌詞を楽しもう!
再生中の楽曲の歌詞を Web から検索して登録。
Catalina になり iTunes がミュージックに生まれ変わった。iPhone での音楽再生の UI もこの数年で変化があり、歌詞表示のプライオリティは自分の中でも下がってきたけど、それでもほしい。
【ミュージック連携】を押せば再生中の楽曲の情報を取得し、歌詞掲載サイトから検索しデータをとってきてくれる。
TuxGuitar
.:: TuxGuitar ::. Open Source Tablature Editor :: TuxGuitar
ギター・ベース TAB 譜や五線譜の作成、MIDI 出力などが行えるオープンソースソフトウェア。使い方も簡単。
Mixxx
Mixxx - Free DJ Mixing Software App
DJ アプリ。iTunes ライブラリからの読み込みに対応。BPM 同期、エフェクト、DJ コントローラー対応など。
Homebrew Cask にある。
$ brew cask intall mixxx
出力用とヘッドフォンでのモニタリング用とサウンドチャンネルが双方あれば、その気になれば Mac のキーボードだけでもそれっぽいことをして遊ぶことができる。楽しい。
もちろん DJ コントローラーで操作することもできる。
現状若干日本語が文字化けする。
おわり
おわらないけど。長くなってしまったので Web ブラウザ、というか Firefox の設定と、開発環境は別枠にする…。
ここまでのものに加えて Apple 製のアプリケーションも入れる。
- Pages
- Numbers
- iMovie
- GarageBand
純正だし紹介は省く。
こうして見返すと昔からあるものばかりという感じがする。一番幅多く色々なアプリケーションを試していたのが10年とか前で、その頃から気に入って使っているものばかり。どうしても気に入ったアプリケーションを手放せない性格が出てしまって、OS が刷新されても昔のアプリケーションを探しにいってしまう。使い続けたいのに使えなくなってしまったアプリケーションもたくさんある。
今後も追加は多くありそうだけど、取り急ぎ思いついたものをインストールしていきながら列挙してみた。また今後変わっていくなかでこれは取り上げようと思ったものは書いていくかもしれない。
macOS 10.15 Catalina 初期設定
iMac がとりあえず動くようになったのでセットアップしていく。やることが多いので備忘録として残していく。
とは言っても、同じようなことをやったのはこの iMac 購入時である 2013 年とかなのでもう 7 年前。次にその必要性が出たときにここの情報がどこまで生きるかわからないけど。
大きな点としては知っていたけど macOS Catalina になり 32bit アプリケーションがすべて切り捨てられたので、多少の諦めをもってセットアップしている。
システム環境設定
まずはここから
- 一般
- 外観モードをダークに(初めてなのでやってみる)
- Dock
- サイズを調整してマウスオーバー時に拡大する設定に
- 最近使ったアプリケーションの Dock 表示を OFF に
- セキュリティとプライバシー
- 【一般】タブ スリープ解除のパスワード要求までの時間を 5 秒に
- キーボード
- あとで Karabiner 、Google IME なんかを入れるところで細かくやる
- 【キーボード】タブ リピートの速度と認識時間を最速・最短に
- トラックパッド
- 【ポイントとクリック】タブ、【副ボタンのクリック】、【タップでクリック】などすべて有効に
- 【スクロールとズーム】タブ、【スクロールの方向: ナチュラル】にチェック
- 【その他のジェスチャ】タブ、全部有効に
- 日付と時刻
- 【時計】タブ、メニューバーへの表示を有効にして、秒表示、24h表示、曜日・日付表示を有効に
IME 周り
使用キーボードはイキって(シンプルなデザインが好きなので) US 配列キーボード。それに合わせてセッティングしていく。
Karabiner-Elements
キーボード入力を細かくカスタマイズするユーティリティアプリケーション。
Catalina では使う上でユーザーの承認が必要になったが、使っていく中でダイアログに従っていけば次のような設定に至る。
もしならなければ、必要ファイル【karabiner_grabber】と【karabiner_observer】が Application Support フォルダに入っているので、左下の鍵アイコンを解錠し自身で行えばいい。場所は以下。
/Library/Application\ Support/org.pqrs/Karabiner-Elements/bin/
初めにいらない子 caps lock キーを無効化する。具体的には Vim と Web ブラウザで酷使する ^control キーが US キーボードだと押しにくい場所にあるので、 caps lock キーも ^control キーとして使えるようにする。この設定に関しては、システム環境設定【キーボード】内、【修飾キー】からも行えるが、Karabiner-Elements で行う様々な設定との併せ方がややこしいので、Karabiner-Elements 内だけで行う。
【Simple modifications】タブ、【For all devices】内で From: caps_lock、To: left_control と設定。
次に【Complex modifications】タブ、【Rules】に好みのセッティングを追加していく。左下の【Add rule】をクリックすると標準搭載の設定例が表示され、そこになければ【Import more rules from the Internet (open a web browser) 】からブラウザ上で検索することができる。
設定したのは以下の通り。検索すれば出てくる。
- コマンドキーを単体で押したときに、英数・かなキーを送信する。(左コマンドキーは英数、右コマンドキーはかな)(rev 3)
- Quit application by holding command-q
- 通常 ⌘command + Q でアプリケーション終了だが、それを長押しにすることで誤終了を防げる個人的おすすめ設定の一つ。
- これの W バージョン(ウインドウを閉じる用)もあるけど自分はいいや
- Ctrl+p/Ctrl+n to arrow up/down
- Change Control + h/j/k/l to Arrows
- Map ctrl + [ to escape
ここまでの設定で、文字入力だけでも手をホームポジションから動かさずかなりストレスフリーに行えるようになる。カーソルの移動のために右手を大きく動かして矢印キーを触れにいく必要がなく、^control キーの代わりとなった caps lock キーを押しながら右手の h/j/k/l で Vim 風操作を実現できる。少し遠い esc キーも、Vim と同じように ^control (caps lock) + [ キーで効く。
Karabiner には他にも Mouse Keys と言ってキーボード入力でマウス操作まで実現する機能まである。昔は設定してたけど今回は見送り。
Google 日本語入力
macOS のリアルタイム変換がリリースされたときは驚いたけど、自分はこちら派。世の中で使われている語への変換力が高い方がストレスなく使える。
インストールして、システム環境設定、【キーボード】> 【入力ソース】から設定する。
ターミナル関連
iTerm2
iTerm2 - macOS Terminal Replacement
標準のターミナルでも良いかもしれないけど自分はずっとこれ。 ずっと真っ黒な背景に半透過で使ってたけど、なんとなく DarkOrchid くらいの背景色にしてみた。しばらく使ってみているけど、たまたま以前から tmux のステータスラインを Magenta にしていてそれに合うし、sweet な感じがちょっと気に入ってる。
Vim のペインはカラースキームで黒背景になってる。わかりやすくて良いかもしれない。
フォントは Ricty を設定するけどあとで入れる。
Homebrew
Mac 上で動作するツールの導入、管理を一元化できる便利なツール。これがあるとないとじゃかかるコストが全然違う。
以前は CUI ツール用って印象が強かったけど、最近じゃ Homebrew Cask と言ってデスクトップ上で使う GUI アプリケーションまで管理できる。
コマンドライン上で次のコマンドを実行してインストール。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
使い方は他に譲る。Homebrew が入ったら次のインストールコマンドでとりあえず最低限のツールをがしがしインストールしていく。
$ brew install hogehoge
覚えている範囲で次の通り。
zsh
なんか今は macOS 標準搭載のシェルが zsh らしい。けれどもこれまでの慣例通りインストール。
$ brew install zsh
tmux
ターミナルマルチプレクサ。ターミナルを仮想化していくことでセッションごとに管理、その中でペインを分割していったりすることで一つのターミナルの中で並列的に作業ができるようになる。
今じゃやらないけど、ssh でサーバーに接続して作業するときなんかにはすごく便利だし、ローカルでの作業だけでも慣れるとすごく便利。なので入れる。
$ brew install tmux
vim
エディタ。vim 好き。
$ brew install vim
git
言わずとしれたバージョン管理ツール。
$ brew install git
Ricty
フォント。同様に Homebrew で入れるけど若干コケた。Catalina へのインストールで起きる事象みたいだけど次の手順でインストールできる。
$ brew tap sanemat/font
$ brew install ricty
$ cp -f /usr/local/opt/ricty/share/fonts/Ricty*.ttf ~/Library/Fonts/
$ fc-cache -vf
dotfiles
~/local/dotfiles で管理して、シンボリックリンクをホームディレクトリに作成する運用をしている。無くなっていたら GitHub から持ってこれば良いかと思っていたが、~/local/ フォルダがまるごと残っていたので良かった。
同じように ~/local/dotfiles/ を配置して、下記の初期設定用スクリプトを実行。サーバ運用していたときのが残っていて楽で良かった。
dotfiles/setup.local.sh
#!/bin/bash
DOT_FILES=( .zlogin .zshenv .zshrc .zsh.d .vim .vimrc .gvimrc .emacs.d .screenrc .tmux.conf .tmux.conf.osx .irssi .gitconfig .gitignore.global )
for file in ${DOT_FILES[@]}
do
ln -s $HOME/local/dotfiles/$file $HOME/$file
done
mv $HOME/.tmux.conf.osx $HOME/.tmux.conf.local
screen も使ってないしもう irrsi なんて使わない気もするし整理しないと。
ウェブブラウザ
とりあえずでFirefoxだけ。
Firefox をダウンロード — 無料ウェブブラウザー — Mozilla
設定についてはまたのちの記事で。
iMac とにかく起動までの道のり
結論
それが Catalina の上手くいくはずのないインストールだと気付かずに「このやり方じゃだめだ」ってなって他の方法に切り替えるためにディスク消去とかしてたけど、もう一度別ディスクブートをしてインストールを続けさせるのが正解だった。わかるかいそんなん。
— sso775 (@sso775) April 27, 2020
ことの顛末
昨日の記事 に整理した方法をとにかく試した後、Apple サポートに電話で助けを乞う。
オペレーターと確認した前提とゴール
実機は iMac、使用していたディスクの状況は母艦と外付け HDD 2つがそれぞれ次のような状況。
Macintosh HD
Filesystem Size Used Avail Capacity
/dev/disk2 3.1T 2.3T 801G 75%
HDD1
Filesystem Size Used Avail Capacity
/dev/disk4s2 2.7Ti 2.6Ti 81Gi 98%
HDD2
Filesystem Size Used Avail Capacity
/dev/disk3s2 2.7Ti 1.2Ti 1.5Ti 44%
HDD1,2 はそれぞれ Timemachine Backup ではなく、Macintosh HD に入り切らないデータの退避場所となっている。 ゴールは macOS Catalina へのアップグレードの途中で起動しなくなってしまった Macintosh HD の中身がどうなっているかわからないが、その中から可能な限りデータを復旧し、バージョンは何であれ再度 Macintosh HD に OS をインストールすること。
初回の電話と方策その1
そこでオペレーターから最初に提案されたのは、比較的余裕のある HDD2 にパーティション( 50GB もあれば十分 ) を作り、復元モードを使ってそこに macOS をインストールするというもの
iMac ■■■■■■■■■■■■■□□ <- 破損
│
├─ HDD1 ■■■■■■■■■■■■■■□
└─ HDD2 ■■■■■■■□□□□□□□■
↑
ここに復元モードで OS をインストール
(伝われ…!)
通常の復元モードで開始
それぞれつないだ状態で、復元モード(⌘command + R 押下)で起動。ディスクユーティリティから HDD2 にパーティションを作る。形式は Mac OS 拡張ジャーナル。
フォーマットができたら OS インストールを選択、母艦で Catalina のインストール作業途中だったためか Catalina のインストールが始まる。インストール先で先程作成した HDD2 のパーティションを選択して開始。インストール作業はここから長時間かかるので電話はここで終えた。これでだめだったらインターネット復旧も試してみてくださいとのこと。
しばらく放置すると再起動が始まり、またインストールが再開。しかしそこからこれまで何度も試した通り止まってしまってダメだった。
インターネット復元モードで開始
インターネット復元モードのうち、最新の OS をインストールするモード(⌘command + ⌥option + R 押下)で起動。同様の手順を踏む。 同様に Catalina のインストールが始まり失敗。
次に工場出荷時の OS インストールを試みるモード(⌘command + ⌥option + ⇧shift + R 押下)で起動。 今度は El Capitan が出た。同じように始まるがやはり失敗。挙動が少し違って次のエラーメッセージだった。
インストーラーの有効期限が切れました。
これについても解決策は見当たらず諦めて翌日へ持ち越す。
2度目の電話と方策その2
エラーメッセージについて聞いてみたが要領を得なかった。原因としてなっとくいく説明は難しいらしい。 環境を聞かれたところ、インターネットが Wi-Fi 環境だが有線でやってみては、となんとなく苦しい提案…。
やれやれと思いながら LAN ケーブルを突っ込んで昨日と同じ作業をやってみるがどれも同じ結果に終わる。
3度目の電話と方策その3とその4
LAN ケーブルに差し替えたところでダメだった旨を報告。あと考えられる方法は、として HDD を新調する、とこれもまた行きあたりばったり的な提案を受ける。仕方ないのだろうか…。また別の方法として他の Mac を用意して、別ディスクへの OS インストールにそれを用いるという方法を提案された。なるほど確かに、iMac が調子悪くて別ディスクへのインストールも上手くできないのであれば別の Mac を使うのも手である。といったところでそんな高価な物いくつも持ってないわ、と終わる。
そして翌日、改めて考え、他の Mac ユーザーから Macbook Air を借りることに。またただでさえ自分の使用環境を見るとデータ置き場に余裕がない中だったので、HDDを新規に購入。HDD3 とする。
方策その3
まずこれまで試みた HDD2 へのインストールを、Macbook Air を使ってやってみる。
iMac ■■■■■■■■■■■■■□□ <- 破損
│
├─ HDD1 ■■■■■■■■■■■■■■□
└─ HDD2 ■■■■■■■□□□□□□□■
↑
Macbook Air からここに macOS をインストール
正直これなら上手くいくという予感があった。調子の悪い自分の iMac と違って正常に動く Mac なんだから。しかしそう甘くなかった。 Macbook Air と HDD2 をつなぎ(USB-Type C 用ハブまで買ったわ…)で同じように復元モードでインストール開始。インストールが進み自動で再起動。すると Macbook Air が普通に立ち上がり、持ち主のアカウントでのログイン画面になった。自分の予想では再起動後は外付 HDD へのインストールの続きが始まると思っていたのでここから違和感があった。
一度電源を落とし起動ディスクを選択するモード(⌥option キー押下)で起動してみる。インストールが成功していれば、Macbook Air のディスクと、HDD2 が表示されるはず。しかしされない。 同じことを HDD2 と Mac を接続して行ってみる。すると Macintosh HD と別で HDD2 は表示されている。それを実行してみるとインストール作業が始まった。
しかしこれも上手く行かず。エラーメッセージはこれまで数度目にした。
インストーラーリソースの有効期限が切れました。
だった。
ここまでの Macbook Air を用いた手順をまた インターネット復元モード2種類でも試してみる。同じようにどうやら Macbook Air だけではインストールは完結していない模様。なぜ…。途中で iMac につなぎ直して続きを行ってみるとどちらも上手くは行かないものの挙動は少し違った。
⌘command + ⌥option + R で起動
コンピュータのインストール情報が見つかりませんでした。
⌘command + ⌥option + ⇧shift + R で起動
方策その4とその前に4度目の電話
いよいよ新規に買った HDD3 を試してみる。がその前に Macbook Air でのインストール挙動が納得行かなかったので、エラーメッセージの内容の質問と合わせて電話確認。
まずエラーメッセージに関してはなぜそのようなエラーが出るかの明確な答えは出なかった。
そして Macbook Air のインストール挙動についても、わかりません、としか言われなかった。やはり通常であれば Macbook Air から外付 HDD へ OS インストールを実行したのであれば、その中での再起動後は自動でそちらの HDD で起動されインストールが続行されるはず、なんですけどねぇ…とだけ言われる。
答えはもらえないまま HDD3 を使ったインストールを試してみる。
iMac ■■■■■■■■■■■■■□□ <- 破損
│
├─ HDD1 ■■■■■■■■■■■■■■□
├─ HDD2 ■■■■■■■□□□□□□□□
└─ HDD3 □□□□□□□□□□□□□□□
|
Macbook Air からここをフォーマット・ macOS をインストール
これが起動に向けた最後の方策になる。
通常の復旧モード(⌘command + R で起動)
Macbook Air でのインストールはやはり途中で止まる。そこで iMac に差し替えて ⌥option キーを押しながら起動。少し時間がかかったが HDD3 が Mac OS installer として表示されたので実行してみる。インストールが進み途中の自動再起動を挟んでやはり途中で止まって終了。
インターネット復元モード(⌘command + ⌥option + R で起動)
同じことをしてみる。ロゴから察するに El Capitan のインストールを試みているようだが、同じところで止まる。
インターネット復元モード(⌘command + ⌥option + ⇧shift + R で起動)
一つ手前の方法と同様、El Capitan のインストールが動くがだめ。ただ、ここで一つ思い当たった。少し前の作業から感じていた違和感に気づいたのだ。
- インストールが途中の HDD3 を iMac につないで ⌥option キーを押しながら起動
- HDD3 を選択すると El Capitan のインストールが始まる
- インストールの過程で自動で再起動
- 立ち上がりインストール再開するもここで止まる
こんな流れだったが、4. でのインストール画面でのアイコンが、知らん間に Catalina になっていた。そういうことかと一瞬で合点がいった。
根本的な原因と解決方法(オチ)
通常、OS のインストールの過程で再起動が必要になるが、その処理は自動で行われる。今回の件を大雑把にまとめると次のようになる。
- 仮に OS のアップデートに再起動が 2 度必要だとする。
- iMac の Macintosh HD が 1度目の再起動ののち(かは定かでないけど)インストールの途中で止まった。これは完了せず中断されている状態。
- それと別に Macbook Air を用いて HDD3 にインストール作業を開始。
- Macbook Air で電源が落ちる-> iMac を ⌥option で HDD3 を選択し起動。インストールの続きが始まる。
- この作業が再起動1度目にあたるのかもしれない。
- HDD3 への OS のインストール作業の中で 2 度目の再起動。ここで挙動から察するに、起動時に中断中の Macintosh HD が選択され、上手くいくはずのないインストールが再開してしまう。これでハマってしまっていた。
- 上手くいくはずのないインストールは物理電源ボタンで強制終了し、何も施さないまま 再度 ⌥option キーを押しながらで HDD3 を選択し起動する。すると 2 度目の再起動を終えたインストーラが再び動き出し、HDD3 へのインストールが完了する。
Macintosh HD start --- restart --- restart --- (stop!) ---finish HDD3 start --- restart --- restart -➚
この回路にひたすら陥っていた。つまり、インストール作業が上手く行かず、これじゃダメだと中断してフォーマット、別の方法へ、を繰り返していたけどもう一度ディスク選択ブートをしてインストールを続けさせるのが正解だった。わかるかいそんなん。
データの復旧と Macintosh HD の修復
インストールが完了し、HDD3 から起動することができた。iMac 実機がようやく動いた。
ターミナルを起動し、Macintosh HD の中を覗いてみる。
bash$ ls -a /Volumes/Macintosh\ HD
System opt Users bin
Recovered Items var …
ディレクトリ構成はちょっとうろ覚えだけど、見た感じ Library と Applications フォルダが吹き飛んでいたらしい。ユーザー領域を見てみる。
bash$ ls -a /Volumes/Macintosh\ HD/Users/sso775/
local tmp Downloads Documents
Movies Public Desktop Pictures
Music
データ生きてた…本当に良かった…。また Recovered Items が見慣れなかったので調べてみる。
bash $ ls -a /Volumes/Macintosh\ HD/Recovered\ Items/
Applications Library …
退避されていた。Library 内を見ると Application Support なんかも残っていた。
とにかく必要なデータだけを rsync で HDD3 内に退避させたのち、一度電源を落としてインターネット復旧モードで起動(これから本体 HDD をフォーマットするので通常では上手く行かない)、ディスクユーティリティで APFS形式(Catalina用)でフォーマット、インターネット経由での Catalina のクリーンインストールを行ったところ、無事上手くいった。
まとめと所感
結局使っていた Mac の OS アップデートがなぜ失敗したのかはわからない。クリーンインストールでは上手くいったので何かしら元あったデータが悪さをしていたのだろう。 まずかなりしんどかった。ここまで淡々と試した方策を書いてきたが、OS インストールというのはかなり時間がかかるので、一つの作業を行うだけでも 1,2 時間とかかけてたので、起動しなくなってからここまでで 1週間半はかかっていた。Apple サポートのオペレーターの方々も丁寧に対応はしてくれたけど、正直根本的な理由が見いだせなかったり場当たり的な方策しか提案してもらえなかったりは期待はずれなところもあった。また何より10年以上の歴史がある保存データが飛ぶ恐れがあるというのは本当に落ち込むものだった。
教訓としてはありきたりだけど、バックアップとっておかないとな、というところ。なんだけどそれだけでもかかるコストって馬鹿にならないんだよな。
バックアップとっとけって話なんだろうけどさー元データだけで数TBいっててiMac母体に入りきらないデータのバックアップ用の場所確保するだけでも結構な出費じゃんむり
— sso775 (@sso775) April 27, 2020
若くてお金に余裕もないうちに、Mac に限らず PC を買うって大変なことで、バックアップ用の大容量 HDD を合わせて買うまで手が回らないまま使ってる人って多いと思う。自分なんかもその例にもれず、そのまま使っているうちにデータだけが増えていって、今じゃ 3TB HDD 2.5 本分。それらまるごとミラーリング管理となるとかかる費用のことは考えたくない。
しかしながら今回の件で HDD3 を新たに買うに至ったので、少なくとも iMac 本体のディスクの TimeMachine 用として使おうかな、と思う。HDD が壊れて使えなくなる、というのも稀なことでもあるし、外付けの部分はある程度諦めを持って運用していくしかないかな。使っている HDD ケースが 2 本しか入らないやつなのでまた別のものを買わなきゃならないけど…。
Mac が起動しなくなったらやること
使っているマシンは iMac (27-inch, Late 2013) 。Catalina へのアップグレードが止まってしまって起動しなくなったときに試した記録。Apple サポートの情報と合わせてまとめておく。
症状
起動ボタンを押すと macOS Catalina のインストール画面(ロゴとプログレスバー)が表示され、じわじわ進んだプログレスバーが残り時間21分から数時間待っても動かなくなる。どのキーも無効で物理電源ボタンを長押しで強制終了するしかない。
PRAM(NVRAM)クリア
サポートへの問い合わせでもまず試すよう言われる方法。自分も調子悪いなと思ったら最初にやる。Macの所定の設定情報が保存されたメモリをリセットする。 電源を入れすぐに次のキーコンビネーションを押下。
⌘command + ⌥option + P + R
押し続けると再起動の挙動がおき、2度目の起動でキーを話す。起動音が鳴ったら離して良いが Apple T2 セキュリティチップ搭載マシンは2度目の Apple ロゴ表示が消えたタイミングで話す。
結果:ダメ
SMC リセット
システム管理コントローラ(SMC)、すなわち電源やバッテリー、ファン等の熱管理機能などの動作管理を司る箇所をリセットする。
デスクトップ端末なので、システム終了後、電源コードを外して15秒、接続して5秒ののち電源ONでOK。
Macbook、Macbook Air、Macbook Pro の場合は次の手順。
- ^control + ⌥option + ⇧shift を押しながら、電源ボタンも長押し
- 数秒待ってから電源ボタンを押して起動
結果:ダメ
セーフモードで起動
余計なものなしで起動するかどうか。ディスクユーティリティの First Aid と同様のチェックが走る。 電源を入れ、PRAMクリアと同じ要領で ⇧shift を長押し、自動再起動後のロゴ表示まで待つ。 うまくいけばメニューバー右端に「セーフモード」と表示された状態で起動する。
結果:ダメ
復元モード(リカバリーモード)で起動
起動ボタンを押した直後、次のキーを押下。
⌘command + R
すぐ再起動されロゴ表示まで押下し続ける。 「macOS ユーティリティ」が立ち上がり、ここからディスクユーティリティ起動、TimeMachine から復元、OS インストールなどが実行できる。
ここから起動ディスクを選択し、First Aid (昔で言うアクセス権の修復) を実行。
結論:ダメ。途中でエラーで止まる。
またこれには別のインターネット復元モードがあり、⌘command キーにさらに加えることで実行できる。これによってOS インストールでインストールされるバージョンが次のように変わる。
- ⌘command + R
- 最後にインストールされていたOS
- ⌘command + ⌥option + R
- 使っている Mac と互換性のある中で最新のOS
- ⌘command + ⌥option + ⇧shift + R
- 工場出荷時にインストールされていたOS、またはそれに一番近い利用可能なOS
どのモードも復元モードには入れた。ディスクユーティリティでのディスクフォーマットはデータの取り出しを諦めたくなかったので、OS インストールだけを試した。
結果:どのモードもダメ
復元モードの詳細
どのパターンも上手くいかなかったが、その挙動に差異があった。
⌘command + ⌥option + R (最新のものの場合)
通常の起動と同様、途中で止まってしまう。
⌘command + ⌥option + ⇧shift + R (古いものの場合)
OS X El Capitan のインストールが始まる。インストール作業は進むが途中で次のエラーが出て止まってしまう。
インストーラーリソースの有効期限が切れています。
エラーメッセージで検索すると「インストーラーを再度ダウンロードする必要が」と出てくるが、いやいやインターネットリカバリーで今しがたのダウンロードなんやけど、と解決せず。
Apple サポートに電話
電話した。ここから起動成功まで電話の問い合わせをすること数回。それはまた別枠で記録する。ただその電話相談でいただいた提案の中で、スキームの一つではあるなと感じられる方法があったので次に記しておく。
別ボリュームに macOS をインストール -> Startup Manager
Mac には外付け HDD などの別ディスクから起動する機能がある。BootCamp にも使われるが、⌥option キーを押しながら起動することによって Startup Manager が立ち上がり、Mac の起動に用いるディスクを接続されているものの中から選ぶことができる。これを応用して、
- 外付 HDD を接続した状態で復元モードで起動
- 外付 HDD の空き容量部分に macOS インストール用のパーティションを作る(50GBもあれば十分)
- OS インストールでインストール先に作成した 外付 HDD のボリュームを選択しインストール
- 完了したら⌥option キーを押しながら立ち上げ、外付 HDD から起動
- 元の Macintosh HD が多少生きていれば、Finder 上でマウントされた状態で中身を覗けるので、そこからデータを退避させる
という方法。なるほど、と思いながらこの方法で色々と試した。それは改めて詳述する。
シングルユーザーモード・Verbose モード での fsck コマンド (やってない)
ここに書いた方法に加え UNIX コマンドでがちゃがちゃやる方法もあるが、今回はやっていない。昔は ⌘command + S でシングルユーザーモードの起動だったが、最近の Mac の推奨設定では使えなくなっていて次の方法らしい。
シングルユーザーモード
- ⌘command + R で復元モード起動。
- ディスクユーティリティで使用ボリュームがマウントされているか確認。されていなければマウント。
- メニューバーの【ユーティリティ】から【ターミナル】を選択。 終了するときはAppleメニューから再起動。
Verbose モード
⌘command + V を押しながら起動。終了するときは 'reboot' コマンド。
Apple Diagnostics・Apple Hardware Test(やってない)
ハードウェアを診断する機能。2013年6月以降発売のマシンは前者、以前は後者。長くなるのでこのあとのリンクに留めておく。
参考
- Mac の起動時のキーコンビネーション - Apple サポート
- Mac で NVRAM または PRAM をリセットする - Apple サポート
- Mac の SMC をリセットする方法 - Apple サポート
- Mac でセーフモードを使う方法 - Apple サポート
- macOS 復元について - Apple サポート
- Mac をシングルユーザモードまたは Verbose モードで起動する - Apple サポート
- Mac での Apple Diagnostics の使い方 - Apple サポート
- Mac で Apple Hardware Test を使う方法 - Apple サポート