我的祖父在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文件,但是当你尝试让它在启动时自动运行时,它会搞砸所有内容。
所以,我有两个问题:
是否可以让APL键映射为全局,并且还可以在启动时运行,因此不必手动打开它?
如果第一个问题不可能,那么是否可以为每个应用程序设置一个键盘映射?例如,Gnome Terminal和gEdit将使用LALT键映射作为APL字符,但系统的其余部分将正常工作。
非常感谢。
答案 0 :(得分:5)
你很幸运,因为Linux(实际上是Xorg)拥有所有主要操作系统中功能最多,功能最强大的键盘配置系统。您可以从许多APL符号处理中进行选择,并将它们添加到您自己的国家键盘布局中。您甚至可以选择使用哪个键在常规字母和APL之间切换,并在整个系统中应用此选项。
如果您打开发行版的国际化或键盘布局设置(它可能位于类似控制面板的GUI中,或者它可能是设置文件,例如Debian中的/etc/default/keyboard
),您将能够添加apl
键盘布局到您现有的国家布局。 APL布局包括稍微标准位置的基本APL符号,并提供许多变体,用于选择其他符号或不同的配置,包括商用硬件键盘的那些:unified
,{{ 1}},sax
,apl2
,aplplusII
,aplx
。
请注意,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 User,Unix & Linux或Ask 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在以下条件下工作得很好;首先我不使用图形服务器因为我不喜欢它(这肯定会使我的解决方案对你自己的情况不是很有趣,但是谁知道?)。 只要在控制台上启用兼容字体,就可以使用这两种软件;你可以通过两种方式实现它:
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不是超便宜,但也不贵。