Linux上的APL键映射(GNU APL)

时间:2015-01-14 20:11:24

标签: apl

我的祖父在60年代/​​ 70年代是IBM的APL程序员。他最近开始使用Linux,我一直在帮助他设置和使用GNU APL(http://www.gnu.org/software/apl/)。

目前我最头疼的是键盘映射。目前我已经安装了aplwrap GTK +(https://github.com/ChrisMoller/aplwrap)编辑器,该编辑器工作正常,但它并不精彩。我想设置一个APL字符的全局键映射,它在单击LALT +键或LALT + Shift +键时有效。我已经摆弄了GNU APL源代码中提供的xmodmap文件,但是当你尝试让它在启动时自动运行时,它会搞砸所有内容。

所以,我有两个问题:

  1. 是否可以让APL键映射为全局,并且还可以在启动时运行,因此不必手动打开它?

  2. 如果第一个问题不可能,那么是否可以为每个应用程序设置一个键盘映射?例如,Gnome Terminal和gEdit将使用LALT键映射作为APL字符,但系统的其余部分将正常工作。

  3. 非常感谢。

5 个答案:

答案 0 :(得分:5)

你很幸运,因为Linux(实际上是Xorg)拥有所有主要操作系统中功能最多,功能最强大的键盘配置系统。您可以从许多APL符号处理中进行选择,并将它们添加到您自己的国家键盘布局中。您甚至可以选择使用哪个键在常规字母和APL之间切换,并在整个系统中应用此选项。

如果您打开发行版的国际化或键盘布局设置(它可能位于类似控制面板的GUI中,或者它可能是设置文件,例如Debian中的/etc/default/keyboard),您将能够添加apl键盘布局到您现有的国家布局。 APL布局包括稍微标准位置的基本APL符号,并提供许多变体,用于选择其他符号或不同的配置,包括商用硬件键盘的那些:unified,{{ 1}},saxapl2aplplusIIaplx

请注意,APL布局旨在添加到您现有的国家布局,以及选择在两者之间切换或切换的键。如果您使用APL 替换您的国家布局,您将无法再输入标准字母了!

要测试布局,变体和选项的组合,您可以使用图形控制面板(如果有),或者可以使用dyalog命令。

例如,这会选择setxkbmap布局,在其默认变体中添加us布局,并将Windows键指定为两者之间的切换,以便 Win + A 给出⍺等。

apl

Protip:您可能希望保持另一个终端打开,并准备一些默认命令,例如setxkbmap us,apl -option grp:win_switch ,这样您就可以轻松按Enter键并重置布局,如果您的键盘无法使用。如果你甚至不能再按Enter键,你可以复制+粘贴换行符来执行命令。

在对布局,变体和选项的组合感到满意后,您必须将它们放入全局配置文件中,或使用控制面板按钮使它们成为永久选择。

如果您遇到某些特定选项组合的问题,您可能需要查看XKB documentation wiki,在众多Linux IRC频道之一上聊天,或在StackExchange上发布更具体的问题,尽管我建议使用Super UserUnix & LinuxAsk Ubuntu,而不是StackOverflow。

答案 1 :(得分:4)

我将插入自己的解决方案并建议使用Emacs。我为GNU APL编写了Emacs模式,它目前可以通过MELPA获得(它最终将转到标准的ELPA存储库)。您也可以在此处找到来源:https://github.com/lokedhs/gnu-apl-mode

Emacs模式提供了两种不同的输入APL符号的方法。第一个使用Super键和常用键。例如,您按s-e生成符号。

另一种方法是标准的Quail输入法,如果您没有可用的超级密钥(例如,您在终端中使用Emacs),这种方法很有用。您可以使用C-\启用它并选择APL-Z。完成此操作后,句点(.)将用作前缀字符,因此您可以按. e生成符号。

答案 2 :(得分:3)

我有GNU APL以及Dyalog APL在以下条件下工作得很好;首先我不使用图形服务器因为我不喜欢它(这肯定会使我的解决方案对你自己的情况不是很有趣,但是谁知道?)。 只要在控制台上启用兼容字体,就可以使用这两种软件;你可以通过两种方式实现它:

  • 使用Unifoundry中的专用字体(说明here)并使用setfont
  • 启用它
  • 使用帧缓冲终端(我自己做的),如fbterm;只需安装它并在控制台中键入fbterm;这将允许您在控制台上使用完整的Unicode范围;

然后你必须破解一些keymap字体;这不是太困难;你要么从现有文件制作一个副本,要么找一些准备好使用的文件(我强烈建议你破解你自己的文件;将有一个小时的工作,但文本编辑器没有任何困难):看看here

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

答案 3 :(得分:2)

我安装了Dyalog字体(此外,这只适用于Xorg)并运行此脚本。它允许元键(windows键)充当APL修饰键(就像hold 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

如果这个脚本适合你,那么我想让它在启动时运行实际上取决于你的操作系统。

答案 4 :(得分:0)

您可以选择购买APL键盘:https://www.dyalog.com/apl-font-keyboard.htm不是超便宜,但也不贵。