2008-10-22

Ubuntu でそこら中 Emacs 風に

MacOSX の自分にとってよいところはいたるところで Emacs 風の編集が有効なこと。で、当然 GNOME でもできると思ったけど、標準ではできないっぽい。

gconf-editor

図のようなこんな感じで gconf-editor から /desktop/gnome/interface/gtk_key_theme を emacs にすると良い。

IP messenger に四苦八苦

昨日から IP messenger を使おうとして四苦八苦している。IP messenger については実は興味はあったが試したことのなかったアプリがあって、それが

今までプロトコルと UI を分離してる実装はお目にかかったことがなかったのでこれは面白そうだと思ったわけ。

IP messenger は基本的に Windows アプリで、それ以外のプラットフォームにも様々な移植版が存在する。本家 Windows 版を使っている分には LAN 内での軽めのメッセージのやりとりに非常に重宝するのだが、他のプラットフォームではやはりクライアントの完成度が落ちてしまう問題があった。

Un*x には上に挙げた kipmsg の他にも X 版、GNOME 版がある。でもさすがに古すぎる。Java 版があるのも知っていたがここは最も新しいものを試したい。結果、

早すぎたんだ

最初 deb 用のファイルリストが用意されていることに気付かずに GNOME で動かしている Ubuntu 上で必死に KDE の環境をインストールしていたがあえなくコンパイルできず泣きそうになった。が、実はまったくそんな苦労は必要なかった。しかし、ちょっと使ってみたらウィンドウのちらつきが気になったり、問答無用で refresh が走ってユーザーを選択できないとか、refresh が走るたびにメンバーリストのカラムの幅がリセットされるとか、終わりのない我慢大会だったのでこれは諦めた。

最後に見つけたのがペタクローン。これはいい。Java なので最初の起動は重たいが、起きてしまえば結構快適に動く。タスクトレイ的な場所のアイコンの他にどうしてもウィンドウが存在してしまうのがうざいが、それを我慢させてしまう強力な機能がある。

メンバーのインクリメンタルサーチ

もう一度言う。これはいい。本家 ML でもメンバーの検索したいですと言ったことはあるんだけど、検討されている様子はまったくなかった。でも IP messenger のインターフェイスなら検索は必須だと思うんだよな。irc みたいに nick 補完でメッセージ投げるわけにいかないんだから。

ただ最初戸惑ったのが、メンバーリストはメッセージを作成してから [ 送信 ] というアクションを起こさないと出てこないこと。IP messenger と互換クライアントをいくつか試してきたなかで、このタイプは初めてだった。これまでの記憶ではみんな送信ウィンドウでメッセージの作成とユーザーの選択を同時に行えたはず。

で、まぁ検索の仕組みまで入るとゴチャゴチャしちゃうからかなぁと思ったけど、この方式には実は致命的な問題もある。

メッセージを投げようとするまで相手がクライアントを立ち上げているかどうか確認できない

メンバーリストを最初から見ることができればメッセージを作成してしまう前に相手の存在を確認できる。しかし現在のペタクローン方式だとどうしても先にメッセージを作成する流れになるので空振りになる危険性がある。そこだけもったいないなと思う。メンバーリストを任意のタイミングで自由に確認できるようになったらいいな。

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm