cui

termのLINESとCOLSとSIGWINCH

x端末などの大きさを変えると、SIGWINCHが飛んでくる。 変わった後のLINESとCOLSの取得は、terminfoでなくてioctlでできる。http://www.a-k-r.org/ruby-terminfo/rdoc/classes/TermInfo.src/M000029.html前回作ったtermutilにも実装してみた。 var TERMUTIL=…

terminfoメモ

node.jsでwrapする前にc++でterminfo, termios, readlineの使いかたを練習。 // g++ -o cursor cursor.cpp -lcurses -lreadline #include <stdlib.h> #include <term.h> #include <curses.h> #include <errno.h> #include <readline/readline.h> class Termios { struct termios save_term; struct termios temp_term; v</readline/readline.h></errno.h></curses.h></term.h></stdlib.h>…

node.js向けのterminfoをwrapしたc++モジュールを作った

今日の目標地点まで実装完了。 下記のようなjavascriptで、カーソルをhjklで上下左右に動かすのに成功した。 var TERMUTIL=require('./build/default/termutil'); var term=new TERMUTIL.Term(); var keymap={ 113: // q function(){ process.exit(); }, 0x6…

terminfoメモ(libev化)

とりあえず、libevでメインループを置き換えてみる。node.jsで使っているのは、memcacheのlibeventじゃなくてlibevの方だった。 // g++ -o cursor -g cursor.cpp -g -lcurses -lreadline -lev #include <stdlib.h> #include <term.h> #include <curses.h> #include <errno.h> #include <readline/readline.h> #include <ev.h> </ev.h></readline/readline.h></errno.h></curses.h></term.h></stdlib.h>…

terminfoでやってみる

cuiでプログラムする場合はだいたいcurses(ncurses)を使おうとして何かしっくりこないなーということになりがちだったのだが、w3mをチェックしてみて、cursesの下層のterminfoで使えばよかったんだよ、と気付いた。 で、やってみた。 #include <curses.h> #include <term.h> #i</term.h></curses.h>…

ファイラー発見

http://www.geocities.jp/daisuke530221jp/gentooとcygwinにいれて使ってみる予定。mfiler3の方をruby-1.9の環境でビルドしてみた。 ちょっとRubyのマクロを使っていることを手直しする必要があった。 1.8から1.9で変わったよくあることらしい。RSTRING(hoge…

screenの最新版を入れてみた

cui

いつも通りscreenにパッチを当てようとおもってうろうろ していたら本家でambigouswidthパッチを取り込んだみたいであることを発見。https://savannah.gnu.org/bugs/?16666gitで最新版を取得できるみたいなのでやってみた。 $ git clone git://git.savannah.…

puttyでscreen起動時にWindowサイズが勝手に変更される件

cui

Connection-DataのTermial-type stringをvt100とかにすれば回避できるのだが カラー表示ができなくなるなどの弊害もあるのでいい方法を探していたのだが、 http://wikiwiki.jp/redstrange/?%C4%EA%B5%C1%BA%D1%A4%DF%A5%DE%A5%AF%A5%ED によると.screenrcで …

設定ファイルをSubversionの管理下に入れる

CUI

ここのところ管理下の環境が増えてきて設定が どうなっているかわからなくなってきたので http://d.hatena.ne.jp/hayori/20070610/1181453085 を参考に設定ファイルをSubversion管理下にいれることにした。とりあえず、 自宅のcoLinuxとファイル鯖とノートと…

screenを縦分割

cui

するべくcvs版をビルド中・・・ できた。 cvs版をゲットして ./configure make make installするだけでOK。 puttyをフルスクリーンにして縦分割(^a |)したら まるでratpoisonのようだ。 ただ例によってutf-8での使用には支障が出るので http://www.dekaino.n…

utf-8のxterm上でmutt成功

cui

ここのところmuttを導入しようとしてずっと格闘していたのだが、 ようやくutf-8のxterm上で表示を崩さずに表示する事ができた。 (mlterm上では最初からできていた) これで、xtermとほぼ同じ感じのputtyからでも使える。 方法はこちらの http://yoosee.net/d/…

UTF-8でw3m

cui

ようやくw3mで安定して文字のずれない生活を送れるようになった。 gentooではemergeしたら適用されるw3m-0.5.2-ambwidth.patchで追加されるオプション 「Use double width for some Unicode characters(ある種のUnicode文字を全角にする)」 が鍵になる。 オ…

IRCクライアント

cui

Irssiというので日本語を使えるスクリプトを公開しているのを発見 http://www.binzume.net/library/irssi.html

UNICODEの文字幅がずれる

cui

w3mで表示がずれるのでいろいろ調べたのだが、 どうやらUNICODEのEast Asian Ambiguous charというのが関係あるらしい。 TERMとアプリの双方で設定とかパッチが必要とのこと。http://d.hatena.ne.jp/macks/20061001/p1の情報で概ね治ったのだが、 w3mで<ul>タグ</ul>…

curses練習

pythonでcursesの練習を作ってみた。 padとstdscrを混ぜて使って画面が更新されないのに2時間くらいはまる。 cursesデバッグしにくいよ。 いまいち勝手がわからない。 #!/usr/bin/python # -*- coding:utf-8 -*- import curses import locale import os # …

w3mにコマンドを作ってみた

CUI

カーソルのある行を第1行になるようにスクロールするという機能 (vimで言うところのz > t) が欲しくて私家版w3mをビルドするついでに自前のFUNCTIONを見よう見まねで追加してみた。 すでにありそうな気もするが… main.cのCENTER_Vを改造。 CENTER_Vの次あた…