5

私の祖父は、60 年代から 70 年代にかけて IBM で APL プログラマーを務めていました。彼は最近 Linux を使い始めました。私は彼が GNU APL ( http://www.gnu.org/software/apl/ )をセットアップして使用するのを手伝っています。

現時点で私にとって最大の頭痛の種はキーマッピングです。現時点では、問題なく動作する aplwrap GTK+ ( https://github.com/ChrisMoller/aplwrap ) エディターをインストールしましたが、素晴らしいものではありません。LALT + キーまたは LALT + Shift + キーをクリックしたときに機能する APL 文字のグローバル キーマップをセットアップしたいと思います。GNU APL ソース コードで提供されている xmodmap ファイルをいじりましたが、起動時に自動的に実行しようとすると、すべてが台無しになります。

だから、私は2つの質問があります:

  1. APL キーマッピングをグローバルにし、起動時に実行して、手動でオンにする必要がないようにすることは可能ですか?

  2. 最初の質問ができない場合、アプリケーションごとにキーマップをセットアップすることは可能ですか? たとえば、Gnome ターミナルと gEdit は APL 文字に LALT キーマッピングを使用しますが、システムの残りの部分は通常どおり動作します。

どうもありがとう。

4

4 に答える 4

7
于 2015-01-15T09:52:41.380 に答える
6

Linux (実際には Xorg) は、すべての主要な OS の中で最も用途が広く強力なキーボード構成システムを備えているため、幸運です。多数の APL 記号配置から選択して、独自の各国語キーボード レイアウトに追加できます。通常の文字と APL を切り替えるために使用するキーを選択して、この選択をシステム全体に適用することもできます。

ディストリビューションの国際化またはキーボード レイアウト設定 (コントロール パネルのような GUI にある場合もあれば、Debian などの設定ファイルにある場合もあります) を開くと、キーボードレイアウトを既存の国内レイアウト/etc/default/keyboardに追加できます。APL レイアウトには、基本的な APL 記号がやや標準的な位置に含まれており、市販のハードウェア キーボードのものを含め、追加の記号または異なる配置を選択する多数のバリアントが用意されています:、、、、。aplunifiedsaxapl2aplplusIIaplxdyalog

APL レイアウトは、2 つの間で切り替えまたはトグルするためのキーの選択と共に、既存の国内レイアウトに追加されることを意図していることに注意してください。国別レイアウトを APLに置き換えると、標準文字を入力できなくなります。

レイアウト、バリアント、およびオプションの組み合わせをテストするには、グラフィカル コントロール パネルがあればそれを使用するか、setxkbmapコマンドを使用できます。

たとえば、これはusレイアウトを選択aplし、デフォルトのバリアントに 1 つを追加し、Windows キーを 2 つの間のスイッチとして指定するため、Win+Aは ⍺ などを与えます。

setxkbmap us,apl -option grp:win_switch

setxkbmap usプロのヒント:キーボードを使用できなくした場合に、その中で Enter キーを押してレイアウトをリセットできるように、別のターミナルを開いたままにして、デフォルトのコマンドを準備しておきたい場合があります。Enter キーを押すことさえできない場合は、改行をコピーして貼り付けてコマンドを実行できます。

レイアウト、バリアント、およびオプションの組み合わせに満足したら、それらをグローバル構成ファイルに入れるか、それらを永続的な選択にするコントロール パネル ボタンを使用する必要があります。

特定のオプションの組み合わせで問題が発生した場合は、XKB ドキュメント wikiを調べたり、多くの Linux IRC チャンネルのいずれかでチャットしたり、より具体的な質問を StackExchange に投稿したりすることをお勧めしますが、スーパー ユーザーを使用することをお勧めします。 、Unix & Linux、またはAsk Ubuntuを、StackOverflow の代わりに使用します。

于 2015-01-17T14:30:30.290 に答える
4

私は GNU APL と Dyalog APL を次の条件でうまく動作させています。最初に、私はあまり好きではないため、グラフィカル サーバーを使用しません (これにより、私のソリューションは確かにあなた自身のケースではあまり面白くなくなりますが、誰が知っていますか? )。コンソールで準拠フォントを有効にしている限り、両方のソフトウェアを使用できます。次の 2 つの方法で実現できます。

  • Unifoundryの専用フォント(説明はこちら) を使用し、setfont
  • フレームバッファ端末を使用する(私が自分で行うこと)のようにfbterm; インストールfbtermしてコンソールに入力するだけです。これにより、コンソールで完全な Unicode 範囲を使用できるようになります。

次に、いくつかのキーマップ フォントをハックする必要があります。それほど難しくありません。現在のファイルからコピーを作成するか、すぐに使用できるファイルを見つける必要があります (独自のファイルをハックすることを強くお勧めします。1 時間の作業が必要ですが、テキスト エディターで難しいことは何もありません): 見てください。ここに

これが完了すると、Linux コンソールで APL を使用するのは非常に簡単になります。

于 2015-01-16T08:36:41.000 に答える
2

Dyalog フォントをインストールし (これは Xorg でのみ動作します)、このスクリプトを実行します。これにより、メタ キー (Windows キー) を APL 修飾キーとして機能させることができます (Shift キーを押しながら大文字を入力する方法と同様):

#!/bin/bash

if [ "$DISPLAY" >> /dev/null ]
then
        ## We are running Xorg
        if ! [ `setxkbmap -query | awk '/layout/ {print $2}' | grep "apl"` ]
        then
                ## We have no APL layout - so lets set one up - we're going to use the Windows Key.
                ## Setup keyboard map
                XKBRULES=`setxkbmap -query | awk '/rules/ {print $2}'` 2>/dev/null
                XKBMODEL=`setxkbmap -query | awk '/model/ {print $2}'` 2>/dev/null
                XKBLAYOUT=`setxkbmap -query | awk '/layout/ {print $2}'` 2>/dev/null
                XKBVARIANT=`setxkbmap -query | awk '/variant/ {print $2}'` 2>/dev/null
                XKBOPTIONS=`setxkbmap -query | awk '/options/ {print $2}'` 2>/dev/null
                setxkbmap -rules ${XKBRULES} -model ${XKBMODEL} -layout "${XKBLAYOUT},apl" \
                        -variant "${XKBVARIANT},dyalog" \
                        -option "${XKBOPTIONS},grp:win_switch" 2>/dev/null
        fi
fi

このスクリプトが機能する場合、起動時にスクリプトを実行できるかどうかは、オペレーティング システムに大きく依存していると思います。

于 2015-01-15T00:34:39.567 に答える