AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1299797
Accepted
Simon
Simon
Asked: 2020-12-14 07:02:13 +0800 CST2020-12-14 07:02:13 +0800 CST 2020-12-14 07:02:13 +0800 CST

使用 xkbcomp 的键盘映射中令人费解的现象

  • 772

ctrl为了实现左键和键的低级交换capsLock,我使用xkbcomp如下:

首先获取当前的键盘布局:

 xkbcomp $DISPLAY output.xkb

然后我将 2 行output.xkb从

<LCTL> = 62;
...
<CAPS> = 66; 

至

<CAPS> = 62;
...
<LCTL> = 66;

然后运行

xkbcomp output.xkb $DISPLAY

使其生效。它在大多数桌面应用程序中都能完美运行。但问题在于vscode. 实际上它在正常模式下也可以正常工作vscode,但是当我尝试更改快捷键vscode并提示我按新键更改快捷键时,我按下capsLock键盘上的键并vscode认为我同时按下了ctrl+ capsLock。这不是我所期望的,vscode不应该知道我的capsLock键,它应该只知道我按下了ctrl键,因为XServer应该只告诉vscode我按下了ctrl键。我认为是因为我的配置不完整,所以vscode仍然可以检测到我的capsLock密钥。谁能告诉我如何完全交换ctrland capsLock?xmodmap不应该是解决方案,因为它基于xkbcomp并且功能有限。

keyboard-layout xkb
  • 1 1 个回答
  • 192 Views

1 个回答

  • Voted
  1. Best Answer
    ingank
    2020-12-14T12:18:48+08:002020-12-14T12:18:48+08:00

    不幸的是,我在 VSCode 中的行为与您相同,但我正在使用以下解决方法,直至另行通知:

    xkbcomp $DISPLAY output_orig.xkb
    xkbcomp $DISPLAY output_mod.xkb
    

    根据我的想法编辑文件output_mod.xkb 。

    如果我在 vscode 中正常工作,我会使用

    xkbcomp output_mod.xkb $DISPLAY
    

    如果我编辑键盘快捷键,我以前使用过:

    xkbcomp output_orig.xkb $DISPLAY
    

    使用原始键进行更改,然后将布局设置回键交换:

    xkbcomp output_mod.xkb $DISPLAY
    

    好的,这不是很聪明,但对这个特定问题很有效。

    /// 编辑 ///

    经过一些研究,似乎有更好的解决方案,尤其是针对vscode 行为:

    在终端:

    nano ~/.config/Code/User/settings.json
    

    插入代码:

    {
        "keyboard.dispatch": "keyCode"
    }
    

    如果此文件中已存在代码:

    {
        "bla": "blub",
        "keyboard.dispatch": "keyCode"
    }
    

    重启vscode。

    • 0

相关问题

  • 重新映射键盘键

  • 如何将字符映射到组合键?

  • 如何阻止“gnome-screensaver”将我的键盘重置为默认布局?

  • 如何重置我的键盘布局?

  • 如何键入 ë 之类的重音字符?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve