Linux での中国語入力方法の問題を素早く解決する

Linux での中国語入力方法の問題を素早く解決する

背景: 最近、資産報告関連の機能に取り組んでおり、中国語入力をサポートする必要があります。通常のショートカットでプログラムを起動すると、問題はありません。ただし、アップグレードまたはアンインストールして再インストールする場合は、su usr -C XX.sh で起動します。ルートで起動すると、ユーザーの環境変数を取得できません。冒険を始めましょう。 。 。

調査: エクスポート印刷を通じてルートとユーザーの環境変数を比較し、Google で Linux の入力方法に関連する問題を検索したところ、変数 QT_IM_MODULE が見つかりました。システムによって、ibus や fctix などの変数が異なる場合があります。

解決策: プログラムを初めてインストールするときにはユーザーが手動で起動する必要があるため、現在のユーザーの QT_IM_MODULE の値を取得し、それをグローバル ファイルに書き込んで、フック スクリプトでこのグローバル変数の値を取得するコードを追加する必要があります。起動スクリプトでは、export QT_IM_MODULE=XX を設定するだけです。コードを以下に示します。

コードには次のような内容が含まれています:

1. プログラムに追加する必要があるコード:

// グローバル中国語入力方法環境変数を追加します QString qstrInputMethod = path;
    qstrInputMethod + = "/.local/sdforcnos/sdforcnos.inputMethod";
    char *pInputEnv = getenv("QT_IM_MODULE");
    pInputEnv != NULL の場合
    {
      QString qstrCMD = QString("echo %1 > %2").arg(pInputEnv).arg(qstrInputMethod);
      システム(qstrCMD.toStdString().c_str());
      printf("---%s------------QT_IM_MODULE=%s\n", qstrCMD.toStdString().c_str(), pInputEnv);
    }

2. フックスクリプトに必要なコード:

 if [ -e "/home/${user}/.local/sdforcnos/sdforcnos.inputMethod" ];then
     inputEnv=`cat /home/${user}/.local/sdforcnos/sdforcnos.inputMethod`
     if [ ! -z "$inputEnv" ]; then
       エクスポート QT_IM_MODULE="$inputEnv"
     フィ
    フィ
    su $user -c "/usr/bin/startsd &"

要約する

Linux での中国語入力方法の問題に関するこの記事はこれで終わりです。Linux での中国語入力方法の問題に関する関連コンテンツの詳細については、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Trash-Cli: Linux のコマンドラインごみ箱ツール
  • Linux のごみ箱スクリプトを作成するための 101 個のスクリプト
  • Linux は suid vim.basic ファイルを使用して権限昇格を実現します。
  • MySQL を使用してポート 3306 を開いたり変更したり、Ubuntu/Linux 環境でアクセス許可を開く
  • Linux システムで Vim を使用してリモート ファイルを読み書きするコマンドの詳細な説明
  • Linux サーバーのグラフィック カードのクラッシュの解決策
  • Linux のごみ箱メカニズムの実装プロセスと使用方法の詳細な説明

<<:  Vue はアップロードされた画像に透かしを追加する機能を実装します

>>:  Navicat が MySql サーバーにリモート接続できない問題の解決策

推薦する

MySQL 8.0.13 手動インストールチュートリアル

この記事では、MySQL 8.0.13の手動インストールチュートリアルを参考までに紹介します。具体的...

1つの記事でTypeScriptのデータ型について学ぶ

目次基本タイプあらゆるタイプ配列タプルインタフェース関数自己推論を入力する結合タイプ(1つ以上選択)...

JSON.stringify の簡易版の実装とその 6 つの主要機能の詳細な説明

目次序文JSON.stringify の 6 つの機能特集1特集2特集3特集4特集5特集6手動で文字...

ミニプログラムはミニプログラムクラウドを使用してWeChatの支払い機能を実装します

目次1. WeChat Payを開く1.1 アフィリエイト加盟店番号1.2 加盟店番号を追加する1....

MySQL パフォーマンス最適化インデックス プッシュダウン

インデックス条件プッシュダウン (ICP) は MySQL 5.6 で導入され、クエリを最適化するた...

Linux システムでのユーザー管理の概要

目次1. ユーザーとユーザーグループの重要性1) ユーザーの存在意義2) ユーザーグループの重要性2...

Linux ファイアウォールの状態確認方法の例

Linuxファイアウォールの状態を確認する方法1. 基本操作 # ファイアウォールのステータスを表示...

...

HTML 固定タイトル列、タイトル ヘッダー テーブル固有の実装コード

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

Vue スクロールダウンしてさらにデータを読み込む スクロールケースの詳細な説明

vue-無限スクロールインストール npm インストール vue-infinite-scroll -...

IDEA の Docker プラグインを介して Springboot プロジェクトを公開する方法の詳細なチュートリアル

1. Dockerfileを書く(1)プロジェクト名を右クリックして新しいテキストファイルを作成し、...

Navicat for MySQL 15 登録とアクティベーションの詳細なチュートリアル

1. Navicat for MySQL 15をダウンロードするhttps://www.navica...

Ubuntu 20.04 は Wi-Fi に接続します (2 つの方法)

最近Ubuntu 20.04をインストールしましたが、Wi-Fiに接続できず、Wi-Fiアイコンも表...

Vueはドラッグプログレスバーを実装します

この記事では、ドラッグプログレスバーを実現するためのVueの具体的なコードを例として紹介します。具体...