memo.xight.org

日々のメモ

terminal-notifier - Mac OS X の通知センターに任意のメッセージを表示する

Install

brew install terminal-notifier

Usage

terminal-notifier -message [MESSAGE] [-title TITLE] [-subtitle SUBTITLE] [-sound SOUNDNAME]

Example

sound は [System Preferences] - [Sound] - [Sound Effects] の中から選択する。
大文字と小文字を区別するので注意。

terminal-notifier -message TEST -title TITLE -subtitle SUBTITLE -sound Submarine

Reference

GitHub - alloy/terminal-notifier
https://github.com/alloy/terminal-notifier

via

Apple情報局 - 2013-05-07 - OS Xの標準機能でここまでできる!ファイルの内容の変更を検知して通知センターに通知するデーモンを簡単に作成する方法
http://ottan.me/2013/05/07/daemon-to-notify-notification-center-by-detecting-file-changes/

zsh-syntax-highlighting の導入

Install

brew install zsh-syntax-highlighting

.zshrc

if [[ -r /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]]; then
	source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
fi

solarlized の導入

Summary

solarlized を使って、tmux, vim, iTermのカラーリングを統一したい。

.vimrc

NeoBundle 'altercation/vim-colors-solarized'

set t_Co=256
syntax enable
colorscheme solarized
set background=dark

tmux

git clone git://github.com/altercation/solarized.git

.tmux.conf

source-file /path/to/repos/solarized/tmux/tmuxcolors-256.conf

iTerm

以下のファイルをインポート
/path/to/repos/solarized/iterm2-colors-solarized/Solarized Dark.itermcolors

[Preferences...] - [Profiles] - [Colors] - [Load Presets...] でカラースキームをインポートする。

dircolors

homebrew で dircolors と GNU lsをインストール

brew install coreutils
git clone git://github.com/seebi/dircolors-solarized

.zshrc

if [[ -x /usr/local/bin/gls ]]; then
	alias ls="gls --color=auto"
fi
if [[ -x /usr/local/bin/gdircolors ]]; then
	alias dircolors="gdircolors"
fi
if [[ -r /path/to/repos/dircolors-solarized/dircolors.256dark ]]; then
	eval `dircolors $HOME/repos/dircolors-solarized/dircolors.256dark`
fi

Reference

Solarized - Ethan Schoonover
http://ethanschoonover.com/solarized

GitHub - altercation/vim-colors-solarized
https://github.com/altercation/vim-colors-solarized

GitHub - seebi/dircolors-solarized
https://github.com/seebi/dircolors-solarized

powerline の導入

Summary

powerlineを使って、tmux, vim, iTermのステータスバーを統一したい。
iTermについては、文字化けを防ぐためにフォントにパッチを当てる必要がある。

準備

-- grep のインストール

brew tap homebrew/dupes
brew install homebrew/dupes/grep

powerline用フォントの作成

brew install fontforge
fontforge -script ~/.vim/bundle/powerline/font/fontpatcher.py SourceCodePro-Regular.otf

fontpatcher.py が作成したpowerline用フォントをインストール。

iTerm

[Preferences...] - [Profiles] - [Text] - [Change Font]で powerline用フォントを選択

.vimrc

NeoBundle 'alpaca-tc/alpaca_powertabline'
NeoBundle 'Lokaltog/powerline', { 'rtp' : 'powerline/bindings/vim'}

tmux

git clone https://github.com/erikw/tmux-powerline.git

.tmux.conf

set-option -g status on
set-option -g status-interval 2
set-option -g status-utf8 on
set-option -g status-justify "centre"
set-option -g status-left-length 60
set-option -g status-right-length 90
set-option -g status-left "#(~/path/to/tmux-powerline/powerline.sh left)"
set-option -g status-right "#(~/path/to/tmux-powerline/powerline.sh right)"

.tmux-powerlinerc

/path/to/repos/tmux-powerline/generate_rc.sh
/path/to/repos/tmux-powerline/segments/weather.sh: line 9: shell_is_bsd: command not found
Default configuration file generated to: $HOME/.tmux-powerlinerc.default
Copy/move it to "$HOME/.tmux-powerlinerc" and make your changes.

東京の天気予報を表示させる場合
Yahoo! Weather のURLを参照して天気予報を取得する
http://weather.yahoo.com/japan/tokyo-prefecture/tokyo-1118370/

export TMUX_POWERLINE_SEG_WEATHER_LOCATION="1118370"

Reference

GitHub - tmux-powerline
https://github.com/erikw/tmux-powerline.git

Qiita - Vim - powerlineをいつ使う? 今でしょ!
http://qiita.com/alpaca_taichou/items/ab70f914a6a577e25d70

109キーボードをMacで使う

Summary

臨時で109キーボードをMacで使うための設定が必要になった。
英語キーボードのように扱うための設定を行った。

System Preferences - Keyboard - [Modifier Keys...]

Command -> Option
Option -> Command

PCKeyboardHack (Seil)

Change Caps Lock 61 Option_R

Enable NFER key on PC keyboard 102
Enable XFER key on PC keyboard 104
Enable KATAKANA key on PC keyboard 104

KeyRemap4Macbook (Karabiner)

Use EISUU as KANA/EISUU (toggle)
Use KANA as KANA/EISUU (toggle)

Reference

Karabiner - OS X用のソフトウェア
https://pqrs.org/osx/karabiner/

Seil - OS X用のソフトウェア
https://pqrs.org/osx/karabiner/seil.html.ja

vagrant の Shared folder が共有できない

Summary

vagrant up の際、以下メッセージが表示される。
そして、vagrant の Shared folder が共有できない。

The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mkdir -p /vagrant

Stdout from the command:



Stderr from the command:

sudo: no tty present and no askpass program specified

vbox の問題のようなので、 vbox をリビルドする。

# aptitude install build-essential module-assistant
# aptitude install linux-headers-amd64
# export KERN_DIR=/usr/src/linux-headers-X.X.X-X-amd64
# /etc/init.d/vboxadd setup
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.

Building the main Guest Additions module ...done.
Building the shared folder support module ...done.
Building the OpenGL support module ...done.
Doing non-kernel setup of the Guest Additions ...done.
You should restart your guest to make sure the new modules are actually used

しかし、改善されない。
未解決...

Reference

シドニーで働くプログラマーのBLOG - 2012-05-22 - Vagrantでmountエラーで、フォルダがShareされない
http://blog.mizoshiri.com/archives/1390

メモ超 - 2010-12-04 - CentOS5へのVBoxLinuxAdditionsインストール
http://d.hatena.ne.jp/calcul8/20101204/1291457686

VBoxGuestAdditions の update

Summary

VirtualBox と Guest Additions のバージョンに差異がある場合、
vagrant up 時に、以下の様なメッセージが表示される。

[default] The guest additions on this VM do not match the installed version of
VirtualBox! In most cases this is fine, but in rare cases it can
cause things such as shared folders to not work properly. If you see
shared folder errors, please update the guest additions within the
virtual machine and reload your VM.

Guest Additions Version: 4.1.8
VirtualBox Version: 4.2

/opt/VBoxGuestAdditions-4.1.8 と Guest Addtions のバージョンが古いようだ。
これを新しいバージョンに更新する。

ホスト側で VirtualBox.app 内の isoをマウント

/Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso をコピー

ゲスト側で VBoxGuestAdditions.iso をマウント

$ sudo mount /dev/cdrom /media/cdrom
[sudo] password for vagrant:
mount: block device /dev/sr0 is write-protected, mounting read-only

これで ゲスト側の /media/cdrom 内から VBoxGuestAdditions.iso が参照できる。

VBoxGuestAdditions の更新

$ cd /media/cdrom0
$ ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.2.18 Guest Additions for Linux............
This program must be run with administrator privileges.  Aborting
vagrant@debian:/media/cdrom0$ sudo ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.2.18 Guest Additions for Linux............
VirtualBox Guest Additions installer
Removing installed version 4.1.8 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.

Building the main Guest Additions module ...done.
Building the shared folder support module ...done.
Building the OpenGL support module ...done.
Doing non-kernel setup of the Guest Additions ...done.
You should restart your guest to make sure the new modules are actually used

Installing the Window System drivers ...fail!
(Could not find the X.Org or XFree86 Window System.)

VBoxGuestAdditions の更新確認

$ ls /opt
VBoxGuestAdditions-4.2.18
$ /opt/VBoxGuestAdditions-4.2.18/bin/VBoxControl --version
4.2.18r88780

VirtualBoxの再起動

ホスト側で vagrant halt または ゲスト側で sudo shutdown -h now
ホスト側で vagrant up

これで、 VBoxGuestAdditions が更新できた。

zsh-completions - zsh で補完を追加

Summary

vagrant を使うようになったので、zshの補完を強化したい。
zsh-completions を使うことで、補完を強化する。

zsh-completions のダウンロード (git)

mkdir ~/.zsh
cd ~/.zsh
git clone git://github.com/zsh-users/zsh-completions.git

.zshrc (git)

if [[ -d $HOME/.zsh/zsh-completions/src ]]; then
	fpath=($HOME/.zsh/zsh-completions/src $fpath)
fi
autoload -Uz compinit
compinit -u


Install (homebrew)

brew install zsh-completions

.zshrc (homebrew)

if [[ -d /usr/local/share/zsh-completions ]; then
	fpath=(/usr/local/share/zsh-completions $fpath)
fi
autoload -Uz compinit
compinit -u

rebuild 'zcompdump'

rm -f ~/.zcompdump
compinit

Reference

GitHub - zsh-users/zsh-completions
https://github.com/zsh-users/zsh-completions