簡體   English   中英

Linux 上的 APL 鍵映射 (GNU APL)

[英]APL Keymapping on Linux (GNU APL)

我的祖父是 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 文件,但是當您嘗試讓它在啟動時自動運行時,它搞砸了一切。

所以,我有兩個問題:

  1. 是否可以將 APL 鍵盤映射設為全局並在啟動時運行,因此不必手動打開?

  2. 如果第一個問題是不可能的,那么是否可以為每個應用程序設置一個鍵盤映射? 例如,Gnome 終端和 gEdit 將對 APL 字符使用 LALT 鍵映射,但系統的其余部分將正常工作。

非常感謝。

我將插入我自己的解決方案並建議使用 Emacs。 我為 GNU APL 編寫了 Emacs 模式,目前它可以通過 MELPA 獲得(它最終會進入標准的 ELPA 存儲庫)。 你也可以在這里找到源: https : //github.com/lokedhs/gnu-apl-mode

Emacs 模式提供了兩種不同的輸入 APL 符號的方法。 第一個使用 Super 鍵和常用鍵。 例如,您按se生成符號。

另一種方法是標准的 Quail 輸入法,如果您沒有可用的超級鍵(例如,您在終端中使用 Emacs),這將很有用。 您可以使用C-\\並選擇APL-Z啟用它。 完成此操作后,句點 ( . ) 將用作前綴字符,因此您可以按,例如, . e . e生成符號。

你很幸運,因為 Linux(實際上是 Xorg)擁有所有主要操作系統中最通用和最強大的鍵盤配置系統。 您可以從許多 APL 符號配置中進行選擇,並將它們添加到您自己的國家鍵盤布局中。 您甚至可以選擇使用哪個鍵在普通字母和 APL 之間切換,並將此選擇應用於整個系統。

如果您打開發行版的國際化或鍵盤布局設置(它可以在類似控制面板的 GUI 中,也可以是一個設置文件,例如 Debian 中的/etc/default/keyboard ),您將能夠添加apl鍵盤布局到您現有的國家布局。 APL 布局包括處於某種標准位置的基本 APL 符號,並提供了許多選擇附加符號或不同配置的變體,包括市售硬件鍵盤的那些: unifiedsaxapl2aplplusIIaplxdyalog

請注意,APL 布局旨在添加到您現有的國家布局中,同時可選擇在兩者之間切換或切換的鍵。 如果您用 APL替換您的國家布局,您將無法再輸入標准字母!

要測試布局、變體和選項的組合,您可以使用圖形控制面板(如果有的話),或者您可以使用setxkbmap命令。

例如,這選擇了us布局,添加了apl一個,在其默認變體中,並指定 Windows 鍵作為兩者之間的切換,以便Win + A給出 ⍺ 等。

setxkbmap us,apl -option grp:win_switch

提示:您可能希望使用准備好一些默認命令的另一個終端打開,例如setxkbmap us ,以便您可以輕松地在其中按 Enter 並重置您的布局,如果您使鍵盤無法使用。 如果您甚至不能再按 Enter,您可以復制+粘貼換行符來執行命令。

在您對布局、變體和選項的組合感到滿意后,您必須將它們放入全局配置文件中,或使用使它們成為永久選擇的控制面板按鈕。

如果您在某些特定的選項組合方面遇到問題,您可能需要查看XKB 文檔維基,在眾多 Linux IRC 頻道之一上聊天,或者在 StackExchange 上發布更具體的問題,盡管我建議使用超級用戶, Unix & Linux , 或Ask Ubuntu ,而不是 StackOverflow。

我有 GNU APL 以及 Dyalog APL 在以下條件下運行良好; 首先我不使用圖形服務器,因為我真的不喜歡它(這肯定會使我的解決方案對您自己的情況不是很有趣,但誰知道呢? )。 只要在控制台上啟用兼容字體,您就可以使用這兩種軟件; 您可以通過兩種方式實現它:

  • 使用Unifoundry的專用字體( 此處有說明)並使用setfont啟用它
  • 使用像fbterm這樣的幀緩沖終端(我自己做的); 只需安裝它並在控制台中輸入fbterm 這將允許您在控制台上使用完整的 Unicode 范圍;

然后你必須破解一些鍵盤映射字體; 難度不大; 你要么從當前的文件中復制一份,要么找到一些現成的文件(我強烈建議你破解自己的文件;將有一個小時的工作時間,但使用文本編輯器沒有什么困難):看看在這里

完成此操作后,在 Linux 控制台中使用 APL 非常容易。

我安裝了 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

如果這個腳本適合你,那么我想讓它在啟動時運行真的取決於你的操作系統。

您可以選擇購買APL鍵盤: https//www.dyalog.com/apl-font-keyboard.htm不是超便宜,但也不貴。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM