インストールの経緯
マザーボードを変えるなどして永らく使用していた自作PCが突然フリーズしたりPOST画面で止まるなどといった症状が頻発するようになった。これまではPC内部のダスター清掃を行って改善していたが、ここに至って症状の改善がみられずマザーボードの寿命と考えられたため、今回自作PCを新規に作成の上OSも最近のUbuntuに更新することにした。
バージョン選択
安定使用を考えたいことから、当初Ubutu14.04LTSの導入を考えたが現行のSkylake世代に対応しているのはUbuntu16.04 LTSからである模様*1。試しにUbuntu14.04LTSをインストールしたところ、GPUの能力が引き出せず最低限のグラフィック描画能力となってしまい、また音も鳴らない。このためUbuntu16.04LTS以外に選択の余地はないと考えられた。
インストール
- UEFIインストールについて インストールの最中に「UEFIインストールを強行しますか」と出るが「戻る」を選択してUEFIインストールは行なわないこととした。UEFIインストールすると、GPTパーティションとなって、このディスクから起動する際に、従来のGRUB時代のシステムが起動メニューに表示されず起動できなくなってしまうため。
UEFIインストールするメリットとしては起動システムに2TB以上のパーティションが設定できる点。起動システム以外の(データ用などの)ストレージについては従来のGRUBインストールでも2TB以上のパーティションが設定できる。
UI関連
デスクトップ環境はデフォルトのUnityのまま。Ubuntu11.10でUnityが導入され使い始めた当初は違和感があったが、長く使い続けるにつれ特に不満を感じなくなった。
- ハイコントラストテーマの適用
標準のテーマは白っぽくて目が痛いので、配色がハイコントラストのテーマを使用したいが、システム設定→外観→テーマを確認してみると、「黒」地に「白」ハイコントラストの配色が存在しない。そこでUbuntu12.04で使用していたハイコントラストのテーマを流用することにする。
Ubutu12.04の/usr/share/themes/HighContrastInverseと/usr/share/icons/HighContrastInverseを、16.04の/usr/share/themes/と/usr/share/icons/にそれぞれコピーし、gnome-tweak-toolパッケージを入れて概観→テーマ→GTK+で「HighContrastInverse」を指定することで、ハイコントラストのテーマが適用される。(追記 2020/6/1)
ハイコントラストのテーマを適用すると、Firefox Quantumでリンクの配色が変更できなくなる。未訪問が白、訪問済が緑で固定となって、未訪問の場合にリンクかどうかが分かりにくくなる。配色を変更するには、userContent.cssまたは拡張機能のStylishを使って、スタイルシートから設定する必要がある。
userContent.cssの設定についてはユーザスタイルシートによるカスタマイズ(1) - えむもじらを参照。
cssについては以下のように設定する。a:link { color: green !important; } a:visited { color: red !important; }
- 半透明化
compizconfig-settings-manager,compiz-pluginsパッケージをインストールし、compizconfig-settings-managerを「ccsm」で起動、アクセシビリティ→不透明度・明度・彩度を選び、不透明度タブのWindow Specific Settingsからウィンドウにany,ウィンドウの値に80のように設定する。ウィンドウを指定して透明度を変えたい場合はウィンドウクラスを調べ、ウィンドウにclass=Firefoxのように指定する。ウィンドウクラスを調べるにはwmctrlパッケージをインストールし、端末からwmctrl -xlを実行する。ウィンドウの値は下げるほど透明に近くなる。決してウィンドウにanyを指定したままウィンドウの値を0にしてはいけない(何も見えなくなる)。 - オーバーレイスクロールバーの無効化
オーバーレイスクロールバーはどうも使い勝手が悪く感じる。以下を実行することで無効化できるとのこと。gsettings set com.canonical.desktop.interface scrollbar-mode normal
- タスク切り替え
タスク切り替えでアプリ毎にウィンドウがまとめられてしまい、2つ以上のウィンドウを持つアプリの場合にウィンドウ切り替えがクイックにできないのが不便。
ccsm→ウインドウマネジメント→Static Application Switcher(or アプリケーションスイッチャー)を有効にすると、アプリが同じでも通常通りにウィンドウ単位での切り替えが可能になる。
キーカスタマイズ
何はともあれキーカスタマイズ。
- キーバインド変更(Emacsキーバインド) UIをEmacsキーバインドで操作できるようにする。 gconf-editor→/desktop/gnome/interface/gtk_key_themeをEmacsにする。
- xkbで無変換キーをALTに設定
キーカスタマイズと言えばxmodmapだったが、Ubuntu16.04では入力システムがiBusに変わったためにxmodmapがうまく動作しないらしく、Ubuntu16.04で任意のキーの入れ替え - 仙豆のレシピにて、xmodmapでキーの入れ替えを設定しても日本語入力のON/OFFを一度でもするとxmodmapで設定したものが消えるという不具合が報告されていた。
また、xkbでキーバインドを変更する – Happy My Lifeによると「Xmodmapは事実上の廃止状態で、Ubuntu 13.10以降ではxkbを利用するのが正攻法」とのことで設定方法が示されていた。以下サイトより引用。1. ~/.xkb/keymapフォルダにベースとなる設定ファイルを格納
2. ~/.xkb/symbolsフォルダに変更するキーバインドを定義したファイルを格納
3. 起動時に設定が反映されるように設定紹介の手順に従って~/.xkb/keymap/以下にベースのファイルを作成し、「無変換」を「右ALT」にしたいので~/.xkb/symbols/(適当な名前のファイル)を以下のように設定した。
partial modifier_keys xkb_symbols "swapkeys" { replace key <MUHE> { [ Alt_R ] }; };
- 副作用1(タスクスワップの不具合) 当初、置き換えキーに左ALT(Alt_L)を指定したところ、Alt+Tabでタスクを切り替えするときにALTを離しても押したままの状態になって、再度ALTを押し直さないとタスク切り替えのポップアップウィンドウが消えないという煩わしい状態になった。この不具合は、xkbでの置き換えキーを右ALT(Alt_R)に指定することで改善した。
- 副作用2(EmacsとUnityのHUD) EmacsでAlt-vを(上記xkbのカスタマイズで「無変換-v」)押してPageUpした際に、すぐAltから手を離すとUnityのコマンド入力のHUDが表示されるという煩わしい状態になった。ランチャーにはGnome doといったランチャーアプリやコマンドラインを使うので、システム設定→キーボード→ショートカット→Launchers→「HUDを表示するキー」を無効に変更した。この不具合は上述のxkbによるキーカスタマイズをしていなければ発生しない。 以下の「ワンショットモディファイヤの実現」で使用している、「窓使いの憂鬱」を使ってもxkbと同様のキーカスタマイズが可能だと思われるが試していない。
- 窓使いの憂鬱でワンショットモディファイヤを実現
ワンショットモディファイヤとは、「そのキーを単体で押す(正確には押して離す)とそのキー本来の働きをするが、他のキーと組み合わせて押すとモディファイヤキーとして働く」という機能で、モディファイヤキーとはCtrl・Shift・Altキーのこと。日本語入力にSKKを使用しているユーザーはShiftキーを頻繁に押すことになるため、この機能は是非導入しておきたい。
Ubuntuでワンショットモディファイヤを実現するには、「私家版窓使いの憂鬱(Linux対応版)」を使うと簡単に実現できそうである。Ubuntu 14.04にMozcと窓使いの憂鬱をインストールする - Symfowareで、Ubuntu14以降で「私家版窓使いの憂鬱(Linux対応版)」を使う方法と自動起動させる設定が紹介されている。Ubuntu16でもこの方法で動作するので適用する。
リンク先の手順の通り窓使いの憂鬱をダウンロードして、以下を実行する。./configure --with-boost-libdir=/usr/lib/x86_64-linux-gnu/
makeに失敗するが、msgstream.hの「setp」を「this->setp」で全置換すればmakeが通るとのこと。
セミコロンをShiftキーのワンショットモディファイヤとするには、~/.mayuに以下のように記述する。include "109.mayu" keymap Global mod shift += !!Semicolon
- iBusでのxkbカスタマイズの無効化問題
iBusでは入力メソッドを切り替えると.xmodmapや.xkbが無効になってしまう不具合がある。
今回はiBusを呼び出す際のシェルスクリプトで対応した(以下の「日本語入力」中「iBusの改悪について」を参照)が、この不具合への対応がUbuntu 15.04: キーボードのカスタマイズ設定 - 児童小銃とUbuntu 16.04: キーボードのカスタマイズ設定 - 児童小銃)で紹介されていたので、再設定が必要になったときに確認してみたい。
日本語入力
-
日本語入力には慣れ親しんだSKKを使用したい。
- 入力メソッドにscimが使えない 長年愛用してきたインプットメソッドのscimだったが、Ubuntu16では直接入力モードに入ることができない不具合があり使えなかった。同様にfcitxもうまく入力ができなかったのでiBusを使うこととした。
- 使いにくいiBusをカスタマイズ これまで使ったことの無かったiBusというインプットメソッドだが、Ubuntu16.04でインストールできるiBus1.5では「IMEの直接入力と日本語入力の切り替え」という概念が無くなり、「IMEの種類そのものを切り替える」という考え方になったとのことで、従来のような「日本語入力のオン/オフ」という操作が存在しない。
標準のままだと日本語入力と直接入力との切り替えに支障があるようで、グローバルホットキーにシェルスクリプトを設定することで対応する方法がiBus1.5でも快適にIMEをON・OFFする 〜VimやVimperatorを念頭に〜 | PCと遊ぶ日々の記録に紹介されていた。
これを参照して変換キーと無変換キーに、以下の内容のシェルスクリプトを設定することで対応することとした。また、iBusで入力メソッドを切り替えると.xkbの設定が無効になる不具合もあったため、IMEのオンオフを切り替えるたびに設定し直すようにした(2行目)。
imeon.sh(変換キーに設定)
ibus engine skk # ibus-skkの有効なキーボードレイアウトを選択 xkbcomp -I$HOME/.xkb $HOME/.xkb/keymap/mykbd $DISPLAY # xkb設定を再読み込み
imeoff.sh(無変換キーに設定)
ibus engine xkb:jp::jpn # 日本語変換が有効でない日本語レイアウトを選択 xkbcomp -I$HOME/.xkb $HOME/.xkb/keymap/mykbd $DISPLAY # xkb設定を再読み込み
iBusはIMEの状態がすべてのアプリで共有され、アプリごとにIMEの状態を保持してくれない。これでは不便。
システム設定→テキスト入力→使用する入力ソースに「日本語(SKK)(IBus)」「日本語」のように登録しておき、「ウィンドウごとに異なるソースを使用する」→「新しいウィンドウでは現在の入力ソースを使用する」を選んでおく。これによりウィンドウ別で「IMEの状態を保持」することができる。
IMEの状態をオフにしておきたいアプリ(Emacsなど)では「次のソースへ切り替え」に指定したショートカットキーを押して入力ソースを「日本語」にする。が、面倒なのでwmctrlでactivateにした上で、上のimeoff.shを呼び出すグローバルホットキーを設定している。
アプリ
- Flashプラグインやコーデック等をまとめてインストールする Ubuntu 16.04 LTSをインストールした直後に行う設定 & インストールするソフトより、ttf-mscorefonts-installer_3.6_all.debをインストールし以下を実行するとのこと。
sudo apt install ubuntu-restricted-extras
Ubuntu 14.04 64bit で 32bit アプリを動作させる方法 - 明日にはでっかい太陽が昇るかもしれません。によると、64bit環境で32bit向けのコンパイルを行う場合は、gcc-multilibとg++-multilibパッケージをインストールする必要があるとのこと。
参照サイト
記事中の情報は以下のサイトなどから得た。
- DドライブにUbuntu16.04をインストールしてデュアルブート化 - とうふの雑記帳 UEFIインストールについて
- Ubuntu 16.04 LTSをインストールした直後に行う設定 & インストールするソフト オーバーレイスクロールバーの無効化・Flashプラグインやコーデック等をまとめてインストールするなど。Ubuntuインストール時は最初に見ておきたい。
- [Linux Mint / Ubuntu] 新しいテーマをインストールする方法 – Linux Geek 新しいテーマのインストール方法。「目に優しく全体的に黒っぽく」するテーマを紹介している。
- jwigley.com | Making Ubuntu Unity Look Beautiful By Enabling Transparency 半透明化する方法について
- Wonderlands in Usagi's brain: Ubuntu-14.04 の ALT+TAB タスクスイッチの挙動が使い難いので旧式のプレーンな挙動に変更する方法 タスク切り替えを従来通りにする方法
- OS のキーバインドを Emacs 風にするツールまとめ - Qiita UIのキーバインド変更方法
- Ubuntu 14.04にMozcと窓使いの憂鬱をインストールする - Symfoware Ubuntuへの窓使いの憂鬱のインストール方法。自動起動の設定方法も。
- xkbでキーバインドを変更する - Happy My Life Xmodmapは事実上の廃止状態で、Ubuntu 13.10以降ではxkbを利用するのが正攻法とのこと。
- Ubuntu16.04で任意のキーの入れ替え - 仙豆のレシピ
- Ubuntu 15.04: キーボードのカスタマイズ設定 - 児童小銃
- Ubuntu 16.04: キーボードのカスタマイズ設定 - 児童小銃
- Ubuntu 16.04LTSでSKKを使う(IBus) – microjournal 現在ではuim-skkはchromeでの入力に問題があるとのこと。iBusの設定はibus-setupコマンドで。プロパティパネルを表示し初期入力モードを英数にする。
- iBus1.5でも快適にIMEをON・OFFする 〜VimやVimperatorを念頭に〜 | PCと遊ぶ日々の記録 シェルスクリプトによりiBus1.5でもIMEのオンオフを用意にする方法の紹介
- Ubuntu16.04/ワンショットモディファイアでIMEを切り替える [俺の基地] Ubuntu16.04ではワンショットモディファイヤの設定はxcapeパッケージで簡単に実現できるとのこと。また、Ubuntu16.04標準IMEのfcitxはデフォルトでShiftキーがワンショットモディファイヤとしてIMEの切り替えに対応しているとのこと。
- alols/xcape: Linux utility to configure modifier keys to act as other keys when pressed and released on their own. xcapeのGitHubページ。
- UbuntuでSandSをxcape+xmodmapで実現する - Qiita
xcapeによるSandS(Shift and Space)の実現方法について。「xmodmapとの組み合わせ」の項目に、xmodmapなどで予め変換したいキーにモディファイヤキーを割り当てた上で単体で押されたときはもともとの文字を出力させればよい、と書かれている。SandS以外のワンショットモディファイヤについても同様にして可能であると思われる(未確認)。 - Ubuntu 14.04 64bit で 32bit アプリを動作させる方法 - 明日にはでっかい太陽が昇るかもしれません。
xcape allows you to use a modifier key as another key when pressed and released on its own.
*1:【PC】最新Skylakeで自作PC最小構成なら・・2016前期版 | 鍋風呂「Linux/BSD系のOS」の項目より。drivers - Ubuntu 14.04/15.04 & Skylake I5 6600k / Intel HD 530, graphic issues - Ask Ubuntuによるとカーネル4.3以降で対応しているらしい。Ubuntu 16.04LTS以前はカーネルが4.3より古い(List of Ubuntu releases - Wikipedia, the free encyclopedia)