スマート共通入力方式(SCIM)は、中国語・日本語・韓国語(CJK)などの文字体系や多くのヨーロッパ言語を含む、30以上の言語をコンピュータに入力するためのプラットフォームです。LinuxやBSDなどのPOSIX準拠のオペレーティングシステムで使用されています。その目的は、あらゆる国のユーザーにシンプルで強力な共通インターフェースを提供すること、そしてプログラミングのための明確なアーキテクチャを提供することで、個別の入力方式の開発に必要な時間を短縮することです。
SCIMプロジェクトの主な目標は以下のとおりです。

SCIM は元々C++言語で書かれていましたが、 1.4.14 以降は純粋なC 言語に移行しました。 [ 1 ]入力メソッドのインターフェースをいくつかのクラスに抽象化し、クラスを簡素化して互いに独立性を高めるようにしています。よりシンプルで独立したインターフェースにより、開発者はより少ないコード行で独自の入力メソッドを記述できます。
SCIMはモジュール化されたIMプラットフォームであり、コンポーネントは動的にロード可能なモジュールとして実装できるため、実行時に必要に応じてロードできます。例えば、SCIM用に記述された入力メソッドはIMEngineモジュールとして実装でき、ユーザーはIMEngineモジュールを書き換えたり再コンパイルしたりすることなく、異なる環境で異なるインターフェースモジュール(フロントエンド)と組み合わせて使用できます。これにより、プロジェクトのコンパイル時間や開発時間を短縮できます。
SCIMは、 XIMやIIIMFに似た高レベルライブラリですが、SCIMはこれらのIMプラットフォームよりもシンプルであると主張しています。また、SCIMはXIMやIIIMFと併用できるとも主張しています。さらに、SCIMは、GTK+、Qt、Clutterなどの既存のアプリケーションツールキットの入力メソッドインターフェースをIMmodulesを介して拡張するためにも使用できます。[ 2 ]
SKIMは、SCIMをKデスクトップ環境にさらに緊密に統合することを目的とした独立したプロジェクトです。GUIパネル(scim-panel- gtkの代替としてscim-panel- kdeという名前)、KConfig設定モジュール、およびSKIM自身とSCIMモジュールlibscimのセットアップダイアログを提供します。また、オンデマンドでロード可能なアクションをサポートする独自のプラグインシステムも備えています。
t-latn-preとt-latn-post は、アクセント付き文字を簡単に合成できる 2 つの入力方法です。通常の文字の前に発音記号を付ける (t-latn-pre の場合) か、記号を後から追加する (t-latn-post の場合) かのいずれかです。これらの入力方法の主な利点は、さまざまな言語の合成文字を多数入力できるため、たとえば個別のキーボード レイアウトをインストールする必要がないことです。[ 3 ]これらの入力方法は、 M17n ライブラリ を介して SCIM で使用できます。