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
    • 最新
    • 标签
主页 / user-284021

Lustique's questions

Martin Hope
Lustique
Asked: 2018-04-03 13:57:25 +0800 CST

将 Escape 键变成一个修饰符,在点击时仍充当 Escape

  • 3

我使用平铺窗口管理器(目前是 xMonad),因此我需要一个充当窗口管理“控制键”的键。每当我使用带有 Windows/Super/Mod4 键的键盘时,我将左 Windows 键用作该键,而我的右 Windows 键用作 Compose/Multi_key。

但是,我也有几个([非常]旧的)键盘没有任何 Windows 键(即它们没有 winkeyless),而且我没有任何可以(舒适地)用作我的键'WM 控制键'。过去,因为 xMonad 允许这样做,所以我使用 Control+Alt 作为我的“WM 控制键(组合)”,但一段时间后我注意到,这会干扰(一些)Emacs(移动命令),所以这不是一个选项了。因此,我认为我可以通过以下方式使用我的 Escape 键:

  • 如果我按住 Ecs,它的作用就像 Mod4
  • 如果我点击 Esc,它将充当 Escape

AFAIK,按住 Escape 并不会正常执行任何操作,所以我认为这样做可能是个好主意。然后我尝试通过使用来实现这一点xmodmap:

clear Mod4 
add Mod4 = Super_L Escape

我所期望的:Super_L 仍然充当 Super,而 Escape 现在是一个额外的 Super。下一步将是xcape用来获取(一些)旧的 Escape 键行为。

我得到了什么(的输出xmodmap):

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):                                                                         

shift       Shift_L (0x32),  Shift_R (0x3e)                                                                                             
lock        Caps_Lock (0x42)                                                                                                            
control     Control_L (0x25),  Control_R (0x69)                                                                                         
mod1        Alt_L (0x40),  Meta_L (0xcd)                                                                                                
mod2        Num_Lock (0x4d),  Hyper_L (0xcf)                                                                                            
mod3        Scroll_Lock (0x4e),  Mode_switch (0xcb)                                                                                     
mod4        Escape (0x9),  y (0x34),  Super_L (0x85),  Super_L (0xce)                                                                   
mod5        ISO_Level3_Shift (0x5c) 

我不明白的是:

  • 为什么y突然也设置为 Mod4?
  • 为什么 Escape 仍然可以用作 Escape(按下一次)和Super(按下时;我在尝试测试更改时注意到了这一点),尽管此时我还没有使用过xcape。

这是一个错误xmodmap,还是我使用xmodmap不正确?我怀疑是后者,但是有人可以帮助我实现我想要做的事情吗?


更多信息(希望不是无关紧要的):

  • 我目前的操作系统是 Arch Linux
  • 我对使用其他软件的解决方案持开放态度,例如xkb,xdotool等。
  • 我目前正在使用德国 QWERTZ 布局(即 ISO,而不是 ANSI),有时使用Neo(其中,AFAIK 被实现为de键映射/布局的另一种变体;请参见localectl下面的输出)
  • 我希望我的解决方案能够独立于键盘/硬件工作:如果我更换键盘,我不想更改任何配置文件。
  • 在任何人建议之前:将 Super 映射到 Capslock 不是一个选项,因为我有时使用 Neo 布局,它使用 Capslock 作为其第 3 层修改器之一,它也用于第 5 层和第 6 层。这也意味着我希望这个解决方案也独立于键盘布局,因此我可以轻松地在 Neo 和 QWERTZ 之间切换。
  • 我仍然愿意接受其他建议。我唯一的要求:对任何其他程序(例如 Emacs 或 Vim)没有/最小的干扰,并且用作我的“WM 控制键”的键(组合)应该位于我键盘的左侧,因为其他大多数我用来控制 WM 的键位于键盘的右侧(例如 h、j、k、l、...)。

在任何更改之前,即我目前的情况,xmodmap输出:

xmodmap:  up to 2 keys per modifier, (keycodes in parentheses):                                                                         

shift       Shift_L (0x32),  Shift_R (0x3e)                                                                                             
lock        Caps_Lock (0x42)                                                                                                            
control     Control_L (0x25),  Control_R (0x69)                                                                                         
mod1        Alt_L (0x40),  Meta_L (0xcd)                                                                                                
mod2        Num_Lock (0x4d),  Hyper_L (0xcf)                                                                                            
mod3        Scroll_Lock (0x4e),  Mode_switch (0xcb)                                                                                     
mod4        Super_L (0x85),  Super_L (0xce)                                                                                             
mod5        ISO_Level3_Shift (0x5c)  

我目前.Xmodmap是:

add Mod3 = Scroll_Lock

并localectl说:

   System Locale: LANG=de_DE.UTF-8
                  LC_COLLATE=C
       VC Keymap: de-latin1-nodeadkeys
      X11 Layout: de,de
       X11 Model: pc105
     X11 Variant: nodeadkeys,neo
     X11 Options: compose:rwin,grp:ctrls_toggle
keyboard-layout keyboard
  • 1 个回答
  • 840 Views

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助
subwaysurfers
my femboy roommate

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve