差分表示
- 最後の更新で追加された行はこのように表示します。
- 最後の更新で削除された行はこのように表示します。
*Qtopia Clipboard Filter
Qtopiaのクリップボードを標準入力/標準出力と連携させるためのフィルターです。
1時間程度のやっつけ仕事で作ったのでバグがあるかも?
*使用方法
**クリップボード内容の出力
オプション -w を付けて実行すると、クリップボードの内容を標準出力に書き出します。
$ qcf -w
またはオプション無し(ただし今後変更される可能性有りなのでオプション付きを推奨)
$ qcf
Display size = 480x640
の様な出力が標準エラーに出ますが、これはQtopiaアプリケーションの仕様です。
**クリップボードへの読み込み
オプション -r を付けて実行すると、標準入力を読み込み、クリップボードに転送します。
$ echo "hoge" | qcf -r
*ダウンロード
[[qcf_0.1.0-1_arm.ipk Download:qcf_0.1.0-1_arm.ipk]]
*変更履歴
-0.1.0 2003/05/31
--初版
*ご意見等
ご意見ご要望等がありましたらこちらにどうぞ。
[[#rcomment]]
>hKnSgbIv
[[#rcomment]]
- 2003-07-02 (Wed) 01:04:22 ''[[塚本牧生]]'' : 天気予報スクリプトで使わせていただきました。便利便利。さて、そろそろいろいろとご指摘いただいているWikiに戻らないと...。
- 2003-06-25 (Wed) 22:35:31 途中で送ってしまった……。どうもおさわがせしました。再起動したら、症状が消えました。
- 2003-06-25 (Wed) 22:34:03 ''[[Unknown]]'' : あら、確かに再起動したら出なくなりました。どうもおさわがせ
- 2003-06-23 (Mon) 22:42:21 ''[[yakty]]'' : C700/C750で試してみましたが、どちらでも問題なく出力出来ました。「SlSharedManager: can't get proc entry」このエラーが出る事自体が多分おかしいんで、一回再起動してみてもらえますか?(多分これシャープのライブラリが出しているエラーだし)
- 2003-06-23 (Mon) 02:28:28 ''[[Unknown]]'' : yaktyさんこん**は。ちょっと不都合な点が出てきました。改行なしの76バイト以下のテキストは、qcf -wで標準出力に出てきません。77バイト以上なら出てきます。また、C760だと文字数にかかわらず、「SlSharedManager: can't get proc entry」というエラーメッセージが出てきてしまいます。つまり、C760の場合、76バイト以下ならエラーメッセージのみが。77バイト以上ならクリップボードの文字列とエラーメッセージが出てきます。改行付きなら1バイトでも大丈夫なんですが。
- 2003-06-23 (Mon) 01:00:07 ''[[Unknown]]'' : Namさん、Emacsで便利に使わせてもらっています。ありがとうございます。Namさんにもう一つお礼を。こんな展開にもなってたりして。http://megadriver.ns.tc/~fumi/zatubun/?date=20030605
- 2003-06-22 (Sun) 23:48:18 ''[[Nam]]'' : 依頼者さん、情報さんくすです。さっそく直しておきます。
- 2003-06-22 (Sun) 23:11:57 ''[[Unknown]]'' : 依頼者です。SL-C760を買ったんですが、このマシンではqcfを起動しても「connect:shmget ok」とは出ないので、NamさんのEmacs連携のコードを手直しする必要がありました。(if (re-search-forward "^connect:shmget ok$" e)を(if (re-search-forward "^Display size = 480x640$" e)とすればOKです。
- 2003-06-11 (Wed) 16:43:37 ''[[FMB]]'' : qkc -m でうまく行きました!早速の対応ありがとうございましたm(_ _)m。
- 2003-06-11 (Wed) 09:29:07 ''[[yakty]]'' : なんかqkcのオプションに-mを付けた方がいいみたいです。私は使ってないのでよく分からないんですが(笑)
- 2003-06-11 (Wed) 08:41:38 ''[[FMB]]'' : 便利です。有難うございます。NamさんのEmacs連携も早速導入させてもらい、成功しました。でもUnknown(依頼人)さんの「一行野郎」がうまくいきません。NetFrontで選択&コピー、ターミナル上でone liner実行、memoでペースト、とやってみるのですが、改行はもとのままです。qcfとqkcの導入以外に何か条件があるのでしょうか?
- 2003-06-02 (Mon) 19:58:47 ''[[Nam]]'' : 便利なツールをありがとうございます。 EmacsのバッファからClipboardへコピー&Clipboardからバッファへペーストって関数をザックリ書いてみたので宜しければどうぞ。 http://www.rr.iij4u.or.jp/~nam/
- 2003-06-02 (Mon) 00:04:57 ''[[mmo]]'' : MIシリーズの時にClipLinkというソフトを使っていまして、SLシリーズでもできないのかな..と思っているのですが可能なのでしょうか?
- 2003-06-02 (Mon) 00:04:01 ''[[mmo]]'' : はじめまして。こんなソフトを探していました。
- 2003-06-01 (Sun) 19:17:58 ''[[yakty]]'' : へえ、初めて知りました。nkfはもちろん知ってますけどね。
- 2003-06-01 (Sun) 11:38:50 ''[[Unknown]]'' : qkcはQuick Kanji Code Converterですよ。nkf、Network Kanji Filterみたいなもんです。出自はMS-DOSだったと思いました。両方ともここにあります。http://hisec.minidns.net/~masui/feed/
- 2003-06-01 (Sun) 00:18:10 ''[[Unknown]]'' : 依頼人です。yaktyさんありがとうございます。より柔軟な活用ができます。
- 2003-06-01 (Sun) 00:15:44 ''[[yakty]]'' : 文字コード変換機能とかも組み込んだ方がいいのかな〜?と思ってるんですが、欲しい方います?多分そんなに大変じゃないんで要望があれば実装します。
*使用例
こうやって使うと便利!という使用方法があれば教えて下さい。
**NetFrontからのコピー時の改行落ちを解決
とりあえず、依頼者さんの使用例をコピペ
(オプション無しの実行は非推奨なので-wオプションを付けさせて頂きました)
qkc のオプションに -m を付けた方がいいようです。
qcf -w | qkc -m | qcf -r
>さて、早速試した上記のOne liner。
>自分はNetFrontで探してきた情報をMemoに貼るのですが、
>改行が落ちるので困っていました。
>それを解決するためのものです。
**Emacsのバッファとの連携
私はEmacsを使わないのでよく分からないのですが(^^;なんか便利そう?
↓こちらで使用例を公開されています。
http://www.rr.iij4u.or.jp/~nam/
**q2chで注目レスを引用しつつレス先指定
Unknownです。ども。
q2chで選択範囲を作らずにFn+Cすると、画面上部に表示されているレスからのURLがクリップボードにコピーされます。
これを利用したスクリプトです。その糞っぷりを笑ってください。
qcfのほか、w3m(笑)が必要です。
#!/bin/sh
# /home/zaurus/quote.sh
# keyhelper.confに、
# Q = @exec<tab>/home/zaurus/quote.sh
# などと記述するといいかも。
while :
do
val=`qcf -w`
echo ${val} | sed 's/^.*\/\([0-9][0-9]*\)-$/>>\1/'
echo ${val} |
sed 's/^\(.*\)-$/-dump \1/' |
xargs w3m |
sed -n '6,/^[0-9][0-9]* KB \[/s/^ \(.*\)$/> \1/p' |
sed '/^[0-9][0-9]* KB \[/d'
exit
done | qcf -r
***使い方
-q2chでスレを見ている最中にレスしたくなったら Fn+C
-Keyhelper Appletなどでこのスクリプトを起動
-q2chで e などとして書き込みフォーム表示
-Fn+Vでペースト
**天気予報スクリプト
塚本さん作の[[天気予報スクリプト Walrus,Visit.:2003年7月]]で使用して頂いています。
**w3mのリンク先URLをクリップボードにコピー
ども。Unknown です。
以下のようなシェルスクリプトを書き、w3m で o すると出てくる設定画面で外部ブラウザとして指定。
#!/bin/sh
echo $@ | qcf -r >/dev/null 2>&1
# qcop QPE/System 'execute(QString,QString)' netfront3 $@ >/dev/null 2>&1
なおかつ ~/.w3m/keymap に以下のような記述があることを確認。
keymap M EXTERN_LINK
keymap M-M EXTERN
こうしとくと、 w3m でカーソルをリンクに合わせ、 M を押すと、クリップボードにリンク先の URL がコピーされます。
Cancel を押してから M とやると、今見ているページの URL がコピーされます。
上の qcop の前の # を外せば、クリップボードにコピーしつつ、 Netfront でページを開けます。
ふつー emacs-w3m ですかね?
**募集中
**募集中
*ソース
**main.cpp
#include <getopt.h>
#include <qpe/qpeapplication.h>
#include <qtimer.h>
#include "ClipFilter.h"
int main(int argc, char* argv[])
{
QPEApplication a(argc, argv);
ClipFilter cf;
int c;
while((c = getopt(argc, argv, ":rw")) != -1){
switch(c){
case 'r':
cf.setMode(ClipFilter::CLIP_READ);
break;
case 'w':
cf.setMode(ClipFilter::CLIP_WRITE);
break;
default:
break;
}
}
cf.exec();
QTimer::singleShot(0, &a, SLOT(quit()));
return a.exec();
}
**ClipFilter.h
#ifndef _CLIPFILTER_H_
#define _CLIPFILTER_H_
#include <qstring.h>
#include <qclipboard.h>
#include <qfile.h>
#include <qtextstream.h>
#include <qpe/qpeapplication.h>
class ClipFilter
{
public:
ClipFilter();
enum Mode {
CLIP_READ,
CLIP_WRITE,
};
void setMode(Mode mode){
m_mode = mode;
}
void exec();
private:
void write();
void read();
QClipboard* m_cb;
Mode m_mode;
};
#endif /* _CLIPFILTER_H_ */
**ClipFilter.cpp
#include "ClipFilter.h"
ClipFilter::ClipFilter()
{
m_cb = QApplication::clipboard();
m_mode = CLIP_WRITE;
}
void ClipFilter::exec()
{
switch(m_mode){
case CLIP_READ:
read();
break;
case CLIP_WRITE:
write();
break;
default:
break;
}
}
void ClipFilter::write()
{
QTextOStream(stdout) << m_cb->text();
}
void ClipFilter::read()
{
QTextIStream stream(stdin);
m_cb->setText(stream.read());
}
19305