Tencent QQ

提供: ArchWiki
2024年9月4日 (水) 21:07時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎参照: add TranslationStatus.)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

QQ は Tencent が開発したインスタントメッセージングソフトウェアで、ICQ の模倣品であり、中国で人気のある IM ソフトウェアです。このページでは、Arch Linux で QQ を使用するためのさまざまなソリューションを紹介しています。

公式バージョン

公式バージョンは既に利用可能です。公式バージョンを使用するには、linuxqqAUR をインストールしてください。

ノート: 公式バージョンでは通常の QQ を提供していますが、TIM には公式バージョンがありません。TIM を使用したい場合は、Wine ソリューションを利用してください。

仮想マシン

完全な Windows システムを仮想マシン上で実行し、その中で QQ を動作させることができます。この方法は、他の方法と比べてエラーの発生確率が最も低いです。デメリットは、より多くのリソースを消費することです。

ヒント:
  • ライセンス条項 によると、各仮想デバイスで Windows を実行するには個別のライセンスが必要です。ただし、Microsoft が提供する仮想マシン専用システム[リンク切れ 2024-01-13](無料で使用可能)を選択することができます。
  • VirtualBox を使用する場合は、シームレスモード を有効にすることをお勧めします。この機能により、ホストデスクトップ上で仮想マシンのウィンドウをシームレスに操作できます。

Wine

この記事またはセクションは情報が古くなっています。
理由: Wine ベースの QQ の上流は、公式の Linux バージョンがリリースされて以来、長い間更新されていません。基本的に古い QQ バージョンのため動作しません。 (Discuss)

Wine は、UNIX 系システム上で Microsoft Windows プログラムを実行するための「互換レイヤー」であり、QQ/TIM を実行するための環境をエミュレートするのに使用できます。

警告: タイル型ウィンドウマネージャーでは、Wine QQ/TIM のウィンドウスタイルが制御不能になる場合があり、追加設定が必要です。

Deepin QQ/TIM

Deepin QQ/TIM は、Wine 上で比較的成熟したソリューションで、ほぼそのまま使用でき、バグも少ないです。

通常の QQ をインストールするには deepin-wine-qqAUR を、TIM をインストールするには com.qq.office.deepinAUR(または Spark Store から com.qq.tim.sparkAUR)を使用することができます。または、Arch Linux CN ソース から通常の QQ を deepin.com.qq.im、または TIM を deepin.com.qq.office としてインストールできます。

軽量バージョンをインストールするには、deepin.com.qq.im.lightAUR を使用します。

KDE/Plasma デスクトップ環境の場合は、Deepin-wine#Deepin-wine applications fails to start を参照してください。

Crossover

CrossOver を使用して、QQ、TM2013、TIM を実行することもできます。詳細は CrossOver の互換性リスト を参照してください。

AppImage

AppImage は、アプリケーションを 1 つのファイルにパッケージ化する形式です。パッケージ化された Wine QQ/TIM を [1] からダウンロードできます。実行権限を与えるだけで使用できます。AppImage 形式にはプログラムに必要な依存関係が含まれているため、この方法はシステムの他のコンポーネントのバージョンに最も影響されにくいです。

ノート: AppImage はシステムの Wine を使用しないため、Wine の設定変更が無効になる場合があります(例: #HiDPI support)。

Teacher Qingfeng の Wine QQ プログラム

Teacher Qingfeng が提供する Wine QQ プログラムを使用することもできます。

ノート: インストールが成功した後、QQ の自動更新をオフにして、自動更新による使用不能を防ぐ必要があります。

手動 Wine ソリューション

QQ 軽量チャットバージョン

ノート: このプログラムは QQ 軽量チャットバージョン 6.7 を使用しています。後続のバージョンでは、現在の wine バージョンでのインストールに 追加の調整 が必要です。

winetrickswine をインストールします。以下の内容で qqlight.verb を作成します:

w_metadata qqlight apps \
 title="QQ Light" \
 publisher="Tencent" \
 year="2015" \
 media="download" \
 file1="QQ6.7Light.exe" \
 installed_exe1="$W_PROGRAMS_X86_WIN/Tencent/QQ/Bin/QQ.exe" \
 homepage="https://www.qq.com" \
 unattended="no"

load_qqlight()
{
    w_download https://dldir1.qq.com/qqfile/qq/QQ6.7Light/13466/QQ6.7Light.exe e1e1ff2bf6461c08047d0a01927a43c5a0746bdf

    if w_workaround_wine_bug 29636 "クラッシュバグを回避するためにネイティブ riched20 をインストール"
    then
        w_call riched20
    fi

    if w_workaround_wine_bug 34566 "クラッシュを回避するためにネイティブ ctf をインストール"
    then
        w_call msctf
    fi

    # 中国語フォントが利用可能であることを確認する
    w_call fakechinese

    # mfc42u.dll を使用
    w_call mfc42

    cd "$W_CACHE/$W_PACKAGE"
    w_try "$WINE" "$file1"

    # ログイン後のクラッシュ修正
    mkdir -p ~/.local/share/wineprefixes/qqlight/drive_c/users/$LOGNAME/Application\ Data/Tencent/QQ/Misc/com.tencent.wireless/SDK
    chmod 000 ~/.local/share/wineprefixes/qqlight/drive_c/users/$LOGNAME/Application\ Data/Tencent/QQ/Misc/com.tencent.wireless/SDK

    w_declare_exe "$W_PROGRAMS_X86_WIN\\Tencent\\QQ\\Bin" QQ.exe
}

winetricks を実行してインストールします:

$ winetricks qqlight.verb

インストール後、wineconsole を使用して起動します:

$ wineconsole .wine/drive_c/run-qqlight.bat

TIM

winewine-geckowine-mono をインストールします。

winetricks riched20 を実行するか、winecfg を使用して機能ライブラリの置換を設定します。

中国語フォントの表示を構成する必要がある場合があります。詳細は #Font configuration を参照してください。

TIM をインストールします。

アイコンの生成

インストールされた TIM は、プログラムリストにアイコンを生成していない場合があります。自分でアイコンを追加するには、新しい tim.desktop ファイルを作成し、以下の内容を書き込みます:

tim.desktop
[Desktop Entry]
Encoding=UTF-8
Version=1
Name=TIM
Comment=Tencent TIM
Exec=wine '~/.wine/drive_c/Program Files/Tencent/TIM/Bin/TIM.exe'
Icon=~/.wine/drive_c/Program Files/Tencent/TIM/TIMUninst.ico
Terminal=false
Type=Application
Categories=Network;

tim.desktop~/.local/share/applications または /usr/share/applications に移動します。

ヒントとテクニック

HiDPI サポート

HiDPI ディスプレイでは、QQ/TIM のインターフェースが小さすぎる場合があります。新しいバージョンの QQ/TIM には HiDPI のサポートが追加されています。Wine の DPI を手動で調整するだけです。

winecfg を実行し、開いたウィンドウで ディスプレイ タブに切り替え、DPI を調整します。

ノート: デフォルトの Wine コンテナを使用していない場合(例: Deepin QQ/TIM を使用する場合)、winecfg を実行する際に WINEPREFIX 変数を指定する必要があります。例: env WINEPREFIX=$HOME/.deepinwine/Deepin-QQ deepin-wine winecfg または env WINEPREFIX=$HOME/.deepinwine/Deepin-TIM deepin-wine winecfg

タイル型ウィンドウマネージャーでの設定

Awesome

タイル型ウィンドウマネージャーでは、Wine QQ/TIM が制御不能になる場合があり、いくつかの設定が必要です。

以下の設定には次の効果があります:

  • すべての TM ウィンドウをフローティングに設定。
  • 不必要なウィンドウの境界線を削除し、メニューがポップアップしたときにフォーカスがメニューに移動するのを防ぐ。
  • タブ付きの会話ウィンドウを使用すると、デジタルスイッチ Alt+Number ショートカットキーが有効になり、xdotool のインストールが必要です。
  • ポップアップするニュースウィンドウを自動的に閉じます。

以下の設定を Awesome の設定ファイルに追加します:

function myfocus_filter(c)
  if awful.client.focus.filter(c) then
    -- This works with tooltips and some popup-menus
    if c.class == 'Wine' and c.above == true then
      return nil
    elseif c.class == 'Wine'
      and c.type == 'dialog'
      and c.skip_taskbar == true
      and c.size_hints.max_width and c.size_hints.max_width < 160
      then
      -- for popup item menus of Photoshop CS5
      return nil
    else
      return c
    end
  end
end

awful.rules.rules = {
  -- All clients will match this rule.
  {
    rule = { },
    properties = {
      -- we use our own function
      focus = myfocus_filter,
      -- The following is the default part
      border_width = beautiful.border_width,
      border_color = beautiful.border_normal,
      keys = clientkeys,
      buttons = clientbuttons,
    }
  }, {
    rule_any = { 
      instance = {'TM.exe', 'QQ.exe'},
    },
    properties = {
      -- This, together with myfocus_filter, make the popup menus flicker taskbars less
      -- Non-focusable menus may cause TM2013preview1 to not highlight menu
      -- items on hover and crash.
      focusable = true,
      floating = true,
      -- remove the border
      border_width = 0,
    }
  }, {
    -- Other rules
  }
}

alt_switch_keys = awful.util.table.join(
    -- it's easier for a vimer to manage this than figuring out a nice way to loop and concat
    awful.key({'Mod1'}, 1, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+1') end),
    awful.key({'Mod1'}, 2, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+2') end),
    awful.key({'Mod1'}, 3, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+3') end),
    awful.key({'Mod1'}, 4, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+4') end),
    awful.key({'Mod1'}, 5, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+5') end),
    awful.key({'Mod1'}, 6, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+6') end),
    awful.key({'Mod1'}, 7, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+7') end),
    awful.key({'Mod1'}, 8, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+8') end),
    awful.key({'Mod1'}, 9, function(c) awful.util.spawn('xdotool key --window ' .. c.window .. ' ctrl+9') end)
)
function bind_alt_switch_tab_keys(client)
    client:keys(awful.util.table.join(client:keys(), alt_switch_keys))
end -- }}}

client.connect_signal("manage", function (c, startup)
  -- other configuration

  if c.instance == 'TM.exe' then
    -- add Alt+n support
    bind_alt_switch_tab_keys(c)
    -- close all kinds of news notification small windows
    if c.name and c.name:match('^腾讯') and c.above then
      c:kill()
    end
  end

  -- other configuration
end)

You can also look at the complete Awesome configuration.

i3

デフォルトの設定では、qq2012 を起動すると自動的に最大化され、境界線が美しくありません。i3config 設定で、次の 2 つのルールを設定することで改善できます:

for_window [instance="QQ.exe"] floating enable
for_window [instance="QQ.exe"] border none

トラブルシューティング

フォント設定

中国語の表示に問題がある場合は、まず winetricks fakechinese を実行してみてください。

また、フォントおよび fontconfig をサポートしないアプリケーションも参照してください。

ファイルが占有されている

QQ または TIM のプロセスを強制終了してください。QQ/TIM を終了した後も、一部の関連プロセスがバックグラウンドで実行されている場合があります。以下のスクリプトを使用して QQ/TIM を起動すると、既存のプロセスを見つけて終了し、新しい QQ/TIM を起動します。

start-tim.sh
#!/bin/sh
# TIM を起動するスクリプト
# 起動前に TIM を終了
for pid in `pgrep TIM.exe`; do
	if [ -n ${pid} ]; then
		kill ${pid}
	fi
done
# TIM を起動
wine '~/.wine/drive_c/Program Files/Tencent/TIM/Bin/TIM.exe'

上記の例は TIM 用ですが、少し変更することで QQ にも適用できます。

xfce4(xfwm4)で絵文字が入力できない

設定マネージャーで「ウィンドウマネージャーの微調整」→「フォーカス」に移動し、「ICCCM フォーカスプロンプトを無効化してフォーカスの盗難防止を有効にし、標準に従う」をオフにします。

これは、絵文字ウィンドウがフォーカスを取得した際に非互換性が発生するためです。

非中国語ロケールで中国語を入力できない

.desktop ファイルの Exec を変更します。通常、/usr/share/applications/ にありますが、上書きされないように ~/.local/share/applications/ にコピーする必要があります。

env LC_ALL=zh_CN.UTF-8Exec 行に追加します。 例えば、元の Exec が以下の場合:

Exec=".wine/drive_c/Program Files/QQ/Bin/QQ.exe"

以下のように変更します:

Exec=env LC_ALL=zh_CN.UTF-8 wine ".wine/drive_c/Program Files/QQ/Bin/QQ.exe"

高リフレッシュレートモニター使用時の画面ちらつき

Chromium#60 FPS より高いリフレッシュレートのディスプレイを使用しているのに Chromium は 60 FPS で描画されるを参照してください。

参照

翻訳ステータス: このページは en:Tencent QQ の翻訳バージョンです。最後の翻訳日は 2024-09-04 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。