当前位置: 首页>>技术问答>>正文


如何重新映射大写锁定键?

, , ,

问题描述

在过去,过去我曾经使用xmodmap来防止Caps Lock按钮工作,然后告诉Launchy来处理按键操作。我似乎无法再这样做了。

禁用Caps Lock正常行为的最佳方法是什么,并让它做其他事情?

最佳解决方法

来自howtogeek.com,它对任何操作系统都有很好的答案。

对于Linux(包括Ubuntu):

setxkbmap -option <OPTION>

例如,<OPTION>可以是:

  • caps:none – 禁用大写锁定。

  • caps:super – Caps Lock成为额外的Super(又名Win键)。

  • caps:ctrl_modifier – Caps Lock成为一个额外的Ctrl。

  • caps:numlock – Caps Lock成为额外的Num Lock。

  • caps:escape – Caps Lock成为额外的Escape。

  • caps:backspace – Caps Lock成为额外的Backspace。

  • caps:swapescape – Caps Lock变为Escape,Escape变为Caps Lock

注意:不推荐使用Xmodmap,而选择setxkbmap。

次佳解决方法

您可以通过转到keyboard-> Layouts-> options->大写锁定行为并选择“禁用大写锁定”来禁用它。


编辑:

我不知道为什么用另一个键盘键看起来不方便。

但在使用CTRL + Super + Space尝试后,Launchy可以正常使用。

xorg,keyboard,shortcut-keys,ubuntu

你需要white-list launchy到托盘图标。请参阅如何访问并启用系统托盘中的更多图标?。您还需要将其添加到启动应用程序,因为它不会打开时不起作用。


毕竟,作为Launcy的替代品,请尝试使用Synapse与gnome和unity进行最佳集成。

第三种解决方法

在Ubuntu 11.10 – 13.04

  1. 打开“键盘布局”应用程序,然后单击“”Options””按钮。

  2. 重新绑定选项列表将会出现。选择“Caps Lock键行为”。

  3. 选择首选的Caps Lock重新调整选项。

xorg,keyboard,shortcut-keys,ubuntu

第四种方法

这基本上是对https://askubuntu.com/a/223674/22073提供的答案的修改。

您还可以使用XKBOption修改Caps Lock的行为。这些更改甚至传播到虚拟控制台(/dev /tty [1-6]或Ctrl-Alt-F [1-6])。

例如,要禁用Caps Lock,您将在/etc/default/keyboard中拥有以下内容:

# Check /usr/share/doc/keyboard-configuration/README.Debian for
# documentation on what to do after having modified this file.

# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="caps:none"

# If you don't want to use the XKB layout on the console, you can
# specify an alternative keymap.  Make sure it will be accessible
# before /usr is mounted.
# KMAP=/etc/console-setup/defkeymap.kmap.gz

然后你会运行:

sudo dpkg-reconfigure keyboard-configuration

有关XKBOPTIONS自定义的完整列表,请查看/usr/share/X11/xkb/rules/base.lst。这是我的Ubuntu 13.10机器的完整列表:http://sprunge.us/cUZO

更多信息可以在ArchLinux维基上找到:https://wiki.archlinux.org/index.php/Keyboard_Configuration_in_Xorg

第五种方法

要将无用的caps_lock重新映射到基本班次,请执行此操作

xmodmap -e "keycode 66 = Shift_L"

第六种方法

以下方法使用Compiz的组合在制作key-press时启动应用程序。

综上所述 –

  1. 更改Caps Lock键的行为以模仿另一个键。

  2. 配置compiz以侦听新模仿的密钥并运行自定义脚本。

更改大写锁定键

要更改Caps Lock键的行为,您可以使用xmodmap,如下所示:

  • 创建文件,例如”capslock”

  • 将以下内容复制并粘贴到文件中

keycode 66 = cent clear Lock add Control = cent 
  • 现在运行xmodmap来识别您的更改:

xmodmap capslock

要永久运行,请将此命令添加到启动应用程序。

按下Caps Lock现在只是模仿按下”cent”键 – 请注意,这不是键盘上实际存在的键。

您可以获得KeySym names from here列表。

配置Compiz

启动CompizConfig设置管理器

在常规部分中,确保已启用”Commands”并配置命令,如下所示:

xorg,keyboard,shortcut-keys,ubuntu

注:启用键绑定并使用“抓取组合键”识别您的”cent”键。不幸的是,你不能让compiz识别上限锁定键。

xorg,keyboard,shortcut-keys,ubuntu

显然 – 更改”firefox”用于启动”launchy”的任何命令

现在,当你点击Caps Lock键时,compiz将识别映射的”cent”键并运行命令 – 在本例中为firefox – 在你的情况下为”launchy”。

第七种方法

  1. 使用xev命令。当你按Enter键时,xev将启动。 xev将关于密钥的所有输入和poops信息都带入命令行。我建议将鼠标放在xev窗口的退出键上,按下大写锁定(或任何你想要查找的键),然后立即退出xev。我的系统上的相关行,大写锁定看起来像:

    KeyPress event, serial 36, synthetic NO, window 0x4400001,
        root 0x27a, subw 0x0, time 19164277, (16,-9), root:(1156,46),
        state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
        XLookupString gives 0 bytes: 
        XmbLookupString gives 0 bytes: 
        XFilterEvent returns: False
    
    KeyRelease event, serial 36, synthetic NO, window 0x4400001,
        root 0x27a, subw 0x0, time 19164397, (16,-9), root:(1156,46),
        state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
        XLookupString gives 0 bytes: 
        XFilterEvent returns: False
    

    请注意keycode(66)和keysym(0xffe5)。

    您现在也可以获取另一个键的数据 – 您实际上没有使用的键,以及在您想要使用大写锁定按钮的上下文中,它不执行任何操作。所以,如果你想要大写锁定来激活Unity搜索框(就像超级通常那样),也许可以使用`,例如。在我的机器上:

    keycode 49 (keysym 0x60, grave)
    
  2. 使用xmodmap将新密钥的功能绑定到Caps Lock按钮。我很确定你想要使用如下命令:

    xmodmap -e "keycode 66=0x60"
    

    现在,如果您在文本框中点击物理大写锁定按钮,则会出现严重字符(`)。但是,如果您将快捷键映射到它,它将执行其他操作。如果您希望能够在文本框中使用它,可能会使用左移或f10替换大写锁定,或者看起来不会影响您要使用的命令的其他内容。

  3. 测试它以确保我给你的命令按照你想要的方式工作。

  4. 转到启动应用程序,并将该命令添加到启动应用程序。这样,每次启动时钥匙都会正常切换。

  5. 舞蹈。

(向企业大喊)Change Keybindings (hardware to software)

另外,有关xmodmap的更多帮助:

http://www.xfree86.org/4.2.0/xmodmap.1.html

http://www.in-ulm.de/~mascheck/X11/xmodmap.html

第八种方法

Ubuntu 16.04

Wernight的答案中的setxkbmap -option <OPTION>似乎立即为我工作。

但是它会在重新启动时消失。为了解决这个问题,我加入了我的startup applications

  1. 搜索并运行Startup Applications>>单击添加

  2. 输入/usr/bin/setxkbmap -option <OPTION>作为命令(注意:完整路径很重要)

caps:escape替换<OPTION>(我用它作为vi)

背景

我刚刚从15.10升级到16.04,无论我以前用什么来映射它都停止工作。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1094.html,未经允许,请勿转载。