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 サーバーにリモート接続できない問題の解決策

推薦する

HTML タグ dl dt dd 使用方法

基本構造:コードをコピーコードは次のとおりです。 <ダウンロード> <dt>...

iptables の再起動後に Docker の iptables ルールの完全なプロセスが失われる

原因と結果1. ansibleコマンドを使用してジャンプサーバー上のマシンBをテストすると、次のエラ...

webpackコード断片化の実装

目次背景コモンズチャンクプラグイン分割チャンク構成リソースを非同期に読み込む要約する背景高性能なアプ...

Centos7にTenda U12ワイヤレスネットワークカードドライバーをインストールする際の問題を解決する

解決プロセス:方法1: CentOS7.3 のデフォルトのカーネル バージョンは低く、3.10.0-...

Vueベースのカスタムコンポーネントを実装してアイコンを導入する

序文プロジェクト開発では、アイコンを使用する方法はたくさんあります。iconfont で適切なアイコ...

Linux プラットフォームの MySQL でリモート ログインを有効にする

開発中、MySQL へのリモートアクセスでよく問題に遭遇します。そのたびに検索する必要があり、面倒に...

SqlクエリMySqlデータベーステーブル名と説明テーブルフィールド(列)情報

以下では、SQL クエリ ステートメントを使用して、Mysql データベース内のテーブルのテーブル名...

MySQLのロック機構に関する最も包括的な説明

目次序文グローバルロック完全なデータベース論理バックアップFTWRL と set global re...

MySQL Null は 5 つの問題を引き起こす可能性があります (すべて致命的)

目次1. カウントデータが失われる解決2. 明確なデータ損失3.データ損失を選択解決4. Nullポ...

MySQL 8.0 の新機能 - チェック制約の紹介

目次序文チェック制約作成、削除、表示制限要約する序文MySQL 8.0 では、チェック制約という非常...

uni-app WeChatアプレット認証ログイン実装手順

目次1. appIDの申請と設定1. appidの取得方法2. AppIDの設定2. 基本的なユーザ...

Linux システムに Zookeeper サービスをインストールする方法

1. /usr/local/services/zookeeper フォルダを作成します。 mkdir...

一般的な Dockerfile コマンドの使用方法の紹介

目次01 CM 02 エントリーポイント03 ワークディレクトリ04 環境05 ユーザー06巻07 ...

MySQL データベースのインデックス順序の詳細な説明

目次事件の原因解剖学ファイルの並べ替えファイルのソートが非常に遅いのですが、他に解決策はありますか?...

MySQLにおけるテーブルインデックスの定義方法と導入

概要インデックスは、テーブル内の 1 つ以上の列に基づいて DBMS によって特定の順序で作成される...