2016年12月12日月曜日

Realtek RTL8101ドライバのアンインストール

tar ballからインストールしたRTL8101ドライバのアンインストール手順


r8101をアンロード

$ sudo modprobe -r r8101

モジュールファイルの削除

$ cd /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/realtek
$ sudo rm r8101.ko

r8169が無効化されているので元に戻す

$ sudo mv r8169.bak r8169.ko

カーネルモジュールの依存関係情報を更新

$ sudo depmod `uname -r`

initramfsのアップデート

$ sudo update-initramfs -u

r8169の読み込み

$ sudo modprobe r8169

2016年12月8日木曜日

JavaアプリケーションでUnityのグローバルメニューをデフォルトで有効にする

JavaアプリケーションのUIはJava独自のため、Jayatanaを経由してUnityのグローバルメニューを表示しています。Ubuntu15.04以降、デフォルトでは無効になっているので有効にします。

Javaアプリケーション全体に適用する場合
profileに追記
ユーザ限定で適用するなら
$ vim ~/.profile
システム全体に適用するなら
$ sudo vi /etc/profile
export JAVA_TOOL_OPTIONS="$JAVA_TOOL_OPTIONS -javaagent:/usr/share/java/jayatanaag.jar"

指定したアプリケーションのみに有効にする場合
コマンドラインから起動する場合
$ JAVA_TOOL_OPTIONS="$JAVA_TOOL_OPTIONS -javaagent:/usr/share/java/jayatanaag.jar" コマンド
GUIから起動する場合など、起動オプションを設定できない場合アプリケーションごとに設定が必要です。
IntelliJ Idea Community
$ vi ~/.IdeaIC2016*/idea64.vmoptions
-javaagent:/usr/share/java/jayatanaag.jar
Android Studio
$ vi ~/.AndroidStudio*/studio64.vmoptions
-javaagent:/usr/share/java/jayatanaag.jar
NetBeans
$ vi /usr/local/netbeans-*/etc/netbeans.conf
-J-javaagent:/usr/share/java/jayatanaag.jar

2016年12月5日月曜日

virtualenvでPythonバージョンを指定した仮想環境の作成

Ubuntuでは標準でPython2とPython3がインストールされており、Python2がデフォルトになっています。UbuntuのパッケージにはPython2に依存したものが多いため、Python3をデフォルトにするのは危険です。
virtualenvで仮想環境を作ることでPython3環境を簡単に設定することができます。

環境
Ubuntu 16.04 LTS


Pythonの確認

$ python2 --version
Python 2.7.12
$ python3 --version
Python 3.5.2

Pythonが入ってなければインストール

$ sudo apt install python2
$ sudo apt install python3

Pythonデフォルトバージョンの確認

$ python --version
Python 2.7.12

pipのインストール

$ sudo apt install python-pip python3-pip

Python3を使う仮想環境hogeの作成

Python3の場所を確認

$ which python3
/usr/bin/python3

仮想環境の作成

$ virtualenv -p /usr/bin/python3 --no-site-packages hoge

仮想環境に入る

$ source hoge/bin/activate
(hoge)$

Pythonのデフォルトバージョンの確認

(hoge)$ python --version
Python 3.5.2 

仮想環境から出る

(hoge)$ deactivate

仮想環境ごとにpipによるパッケージ管理ができます。

仮想環境作成の段階で -no-site-packages を指定することでpipからグローバルにインストールしたパッケージは含まれなくなります。

仮想環境を削除したい場合はhogeディレクトリを削除します。

2016年11月7日月曜日

Bash on Ubuntu on Windows + XサーバでLXDEを起動

Bash on Ubuntu on Windowsでは公式にGUIはサポートされていませんが、X11はC/SシステムなのでWindows側にXサーバを用意することでGUIを表示することができます。

Xサーバのインストール
よく使われるのがXmingですが、更新が2007年で止まっているので避けます。
MobaXtermも人気ですが、無料版は機能が限定されていること、Xサーバの機能だけ欲しいのでこれも避けます。
vcXsrvが頻繁に更新されており、x64バイナリもあるのでこれを使用します。

vcXsrvをインストールし、起動しておきます。
Start→VcXsrv→XLaunch
Fullscreenを選択します。

Multiple windows はアプリケーションごとに単独のウインドウが開きます。Firefoxなど、単体のアプリケーションを表示させたいときはこれを選択します。
One large window はウインドウ内に画面全体を表示しますが、LXDEだと正常に表示されません。
One window without titlebar はWindowsのタスクバーが表示されるFullscreenで、これもLXDEだと正常に表示されません。

Bash on Ubuntu on Windows側

LXDEのインストール
$ sudo apt-get install lxde
Xorg、LXDEがインストールされます。

日本語環境では文字化けするので日本語フォントを入れておきます。
$ sudo apt-get install fonts-noto-cjk fonts-noto-hinted

環境変数でXサーバを指定
$ export DISPLAY=localhost:0.0

環境変数は保存されないのでBash on Windowsの起動ごとに入力する必要があります。面倒なら/etc/bash.bashrcに書き込んでおきます。

LXDEを起動
$ lxsession


あっさり動きました。仮想マシンで動いているわけではないので非常に高速です。


Firefoxなどの単体のアプリケーションのみ起動したい場合は、vcXsrvをMultiple windowsで起動しなおして、
$ firefox &
で単一ウインドウで起動することができます。


2016年9月15日木曜日

Arch LinuxでAmazon Cloud Driveをマウントする

米AmazonのAmazon Cloud Drive Unlimited(以下ACD)が月500円程度で利用できるので登録してみました。


日本でもACDサービスが開始されましたが、この2倍の料金が発生します。



LinuxからACDにアクセスできるacdcliというツールが公開されています。

このacdcliを利用することでAmazon Cloud DriveをFuseを利用してマウントすることができます。


インストール
$ sudo pip3 install --upgrade git+https://github.com/yadayada/acd_cli.git


ログインのためにブラウザが必要です。
w3mではログインできなかったのでLynxをインストールしました。


ロケールが日本になっていると日本のACDにアクセスしてしまうので、ロケールを指定して実行します。
$ sudo env LANG=en_US.UTF-8 acdcli -v init


ログインしてoauth_dataを保存します。
v -> Shift+s -> /root/.cache/acd_cli/oauth_data


ACD状態の取得
ACDの状態を取得します。acdcli以外からACDに変更があった場合、エラーになるので各コマンドを実行する前にはこのコマンドを実行しておくと安心です。
$ sudo acdcli sync

マウント
$ sudo acdcli mount /mnt/acd/

アンマウント
$ acdcli umount /mnt/acd/



マウントすることで簡単に利用できますが、単純にアップロードやファイル操作などを行うこともできます。


aaaディレクトリの作成。
$ sudo acdcli mkdir /aaa/

システムの/mnt/sdb1/ディレクトリをAmazonの/aaa/にアップロード。cronで定期的に実行してあげるとシステムとACDで同期することができます。
$ sudo acdcli upload -o /mnt/sdb1/ /aaa/


2016年8月24日水曜日

Android 7.0 Nougatが公開されたのでNexus 6Pに入れた

Android 7.0 Nougatが公開されました。

現在はベータテストプログラム登録者のみにOTAアップデートが配信されています。



zipでファクトリーイメージが公開されているので、それを使ってアップデートします。



http://www.androidpolice.com/2016/08/22/flash-all-the-things-full-android-7-0-nougat-nexus-ota-roundup/

こちらからファクトリーイメージへのリンクが張られているのでダウンロードします。

現在はNexus 6P、Nexus 5X、Pixel C、Nexus 9のみ公開されているようです。



このファクトリーイメージを、sideloadを使って端末に流し込みます。



まず、端末をリカバリモードで起動させます。

Nexus 6Pの場合、音量↓を押しながら電源で起動、「Recovery mode」を選択し、電源+音量↑を押し、「apply update from ADB」を選択します。

PCと接続し、ADBドライバのインストール、Android SDKを使えるようにし、

以下のコマンドでzipを流し込みます。
> adb sideload zipファイル

この際、OEMアンロックは不要です。



2016年7月9日土曜日

ラーメン二郎 新宿小滝橋通店が美味くなってた

ラーメン二郎 新宿小滝橋通店に行ってきました。



前回行ったのが6か月前なのですが、その時はスープがお湯のように薄くて食えたようなものじゃありませんでした。



今回はあまりの空腹でしょうがなく行ってみたのですが、かなり美味くなってました。



チャーシューにもしっかり味が染みており、にんにくもすりおろしニンニクから刻みニンニクになっていました。スープも美味くて満腹じゃなければ完飲してました。



新宿にいるときはどちらかといえばまだましな歌舞伎町店に行ってたのですが、これからは真っ先に新宿小滝橋通店に行きます。

UEFI+GPT環境にArch Linuxをインストール

UEFI+GPT環境にArch Linuxをインストールします。



キーボードレイアウトを日本語キーボードに設定
# loadkeys jp106



パーティションの設定

今回はディスク全体にインストールします。64GBのディスク(sdb)にESPを512MB(sdb1)、Swapを2GB(sdb2)、残りをシステムパーティション(sdb3)とします。
# gdisk /dev/sdb

GPTディスクではない場合、GPTディスクにします。
Command (? for help): o

ESPの作成
Command (? for help): n
Permission number: 1
First sector : 
Last sector : +512M
Hex code or GUID : EF00

Swapの作成
Command (? for help): n
Permission number: 2
First sector : 
Last sector : +1G
Hex code or GUID : 8200

システムパーティションの作成
Command (? for help): n
Permission number: 3
First sector : 
Last sector : 
Hex code or GUID : 8300

書き込み
Command (? for help): w

フォーマット
# mkfs.vfat -F32 /dev/sdb1
# mkswap /dev/sda2
# mkfs.ext4 /dev/sda3



マウント
# mount /dev/sdb3 /mnt# mkdir /mnt/boot# mount /dev/sdb1 /mnt/boot



ミラーリストを編集して、日本のサーバーからダウンロードするようにします。
# vi /etc/pacman.d/mirrorlist

日本のサーバを一番上に持ってきます。

viの場合、 / Japan で日本のURLを検索、 yy でコピー、 p で貼り付け。



インストール
# pacstrap -i /mnt >> base



fstabの生成
# genfstab -U -p /mnt >> /mnt/etc/fstab



fstabの編集

ディスクのPARTUUIDの確認
# blkid
/dev/sdb1: UUID="15A5-4D80" TYPE="vfat" PARTLABEL="EFI System" PARTUUID="31db1219-6df2-42ba-8650-8a0b0e586b01"
/dev/sdb2: UUID="2a748a4c-60cd-462c-938b-8a2df5a80f84" TYPE="swap" PARTLABEL="Linux swap" PARTUUID="d9a09ef3-8e5b-4d7c-aef6-37eda0560f8f"
/dev/sdb3: UUID="a19c57ae-b4df-48bb-9679-ca34cf2f5030" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="de8a4bd5-b58e-4fa0-a450-6a294a49aa23"

PARTUUIDはパーティション作成時に生成される固有のIDです。 /dev/sdb1 のように指定することもできますが、ディスクの増設などでディスクの順番が変わってしまうのであまりよくないです。
# vi /mnt/etc/fstab
PARTUUID=de8a4bd5-b58e-4fa0-a450-6a294a49aa23    /    ext4    rw,relatime,data=ordered    0 1
PARTUUID=31db1219-6df2-42ba-8650-8a0b0e586b01    /boot    vfat    rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro    0 2
PARTUUID=d9a09ef3-8e5b-4d7c-aef6-37eda0560f8f    swap    swap    defaults    0 0



新しいシステムにchroot
# arch-chroot /mnt



ユーザー、パスワードの設定

rootパスワードの設定
# passwd

一般ユーザの作成
# adduser ユーザ名
# passwd ユーザ名



ブートローダの設定
# bootctl install
# vim /boot/loader/entries/arch.conf
title    Arch Linux
linux    /vmlinuz-linux
initrd    /initramfs-linux.img
options    root=PARTUUID=31db1219-6df2-42ba-8650-8a0b0e586b01 rw quiet



chrootを抜けて新システムで起動します。
# exit
# reboot



キーボードレイアウトの設定
# localectl set-keymap jp106
# localectl set-x11-keymap jp
# localectl set-locale ja_JP.UTF-8



ロケールの生成
# vi /etc/locale.gen
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8

# locale-gen



ロケールの設定
# localectl set-locale ja_JP.UTF-8



タイムゾーンの設定
# timedatectl set-timezone Asia/Tokyo



ホスト名の設定
# hostnamectl set-hostname ホスト名



2016年7月3日日曜日

Windowsのアプリケーションをパッケージマネージャで管理する

Windows 10から標準でPackageManagementというパッケージマネージャが含まれるようになりました。

以前から、Chocolateyというサードパーティのパッケージマネージャがあり、そのレポジトリがPackageManagementから利用できます。

2016年6月14日火曜日

VLCでBlu-rayを再生

先日VLCでのBlu-rayの再生について書きましたが、古いバージョンのAACSにしか対応していませんでした。

VLC media playerでBlu-rayディスクを再生する - ぽぬぽぬ



BDのリッピングソフトであるMakeMKVに付属しているlibmmbdがlibaacsと互換性があり、新しいバージョンのAACSにも対応しています。(2016/06/13現在AACS v60に対応)

2016年6月8日水曜日

VLC media playerでBlu-rayディスクを再生する

一般的なBlu-rayディスクはAACSで暗号化されているのでそのままではVLC media playerで再生することができません。

VLC media playerをAACS対応させて、Blu-rayディスクを再生するためのファイルがこちらに公開されています。

VLC Blu-Ray



keys databaseとAACS dynamic libraryの2つのファイルを入れる必要があります。



KEYDB.cfgを以下のディレクトリに入れます。

Windowsなら C:\ProgramData\aacs\

Mac OS Xなら ~/Library/Preferences/aacs/

Linuxなら ~/.config/aacs/



AACS dynamic libraryをOSに合ったものをダウンロードし、

Windowsで32bitのVLCなら C:\Program Files (x86)\VideoLAN\VLC\

Windowsで64bitのVLCなら C:\Program Files\VideoLAN\VLC\

OSXなら~/lib/

Linuxならディストリビューションごとにパッケージマネージャで導入します。



Arch LinuxではCommunityレポジトリに libaacs があるので
$ sudo pacman -S libaacs

でインストールします。



最新のAACSには対応していないと思いますが、手持ちのBDは再生することができました。

2016年6月3日金曜日

SoftbankのNexus 6Pにした

ずっと2年契約が終わったらMVNOにしようと思いながらSoftbankを使ってきたのですが、SoftbankにNexus 6Pがあったので機種変更してしまいました。

Softbank版のNexus 6PはSIMロックがかかっていますが解除可能で、OSもキャリア変更の加えられていないAOSPなAndroidが入っているので素晴らしいです。

Softbank版Nexus 6PのSIMは特殊なようで、契約時のNexus 6PのIMEIでのみ利用可能な制限がかかっており、Y!MobileのAPNで利用するようになっています。

元々、SoftbankのSIMはそのSIMごとにIDパスワードが変わるクソ仕様なのですが、そのIDとパスワードさえ分かればどの端末でも通信が可能でした。

AOSPなAndroidなのでそのような仕組みを組み込めずIMEI制限をかけたのだと思います。

Y!MobileからNexus 5が発売された際IMEI制限がかかっていましたが、後から解除されました。

Softbank版Nexus 6Pもそうなればいいのですが…

2016年6月2日木曜日

PlasmaのBreezeテーマがGTK+3に追いついていない

私は普段からLinuxのデスクトップ環境はPlasma 5を使っています。

Breezeテーマは統一感があり、デザインで言えばOSXよりも綺麗だと思ってます。

BreezeテーマはQT4、QT5、GTK+2、GTK+3用のテーマが公開されているので大体のGUIアプリケーションには対応しています。



GTK+3は今でも頻繁に更新があり、その都度テーマの形式が変わるのでまだ安定しているとは言えません。

GTK+3.20からテーマ形式が大幅に変わったようで、多くのGTK+3テーマが使えなくなりました。

Breezeも未だにGTK+3.20に対応できていません。

FirefoxがGTK+3で開発されていますので非常に困ります。



QTへの移行が進みつつありますが、未だにGTKアプリケーションが多いので安定性を求めるならGnomeが良いですね。

2016年5月27日金曜日

Yahoo!JAPANのOTPをGoogle Authenticatorで利用する

Yahoo!JAPANのログインにワンタイムパスワードを利用する際、YahooのOTPアプリのインストールを推奨されます。

わざわざ無駄なアプリは入れたくないので調べてみたところ、YahooのOTPもTOTPに準拠しているようなので、Google Authenticatorが使えます。

2016年4月19日火曜日

Windows 10でbashが使えるようになった

Windows 10でbashが使えるようになりました。

bashを使うにはInsider Previewのfastを受け取れるように設定し、開発者モードに設定、Windowsの機能の有効化または無効化からWindows Subsystem for Linux (Beta)を有効にすることで利用可能になります。

このbashはUbuntuのCanonicalがWindows向けに開発したらしいです。



コマンドプロンプトかPowerShellからbashを起動することでLinuxコマンドが利用可能になります。

最初に起動するとインストールが始まります。




インストールが完了するとスタートにBash on Ubuntu on Windowsが追加されます。





普通に起動するとrootで起動します。

WindowsのユーザとBashでのユーザは別のようで、useraddでbashのユーザを追加できました。



ls /binしてみたところ、基本的なコマンドは揃っているようです。



Ubuntuのバイナリがそのまま使えるようですがよくわかりません。



/mnt/以下にWindows側のドライブレターがマウントされており、bashからアクセス可能です。



システム情報を見てみました。



完全にLinuxとしてbashが動いているようです。



apt-getも使えるので、ubuntuのレポジトリからバイナリをインストール可能です。

2016年3月22日火曜日

systemd-bootを使ってみる

systemd 220-2から、systemdにsystemd-bootというブートローダーが組み込まれていたようなので使ってみます。

2016年3月15日火曜日

Arch LinuxにPlasmaデスクトップとfcitx-mozcを導入

Arch LinuxにPlasmaを入れます。


ディスプレイマネージャーのインストール

$ sudo pacman -S sddm


Plasmaデスクトップのインストール

$ sudo pacman -S plasma-meta


KDEアプリケーションのインストール

$ sudo pacman -S kde-applications-meta



KDEアプリケーションの日本語化
$ sudo pacman -S kde-l10n-ja


fcitxのインストール

$ sudo pacman -S fcitx



fcitxの統合
$ sudo pacman -S fcitx-im
All を選択

GTK2、GTK3、Qt4、QT5用のモジュールが入ります。無くても一応使えますが変換が確定されるまで文字が入力されません。



mozcのインストール
$ sudo pacman -S fcitx-mozc

レポジトリにfcitx-mozcしかないのでfcitxを使います。



fcitxの有効化
$ sudo vi /etc/xprofile

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx



Plasmaとの統合
$ sudo pacman -S kcm-fcitx


これでKDEシステム設定からfcitxの設定ができるようになります。



LibreOfficeなどのKDE,Qt以外のアプリケーションでも未確定文字が表示されるように設定します。

KDEシステム設定地域の設定入力メソッドアドオンの管理拡張オプションの表示をチェック→Fcitx XIM Frontendの設定→XIMでOn The Spotスタイルを使うにチェックを入れ、fcitxを再起動


フォント

Plasma 5.5からデフォルトフォントがNoto FontになったのでNoto Fontsをインストールします。


SDDMの有効化

$ sudo systemctl enable sddm


再起動

$ sudo systemctl reboot

SDDMが起動するはずなのでログインするとPlasmaが起動します。


テーマの統一

DM、GTK、QtでテーマがバラバラなのでPlasma標準のBreezeで統一します。



テーマが入ってなかったらインストール
$ sudo pacman -S breeze breeze-gtk breeze-icons breeze-kde4



SDDMテーマ
KDEシステム設定→ワークスペース→起動と終了→Login Screen(SDDM)
    テーマ: Breeze
    詳細設定→カーソルテーマ: Breeze



GTKアプリケーションテーマ
KDEシステム設定→外観→アプリケーションスタイル→GNOMEアプリケーションスタイル(GTK)→
    GTK Themes→
       Select a GTK2 Theme: Breeze
       Select a GTK3 Theme: Breeze
       Font: Noto Sans 10
    Icon Themes→
       Icon theme: Breeze
       Fallback theme: Breeze

Qtアプリケーションテーマ
$ qtconfig-qt4

外観タブ→
    GUIスタイル: Breeze
フォントタブ→
    デフォルトフォント: Noto Sans Regular 10



これでGTKアプリケーションでもQtアプリケーションでも見た目での違いがほとんど分からなくなりました。

2016年3月7日月曜日

fontconfigの設定

Linuxでのフォント設定はfontconfigによって行われています。

fontconfigは、自動でその文字を表示できるようにフォントを選んでくれるのですが、フォントが複数ある場合自分の思うようにフォントが表示されないことがあります。

今回は、Noto Fontsをシステム標準のフォントに設定します。



一般的にはテーマからフォントの指定などを行うのが一般的だと思いますが、中にはそれに従わないアプリケーションもあります。

例えば、Firefoxではインターフェイスはデスクトップ環境のフォント設定に従うのですが、Webページのほうはフォントが指定されています。





Linuxでは一般的に明朝体にserif,ゴシック体にsans,等幅フォントにmonospaceが初期設定になっています。

fontconfigは、日本語フォントがあるとこれらのフォントを置き換えてくれます。

fontconfigはVLゴシックやipaフォントなどのメジャーなフォントは自動で標準のフォントに設定してくれるようになっていますが、Noto Fontsなどの新しいフォントやマイナーなフォントは自動では設定してくれません。

その、優先順位は/etc/fonts/font.avail/65-nonlatin.conf に記述されており、fontconfigはそれに従います。

この順序は今のところ、日本語フォントだけを抽出すると MSゴシック>梅ゴシック>VLゴシック>IPAMona>IPAゴシック>さざなみゴシック>東風ゴシック というようになっています。

このファイルを直接書き換えても良いのですが、fontconfigのアップデートで書き換えられてしまったり、アップデートに追従できなくなる恐れがあります。

fontconfigの設定を手動で書き換えたい場合、 /etc/fonts/local.conf にその内容を記述することで有効化することができます。フォント設定として、local.conf は最優先されます。

local.conf に、serifはNoto Serif、sansはNoto Sans、monospaceはNoto Mono、と明示的に設定することで、アプリケーションごとに統一したフォントを利用できます。



Noto Fontsのインストール
$ cd /tmp
$ wget https://noto-website-2.storage.googleapis.com/pkgs/Noto-hinted.zip
$ unzip -d /usr/share/fonts/Noto-hinted Noto-hinted.zip
$ sudo chmod u+rw go+r /usr/share/fonts/Noto-hinted/*
$ fc-cache -vf



設定ファイルの作成

システム全体の設定をするなら /etc/fonts/local.conf 、ユーザーごとなら ~/.config/fontconfig/fonts.conf を編集します。フォントの設定をしていないならファイルがないので新規に作成します。
$ sudo vi /etc/fonts/local.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <alias>
        <family>serif</family>
        <prefer>
            <family>Noto Serif</family>
        </prefer>
    </alias>
    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>Noto Sans</family>
            <family>Noto Sans CJK JP</family>
        </prefer>
    </alias>
    <alias>
        <family>monospace</family>
        <prefer>
            <family>Noto Sans Mono CJK JP</family>
        </prefer>
    </alias>
</fontconfig>

この設定だと、sansは Noto Sans→Noto Sans CJK JP→fontconfigに任せる というように参照してくれます。




Noto Fontsは大丈夫ですが、IPAフォントなどで日本語フォントの表示が汚い場合、ヒンディングと埋め込みビットマップの無効化を行う必要があります。

/etc/fonts/conf.avail/内に設定ファイルがいろいろあるので、/etc/fonts/conf.d/内に設定ファイルのシンボリックリンクを置くことで有効化されます。



最終的にlocal.confはこうなりました。
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
    <match target="font">
        <edit mode="assign" name="antialias">
            <bool>true</bool>
        </edit>
        <edit mode="assign" name="embeddedbitmap">
            <bool>false</bool>
        </edit>
        <edit mode="assign" name="hinting">
            <bool>true</bool>
        </edit>
        <edit mode="assign" name="hintstyle">
            <const>hintnone</const>
        </edit>
        <edit name="hintstyle" mode="assign">
            <const>hintfull</const>
        </edit>
        <edit mode="assign" name="lcdfilter">
            <const>lcddefault</const>
        </edit>
        <edit name="lcdfilter" mode="assign">
            <const>lcddefault</const>
        </edit>
        <edit mode="assign" name="rgba">
            <const>rgb</const>
        </edit>
    </match>
    <alias>
        <family>serif</family>
        <prefer>
            <family>Noto Serif</family>
        </prefer>
    </alias>
    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>Noto Sans</family>
            <family>Noto Sans CJK JP</family>
        </prefer>
    </alias>
    <alias>
        <family>monospace</family>
        <prefer>
            <family>Noto Sans Mono CJK JP</family>
        </prefer>
    </alias>
</fontconfig>






ファイル保存後リアルタイムに反映されるはずですが、反映されない場合は再起動します。


2016年2月23日火曜日

Arch Linuxで顔文字を正しく表示させる

最近、Unicodeを多用した顔文字が多く利用されています。

多分、利用者の多いiOSで表示できるように作られていて、iOSやOSXでは多くのUnicodeの表示に対応したフォントが入っています。

Windowsの標準フォントも完全ではありませんが、ほぼ表示することができます。

Linuxでの日本語環境で多く利用されているフォントはVLゴシックやIPAゴシックなどですが、これらはほとんど表示することができません。



今回はこちらのサイトの顔文字を正常に表示させられるようにしたいと思います。

(๑˃̵ᴗ˂̵)و 女子力が高そうな顔文字《超厳選編》【コピペ・スマホ用】 - NAVER まとめ








顔文字の文字コードを見てみると、記号だけでなく様々な国の文字なども混ぜて作られているようです。

なので、Unicode対応を謳ったフォントだけでなく、様々な文字に対応したフォントが必要になります。

様々なフォントを入れたところで、その文字ごとに文字の見た目が変わってしまい、統一性がなくなってしまうので、1つのフォントで多言語と記号に対応している必要があります。



多言語、記号に対応したフォントというとほぼ有料のフォントになってしまいますが、無料で使えるのがありました。

それがGoogleのNoto Fontsです。

GoogleとAdobeが共同開発したフォントで、AdobeからはSource han sansとして同じフォントが配布されていますが、Noto Fontsのほうが絵文字などもあるので強いです。

豆腐フォントを排除するためという意味でno more tofu、Noto Fontということらしいです。

ライセンスはSIL Open Font Licenseで比較的自由に利用することができます。



Arch Linuxでは公式レポジトリにNoto Fontsがありますが、主要フォントだけが入ったものなので公式サイトから完全なNoto Fontsをダウンロードします。
$ wget https://noto-website-2.storage.googleapis.com/pkgs/Noto-hinted.zip



解凍
$ unzip Noto-hinted.zip



フォントディレクトリにコピー。Arch Linuxでは、システム全体のフォントは /usr/share/fonts/ 、ユーザーのフォントは ~/.local/share/fonts/ です。
$ sudo cp -R Noto-hinted /usr/share/fonts/

分かりやすいように/usr/share/fonts/Noto-hinted/*.otf

というようにディレクトリにまとめたままにします。



フォントキャッシュのアップデート
$ fc-cache -vf












表示できました。
アンインストールするときは
$ sudo rm -Rf /usr/share/fonts/Noto-hinted

$ fc-cache -vf



他のフォントがデフォルトになっている場合、表示できる文字はデフォルトフォントで、表示できない文字はNoto Fontsで表示する、というようにフォントが混ざってしまうので気になる場合はNoto Fonts以外のフォントを削除するか、Noto Fontsをデフォルトに設定して優先順序をNoto Fontsを最初の方に設定する必要があります。

英数字はプロポーショナルフォントですが、日本語は等幅フォントになっています。

等幅フォントとしてNoto Monoが入っていますが、Monospaceの代替フォントとしてプロポーショナルなNoto Fontsが設定されてしまうので手動で設定する必要があります。

Arch Linuxでのfontconfigの設定は次で

fontconfigでフォントの指定



Android 6.0からシステムフォントがNoto Fontsになり、AOSPのソースにもNoto Fontsが含まれていました。サブセット化された日本語フォントとNoto Sans UIが追加で含まれていますが、Noto Sans UIとNoto Sansを比べてみると全く一緒だったのでよく分かりません。

master - platform/external/noto-fonts - Git at Google





𓀀𓀁𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀛𓀽𓀾𓀿𓁀𓁁𓁂𓁃𓁄𓁅𓁆𓁇𓁈𓁉𓁊𓁍𓁕𓁖𓁗𓁞𓁢

(ؓؒؒؑؑؖؔؓؒؐؐ⁼̴̀ωؘؙؖؕؔؓؒؑؐؕ⁼̴̀ ) ₍₍ ◝('ω'◝) ⁾⁾ ₍₍ (◟'ω')◟ ⁾⁾

2016年2月19日金曜日

i-dio Wi-Fi Tuner 無料モニターに当選した。

i-dio Wi-Fi Tunerの無料モニターに当選しました。










i-dio 新放送サービス

i-dioは、地上デジタル放送に移行後に使われなくなったVHF帯の一部を利用した移動体向け放送らしいです。

2016年3月から放送開始で、放送内容は映像だけでなくデータなども送ることができるらしいです。



無料モニターのチューナーですが、レンタルという扱いですが返却の必要はないです。

ですが、契約違反などで返却の義務は生じるみたいです。



本体は電源ボタン、LEDインジケータ、ロットアンテナ、

端子は充電用MicroUSBメス端子、アンテナ用3.5mmジャック。

チューナーへの接続はWi-Fiのみ。MicroUSB端子とPCを接続してみましたが、認識しなかったので有線での接続は不可のようです。

受信クライアントは今のところAndroidとiOSのみの対応のようです。



放送が開始されたら遊んでみます。

2016年2月11日木曜日

PS4 コントローラー1個で画面分割プレイ

トロフィーやアイテムを取ったり、稼ぎなどでコントローラーが複数必要だけどコントローラーがないということがある思います。

とりあえず2Pのコントローラーがあると認識させる方法を見つけました。





PS3ではPSボタン長押しからコントローラー番号を変更することができましたが、PS4にはそのような設定が見当たりません。

PS3にあったユーザー切り替えですが、もちろんPS4にもあり、同時ログインしながらユーザーを切り替えられるようになりました。FreeBSDベースの恩恵でしょうか。

そしてPS4ではコントローラー番号という概念自体が廃止され、コントローラー1個に対して1ユーザーというように区別するようになったようです。

PS4に追加でコントローラーを認識させるとこのコントローラーで利用するユーザーの選択画面が出てきます。

1ユーザーで一度に利用できるコントローラーは1個までなのですが、コントローラーで一度に利用できるユーザーは1つだけではないようで、ユーザーを切り替えることで別のコントローラーとして利用することができました。




まず、メインユーザーでログイン。



PSボタンを長押しするとクイックメニューが表示されます。そこから ユーザーを切り替える を選択。



新しいユーザーを作成 を選択する。別のユーザーを作成してある場合はそのユーザーでログインしても良いです。



今回は一時的に利用するのでゲストとして遊ぶ を選択。



そのユーザーでSENアカウントにサインインするかどうか聞かれるので サインインしない を選択。



これでゲストユーザーとしてログインできました。



ログアウトしない限り2つのユーザーでログインしている状態になります。



これで準備完了です。

次にPSボタンを長押してクイックメニューを表示し、 ユーザーを切り替える から メインユーザーに切り替え、ゲームを起動します。

ゲームを起動したユーザーが1Pとして遊ぶユーザーになり、取得したトロフィーはそのユーザーだけ獲得できます。



画面分割でコントローラーを必要とする画面まで行き、



クイックメニューからゲストアカウントに切り替えます。

そうすると別のコントローラーとして認識され、2Pコントローラーとして利用することができます。





1Pで操作するときはメインユーザー、2Pで操作するときはゲストユーザー、というように切り替えることができます。






同時に操作はできませんが、とりあえず2Pコントローラーだけ欲しいという場合に有用だと思います。

終わったら一応クイックメニューからゲストアカウントをログアウトさせておいたほうが安心です。

2016年1月30日土曜日

Arch LinuxでPPPoEマルチセッション

Arch LinuxでPPPoEマルチセッションをしてみる。

PPPoEの接続にはpppdを、起動にはSystemdを使用します。

Arch Linuxではnetctlの使用が推奨されていますが、netctlではpppoeの複数接続ができないので直接pppdを使用します。

2016年1月20日水曜日

Arch Linux systemd起動に時間がかかる

Arch Linux起動時にsystemdからの起動に時間がかかるようになりました。

journalctlを見てみると、pppoeの接続でエラーが出ているようでした。

接続に失敗すると再試行し、成功したら起動しているようです。



検索してみると、海外のフォーラムに同じような現象が報告されており、RTL8111/8168/8411 カードでr8169がロードされていることが問題のようでした。



試しに何のカードを使っているのか調べたところ、ちょうどRTL8111/8168/8411 カードで、r8169がロードされていました。
$ lspci -v
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02)
 Subsystem: Dell Vostro 220
 Flags: bus master, fast devsel, latency 0, IRQ 31
 I/O ports at c800 [size=256]
 Memory at fe9ff000 (64-bit, non-prefetchable) [size=4K]
 Memory at fdff0000 (64-bit, prefetchable) [size=64K]
 Expansion ROM at fe9c0000 [disabled] [size=128K]
 Capabilities: <access denied>
 Kernel driver in use: r8169
 Kernel modules: r8169, r8168



解決法としては、r8169をblacklistにして読み込まないようにし、r8168のカーネルモジュールを読みこませるといいようです。

私の環境では、NICを複数搭載しており、確認のために他のNICを調べてみると、RTL8169を使用していることがわかりました。

r8169をblacklistにしてしまうとRTL8169のほうが使用できなくなるので困った。。。

2016年1月7日木曜日

Arch Linuxでchinachu

Arch Linux上でPT3+chinachuで録画鯖を作ります。

録画鯖を構築するとしたら、MythTV、epgrec、chinachuのいずれかになると思いますが、

MythTVはGUI必須なので外部からの設定が面倒、番組表関連・BSCSがうまくいかない、

epgrecはかなりごちゃごちゃしているのと、phpに任せるのは不安、

ということで、chinachuで構築することにしました。



Arch LinuxではAURにPT3ドライバとchinachuがあるので簡単にインストールすることができました。



Arch Linux標準のカーネルではPT3のDVBドライバが有効になっています。

DVBドライバからfuse_b25でデコードしてrecdvbを使いたいところですが、recdvbではBSCSが受信できないらしいので普通のドライバを入れます。

chinachuは録画ソフトを呼び出すだけなので、VLCなどのDVB対応ソフトなら使えるかもしれないです。




今回はPT3ドライバにpt3_drv-dkms、デコードにarib25、録画にrecpt1を使うことにします。

2016年1月4日月曜日

Gnome 3でタッチパッドのナチュラルスクロール有効化

Gnome 3では標準でタッチパッドのナチュラルスクロールがオフになっています。

ナチュラルスクロールを有効にすることでOS Xなどのような直感的なスクロールにすることができます。

 

一般的なOSでは 設定 > マウスとタッチパッド から設定できるようですが、私の環境ではタッチパッドの項目が出ませんでした。

Arch Linux Wikiによると、Synapticsから設定する方法が書かれていますが、Gnome 3では再起動時にGnome 3の設定で上書きしてしまいます。

そのため、Gnome 3の設定を変更するためにdconfエディタを使用します。