2011年 06月 07日

gerry++

2011年 06月 03日

screen で起動している別の window のワーキングディレクトリを補完したい

みなさん当然 cdd というのをつかっているんじゃないかと思いますが、cd 以外のときでも別の window のディレクトリを入力したいときがあるかと思いますので、zsh ユーザのかたであれば cdd の末尾に以下のように追加致しますと、[補完したい window の数字]C-x i と入力することで、指定 window のディレクトリが補完されるようになります。

function screen-cd () {
  local MATCH
  LBUFFER=${LBUFFER%%(#m)[0-9]#}
  local -A arg
  arg=$MATCH
  if grep "^$arg:" "$CDD_PWD_FILE" > /dev/null 2>&1 ;then
    local -A res
    res=`grep "^$arg:" "$CDD_PWD_FILE"|sed -e "s/^$arg://;"|tr -d "\n"`
    LBUFFER+=$res
  fi
}
zle -N screen-cd
bindkey "^Xi" screen-cd
2011年 05月 31日

gerry++

2011年 05月 24日

gerry++

2011年 05月 23日

Mac でデフォルトブラウザを変えるだけのコマンド

// #!gcc -framework Cocoa set_default_browser.m -o set_default_browser && ./set_default_browser com.google.Chrome

// bundleID = Appbundle.app/Contents/Info.plist CFBundleIdentifier
// eg:
//   com.apple.Safari
//   com.google.Chrome
//   org.mozilla.firefox
//   com.operasoftware.Opera

#import <Cocoa/Cocoa.h>

int main(int argc, char* argv[]) {
	if (argc < 2) return 1;
	printf("Set Default Browser to %s\n", argv[1]);

	CFStringRef bundleID = CFStringCreateWithCString(NULL, argv[1], kCFStringEncodingASCII);
	if (bundleID == NULL) return 2;

	OSStatus httpResult  = LSSetDefaultHandlerForURLScheme(CFSTR("http"),  bundleID);
	OSStatus httpsResult = LSSetDefaultHandlerForURLScheme(CFSTR("https"), bundleID);

	if (httpResult == noErr && httpsResult == noErr) {
		return 0;
	} else {
		return 1;
	}
}
2011年 05月 20日

Plack::App::CocProxy

いろいろ纏めたり修正したりして CPAN にあげました。https://github.com/cho45/Plack-App-CocProxy

cocproxy というコマンドを同梱して、これがちょっと便利です (カレントディレクトリを基準ディレクトリにして置換プロキシを起動する)

2011年 05月 19日

gerry++

2011年 05月 18日

nginx で https を期待して listen してるポートに http でリクエストしてくるクライアントを強制的に https に飛ばしなおすには error_page 497

    server {
        ssl on;
        listen       81 default ssl;
        server_name  foobar.hatena.ne.jp;
 
        error_page 497 https://foobar.hatena.ne.jp:81/;
2011年 05月 16日

gerry++

2011年 05月 10日

一時的に端末の横幅を制限する

ゆとり世代の人が w3m とかをそのまま起動すると、画面サイズがでかいターミナルに文章が間延びして表示されて読みにくいわけなので、こういうとき一時的に幅を制限したいなあと思いそういうコマンドがあったらいいなあと思いました。コマンドに関してはよくわからなかったですが、screen のインタラクティブに入って

:width -w 80

とかやったらとりあえずうまくいったのでよかったです。戻しかたがよくわからないですが、ターミナルのウィンドウを動かすとリセットされる……

:width -d

だと微妙に戻るんですが、最大まではもどらないみたいです!