Pidgin

提供: ArchWiki
2024年4月13日 (土) 14:33時点におけるKgx (トーク | 投稿記録)による版 (→‎参照: 同期)
ナビゲーションに移動 検索に移動

Pidgin は、複数のチャットネットワークのアカウントに同時にログインできるチャットプログラムです。Jabber/XMPP、Bonjour、Gadu-Gadu、IRC、Novell GroupWise Messenger、Lotus Sametime、SILC、SIMPLE、Zephyr、およびプラグインを備えたその他の多くのチャットネットワークと互換性があります。

インストール

公式リポジトリから pidginインストールできます。別バージョンも存在します:

  • Pidgin Light — GStreamer, Tcl/Tk, XScreenSaver, 動画・ボイスサポートを取り除いた Pidgin の軽量版。
http://pidgin.im/ || pidgin-lightAUR

purple-plugin-pack から追加のプラグインをインストールすることも可能です。

スペルチェック

Aspell は依存パッケージとしてインストールされますが、テキストが全て間違っていると表示されないようにするために aspell-en などの aspell の辞書をインストールする必要があります。Aspell の記事を見てください。

ノート: purple-plugin-pack パッケージには switch spell プラグインが含まれており、複数の言語を切り替えることができます。

サービス

AIM

Pidgin は、すぐに使える AOL Instant Messenger (AIM) のサポートを備えています。AIMは正式に停止しましたが、Phoenixのような非公式の AIM ベースのサーバーが動作しており、AIM プロトコルのアカウント設定でサーバーアドレスを変更することで Pidgin 上で使用することができます。

Discord プラグイン

警告: 現在、purple-discord 使用後の一時的な IP 禁止に関して未解決の GitHub issue が存在します。

purple-discord-gitAUR パッケージをインストールしてください。

次に、新しいアカウントを追加し、プロトコルとして Discord を選択し、Discord のログイン電子メールアドレスとパスワードを入力します。

Facebook

purple-facebook (または purple-facebook-gitAUR) パッケージをインストールしてください。

新しいアカウントを追加して、プロトコルとして Facebook を選択して、Facebook のユーザー名 とパスワードを入力してログインしてください。

Google (Hangouts)

purple-hangouts-gitAUR パッケージを インストール してください。

ICQ

Pidgin には、オリジナルの OSCAR ICQ プロトコルのみが付属しています。2018 年 12 月以降、古い OSCAR プロトコルは新しい WIM プロトコルに置き換えられたため、正式にサポートされなくなりました。ICQ で新しい WIM プロトコルを利用するには、purple-icyque-gitAUR プラグインをインストールする必要があります。

IRC

以下は Freenode に接続する簡単なチュートリアルです。ポート番号とその他の設定を変えれば、他の IRC ネットワークでも同じように設定できるはずです。

Accounts > Manage Accounts > Add を開いて下さい。以下のオプションを入力・選択します:

Protocol: IRC
Username: your username

Buddies > New instant message を開いて (もしくは Ctrl+m を押す)、テキストボックスに 'freenode.net' と username@irc.freenode.net と入力して、'Ok' をクリックしてください。以下を入力:

/join #archlinux

チャンネルは重要ではありません。

ニックネームを登録するために、次を入力:

/msg nickserv register password email-addres

登録メールの指示に従って下さい。ヘルプを表示するには以下を入力:

/msg nickserv help
/msg nickserv help command

後はチャンネルを 'Buddies' に追加するだけです: Buddies > Add chat を開いて、テキストボックスに適当なチャンネルを入力してください (#archlinux)。

Sametime プロトコル

libpurple-meanwhileAUR パッケージをインストールしてください。パッケージをインストールすれば、アカウントの作成時に 'Sametime' プロトコルを選ぶことができます。

Skype プラグイン

purple-skypeweb または skype4pidgin-gitAUR[リンク切れ: パッケージが存在しません] パッケージをインストールしてください。

Slack プラグイン

slack-libpurple-gitAUR パッケージをインストールしてください。

Rocket.Chat プラグイン

purple-rocketchat-gitAUR パッケージをインストールしてください。

Telegram プラグイン

telegram-purpleAUR または telegram-purple-gitAUR パッケージをインストールしてください。

アカウントの作成時に Telegram の電話番号を入力すると、確認コードが記載された SMS テキスト メッセージが届きます。Pidgin で Telegram プロトコルアカウントを認証するには、このコードを入力する必要があります。

XMPP

Pidgin は、すぐに使える XMPP/Jabber チャットプロトコルのサポートを備えています。OMEMO (libpurple-lurch) や Message Carbons (libpurple-carbonsAUR) などの XMPP 拡張機能をサポートするための追加プラグインがいくつか存在します。

セキュリティ

Pidgin は、暗号化されていないパスワードを (平文で) $HOME/.purple/account.xml に保存する、Libpurple 2 を使用しています。[1] を参照してください。次のようなプラグインを使用して、それらをキーリングに保存できます:

プライバシー

Pidgin はデフォルトで複数のプライバシールールを設定します。連絡先に登録された人やリストから選択された人だけがあなたにメッセージを送ることができるようになっています。この設定を変更するには:

Tools > Privacy

Pidgin-OTR

これは Pidgin に Off-The-Record (OTR) メッセージングをもたらすプラグインです。OTR はインスタントメッセージを暗号化する暗号プロトコルです。

まず公式リポジトリから pidgin-otr をインストールして、OTR を Pidgin に追加する必要があります。

  1. OTR を有効化するには、Pidgin を起動して Tools > Plugins を開くか Ctrl+u を押します。"Off-The-Record Messaging" というタイトルのエントリまでスクロールしてください。その横のチェックボックスにチェックが入ってなかったら、チェックを入れます。
  2. 次に、プラグインエントリをクリックして一番下の "Configure plugin" を選択します。鍵を生成したいアカウントを選択して、"Generate" をクリックして下さい。これで秘密鍵が生成されます。他のオプションが何をするのかよくわからない場合、そのままにしておいてください。デフォルトのオプションで問題ありません。
  3. OTR をインストールしている友達に連絡することができます。チャットウィンドウに、テキスト入力ボックスの右上に新しいアイコンが表示されているはずです。アイコンをクリックして "Start private conversation" を選択してください。'Unverified' セッションが開始されます。Unverified セッションは暗号化されていますが、検証はされていません。つまり、OTR が入っているアカウントを使って秘密の会話をすることはできますが、会話の相手が友達かどうかは保証がありません。会話相手の検証をする方法はこのセクションでは説明しません。

Pidgin-Encryption

pidgin-encryptionAUR は RSA 暗号によってインスタントメッセージを透過的に暗号化します。使い方は簡単で、とてもセキュアです。

Pidgin-OTR と同じ方法で有効化できます。

会話ウィンドウを開いてメニューに新しいアイコンがあることを確認してください。アイコンをクリックすると暗号化を有効化・無効化できます。また、デフォルトで暗号化を有効にしたい場合、友達の名前を右クリックして Turn Auto-Encrypt をオンにしてください。友達との新しい会話が開始されると、自動で暗号化がされるようになります。

Pidgin-GPG

Pidgin-GPG は GPG を使って会話を透過的に暗号化し、既存の WoT の機能を全て利用することができます。

このプラグインは AUR の pidgin-gpg-gitAUR でインストールすることができ、上記と同じ方法で有効にできます。

他のパッケージ

Arch には他にも Pidgin 関連のパッケージがあります。以下は有名なパッケージです (完全なリストは、AUR を検索してください):

  • pidgin-libnotify - のサポート、テーマにそって通知
  • pidgin-latexAUR - pidgin の小さな latex プラグイン。$$ の間に数式を記述するとレンダリングされます (相手側もインストールする必要があります)

サスペンド時に自動でログアウト

コンピューターをサスペンドした場合、pidgin は約15分間、接続中のままになります。メッセージを得損なわないようするには、サスペンドやハイバネーションをする前にステータスをオフラインに設定しなくてはなりません。ステータスメッセージは変更されません。

したがって /etc/systemd/system に新しい systemd ユニット pidgin-suspend を作成してください。以下のスニペットを使って myuser をあなたの使用しているユーザーに置き換えます。

[Unit]
Description=Suspend Pidgin
Before=sleep.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
User=myuser
RemainAfterExit=yes
Environment=DISPLAY=:0
ExecStart=-/usr/bin/purple-remote setstatus?status=offline
ExecStop=-/usr/bin/purple-remote setstatus?status=available

[Install]
WantedBy=sleep.target

pm-utils を使っている場合、代わりに /etc/pm/sleep.d/00pidgin ファイルを作成することもできます。

#!/bin/sh
#
# 00pidgin: set offline/online status

case "$1" in
    hibernate|suspend)
        DISPLAY=:0 su -c 'purple-remote setstatus?status=offline' ''%myuser''
    ;;
    thaw|resume)
        DISPLAY=:0 su -c 'purple-remote setstatus?status=available' ''%myuser''
    ;;
    *) exit $NA
    ;;
esac

システムトレイに最小化

Xfce のシステムトレイを使用するには設定を開いて "Interface" セクションでシステムトレイを有効にしてください。これでメインウィンドウを閉じると pidgin が最小化されるようになります。システムトレイからメッセージの通知を見ることができます。

Kopete から Pidgin に履歴をインポート

  • xalan-c をインストールして以下の内容で ~/bin/history_import_kopete2pidgin.sh を作成:
#!/bin/sh

KOPETE_DIR=~/.kde4/share/apps/kopete/logs
PIDGIN_DIR=~/.purple/logs
CURRENT_DIR=~/bin

cd

if [ ! -d $KOPETE_DIR ];then
    echo "Kopete log directory not found"
    exit 1;
fi

if [ ! -d $PIDGIN_DIR ];then
    echo "Pidgin log directory not found"
    exit 2;
fi

for KOPETE_PROTODIR in $(ls $KOPETE_DIR); do
    PIDGIN_PROTODIR=$(echo $KOPETE_PROTODIR | sed 's/Protocol//' | tr [:upper:] [:lower:])
    for accnum in $(ls $KOPETE_DIR/$KOPETE_PROTODIR); do
        echo "Account number: $accnum"
        for num in $(ls $KOPETE_DIR/$KOPETE_PROTODIR/$accnum); do
            FILENAME=$(Xalan $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin_filename.xslt)
            if [ $? = 0 ]; then
                echo "$KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num"
                echo " -> $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME"
                mkdir -p $(dirname $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME)
                Xalan -o $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin.xslt
            fi
        done
    done
done
  • ~/bin/history_import_kopete2pidgin.sh を実行可能にする:
chmod +x ~/bin/history_import_kopete2pidgin.sh
  • 以下の内容で ~/bin/history_import_kopete2pidgin.xslt を作成:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="no" />

    <xsl:template match="kopete-history">
        <xsl:apply-templates select="msg"/>
    </xsl:template>

    <xsl:template match="msg">
        <xsl:text>(</xsl:text>
        <xsl:value-of select="translate(substring-after(@time,' '),':',',')"/>
        <xsl:text>) </xsl:text>
        <xsl:value-of select="@nick"/>
        <xsl:if test="not(@nick) or @nick = ">
            <xsl:value-of select="@from"/>
        </xsl:if>
        <xsl:text>: </xsl:text>
        <xsl:value-of select="."/>
		<xsl:text>
</xsl:text>
    </xsl:template>
</xsl:stylesheet>
</nowiki>
  • 以下の内容で ~/bin/history_import_kopete2pidgin_filename.xslt を作成:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="no" />

    <xsl:template match="kopete-history">
        <xsl:value-of select="head/contact[@type = 'myself']/@contactId"/>
        <xsl:text>/</xsl:text>
        <xsl:value-of select="head/contact[not(@type)]/@contactId"/>
        <xsl:text>/</xsl:text>
        <xsl:value-of select="head/date/@year"/>
        <xsl:text>-</xsl:text>
        <xsl:if test="head/date/@month &lt; 10">0</xsl:if>
        <xsl:value-of select="head/date/@month"/>
        <xsl:text>-</xsl:text>
        <xsl:if test="string-length(substring-before(msg[1]/@time,' ')) &lt; 2">0</xsl:if>
        <xsl:value-of select="translate(msg[1]/@time,' :','.')"/>
        <xsl:text>+0200EET.txt</xsl:text>
    </xsl:template>
</xsl:stylesheet>
  • シェルからコマンドを実行:
~/bin/history_import_kopete2pidgin.sh

バックアップ

~/.purple をどこかに保存することでメッセージログやアカウント情報などのデータをバックアップできます。

トラブルシューティング

Sametime の Version Match

Pidgin を使って Sametime に接続したときに "Version Match" という表示される問題があります。クライアント側で出来る解決方法として accounts.xml でバージョンを偽るという方法があります。$HOME/.purple/ フォルダに存在する accounts.xml に含まれている Sametime アカウントの <settings> セクションで以下の行を追加・変更してください:

<setting name='fake_client_id' type='bool'>1</setting>
<setting name='client_minor' type='int'>8511</setting>

ブラウザのエラー

Pidgin の中でリンクをクリックすると、リンクを開くための 'sensible-browser' を使用しようとしているというエラーメッセージが作成される場合、~/.purple/prefs.xml を編集してください。'sensible-browser' に言及している行をさがして以下のように変更します:

<pref name='command' type='path' value='firefox'/>

上の例では Firefox を使用しています。

Pidgin の設定の "Browser" セクションで使いたいブラウザを設定するという方法もあります。

ICQ バディ情報のエンコーディングを修正

Buddy Information のエンコーディングが正しくない場合、ICQ アカウントのエンコーディングを変更することができます:

Account > your ICQ account > Edit account > Advanced tab

(キリル文字の場合) Encoding: CP1251 を選択。

参照