Questions tagged «xmodmap»

xmodmap是用于在Xorg环境中操作键映射和指针按钮映射的工具。

3
如何重新启用大写锁定键?
我目前正在设置我的默认键盘布局,如下所示: setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...] 它禁用大写锁定键,并使其成为附加的ctrl键,以及大量其他选项。 我想执行以下操作来切换键盘布局: setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps 但是,它不会重新启用大写锁定键。据我所知,左控制键和大写锁定均保留为控制键。 我知道我可以清除整个选项列表,但是出于可维护性的考虑,我宁愿不粘贴选项。如何重新启用大写锁定? 更新: 使用xev(1)查看按键时,似乎ctrl:nocaps Control_L为两个按键都提供了一个,而ctrl:swapcaps“恢复”了大写锁定键(按键给出了Caps_Lock)。但是,大写锁定LED不会点亮,也不会实际工作。 望着xkeyboard-config/symbols/ctrl在X.org源文件确实暗示了这个问题: xkb_symbols "nocaps" { replace key <CAPS> { [ Control_L, Control_L ] }; modifier_map Control { <CAPS>, <LCTL> }; }; xkb_symbols "swapcaps" { replace key <CAPS> { [ …

2
CapsLock作为应用程序键映射的修改键
我是开发人员,当前正在将Ubuntu Linux与PyCharm IDE结合使用来开发网站。为了提高键入性能,我考虑将CapsLock更改为Hyper_L,然后使用xmodmap将其分配给mod3。之后,我想将“ i”键的mod3映射到“ Up”。到目前为止,我所做的是: xmodmap -e "keysym Caps_Lock = Hyper_L" 输出是这样的: shift Shift_L (0x32), Shift_R (0x3e) lock Hyper_L (0x42) control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd) mod2 Num_Lock (0x4d) mod3 mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf) mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb) …
11 x11  keyboard  xkb  xmodmap 

2
用xmodmap重新映射大写锁定不起作用
当我编程时,我喜欢交换这些键: Esc↔ Tab Ctrl↔CapsLock 在中~/.xmodmap,我指定了以下重新映射: keycode 66 = Control_L keycode 37 = Caps_Lock keycode 23 = Escape keycode 9 = Tab 在Escape与Tab键互换,但没有任何问题,而不是Caps_Lock和Control_L交换,这两个按键变成Caps_Lock。 无论我做什么,都不Caps_Lock会将Control键分配给(键代码66)。如果我离开keycode 66 =,则未分配密钥,但是当我分配Control_L或时Control_R,它就无法使用。但是,如果我分配了其他键,例如keycode 66 = Tab,它就被分配了,没问题。 就像xmodmap一样,它不希望大写锁定和控制键互换。真令人沮丧。任何帮助/指针将非常有帮助。 PS:我正在使用Archlinux。
10 keyboard  xmodmap 

2
组合键的xmodmap-如何切换Fn行为?
使用通过USB的Logitech K290键盘时,默认情况下无法访问F.键,Fn在使用它们之前我需要先按一下,这实际上是不可用的。 Fn仅此键不会触发中的任何事件xev。 F1不按就Fn触发两个键事件,分别是键码50(Shift_L)和键码133(Super_L),并在我的Kubuntu上显示一条消息“触摸板已禁用”(每个键都F1通过相同的消息F4) 尽管大多数媒体密钥都可以使用,但我还是希望直接访问F.密钥。您知道切换Fn行为的任何方式吗? 这是我F1不按时的输出Fn: KeyPress event, serial 40, synthetic NO, window 0x1a00001, root 0x2c6, subw 0x0, time 64638420, (-352,274), root:(1462,621), state 0x10, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 40, synthetic NO, window 0x1a00001, …

1
如何将按键组合重新映射到按键?
是否可以在基于X服务器的系统中将键组合重新映射到键,例如,如果我按End+ Arrow_up,Home则生成用于的键代码?Google在此问题上似乎保持沉默。如果有解决方案,那就太好了,因为它将为更方便的键盘映射提供许多可能性。

2
Openbox覆盖xmodmap配置
我正在运行Linux Mint 13的笔记本电脑上设置openbox。我希望将Caps Lock键用作附加控制键。我将所需的设置放入~/.Xmodmap文件中,并通过运行对其进行了检查 xmodmap ~/.Xmodmap 它可以正常工作。 但是,当我重新登录openbox会话时,这些关键更改不存在。运行上面的xmodmap命令会使它再次工作,但是我希望它在启动时自动发生。 有趣的是zenity我在~/.config/openbox/autostart文件中添加了以下测试命令 zenity --info --text=Hello 这将产生一个小的对话框窗口,并且仅在对话框关闭后退出。 现在,当我重新登录openbox会话时,Caps Lock充当Ctrl键,直到关闭zenity对话框。关闭该对话框后,Caps Lock将返回其默认行为。 我还没有在Google上找到任何相关内容,因此我在这里寻求帮助。你们对可能出什么问题有任何想法吗? 更新: 我一直试图找出答案,在实验中,我将/usr/bin/xmodmap文件复制到/usr/bin/xmodmap_并用/usr/bin/xmodmap以下bash脚本替换了文件 #!/bin/bash { echo '-------' date echo xmodmap "$@" } >> ~/xmodmap-calls exec /usr/bin/xmodmap_ "$@" 因此,每当系统上任何该死的脚本运行时xmodmap,我都会了解它。 这样,我重新登录,仅在~/xmodmap-calls文件中找到一个条目,该条目是运行my的条目~/.Xmodmap,这是预期的。因此,我认为不是xmodmap覆盖我的更改。 接下来,使用一些谷歌搜索功能向我介绍了该setxkbmap命令,该命令显然也可以执行相同的操作。我也替换了该可执行文件,类似于上面的xmodmap。我得到了罪魁祸首! setxkbmap -option terminate:ctrl_alt_bksp 我完全不知道该怎么做,但是在运行xmodmap ~/.Xmodmap(正确应用了我的设置)之后,如果运行上述命令,我的更改将被重置!编辑:这真是有趣。只是一个setxkbmap没有任何参数的命令,会很高兴地用xmodmap ~/.Xmodmap命令覆盖我的更改。 现在我有两件事要弄清楚,这setxkbmap是从哪里运行的,为什么以及如何解决此问题。我仍在调查,但可以认真使用一些帮助:) 更新2 与地狱xmodmap。我无法确定从何处setxkbmap调用,但是我想出了一种使用setxkbmap命令来使Caps Lock表现为Ctrl的方式。 setxkbmap -option ctrl:nocaps 就在启动openbox之前。作品辉煌。大写锁定键仍然充当ctrl键。xmodmap永远不会运行。 …


4
在启动时打开NumLock吗?
我通常在Vim中进行编辑,并且在按下时+,我宁愿将手移到键盘所在的右侧,+而不是shift+ =。 但是,如果NumLock未启用,则在Vim中仅在上面打开新行并插入字母k。而且,每次启动时,我的电脑NumLock都处于关闭状态。 我想知道是否有任何xmodmap窍门打开NumLock,这样我就可以把它添加到我的.xinitrc。而且它甚至会更好,如果我可以把它添加到我的.map文件,该文件互换Escape,并CapsLock与我的负载loadkeys在我/etc/rc.local上启动。 我正在使用Arch Linux。

2
如何在X11中将大写锁定永久重新映射到ESC?
我想重新映射大写锁定以在X11中转义(即,按下物理大写锁定按钮将被应用程序解释为esc,而esc的行为不会改变)。解决方案必须在X重新启动后仍然存在。xmodmap和setxkbmap是可接受的解决方案(与类似程序一样)。我不想处理GUI,因为我希望解决方案具有可移植性,并且是我的点文件的一部分。如果我缺少更好/更轻松/更明显的解决方案,请告诉我,不过请注意,我没有使用DE(试用i3wm)。 到目前为止,我尝试使用xmodmap和setxkbmap效果不佳。 这是我尝试使用xmodmap的尝试: # ~/.xinitrc xmodmap ~/.xmodmap 和 # ~/.xmodmap remove Lock = Caps_Lock keysym Caps_Lock = Escape $ xmodmap ~/.xmodmap从命令行运行的工作,并做我想要的。问题是,每次x重新启动时都会重置。那就是我期望xinitrc进入的地方-难道不是每次x启动并运行xmodmap命令时都加载它吗?如果该命令有效,为什么从文件中读取后它什么也不做? 我用setxkbmap尝试了几件事,但都没有用。下面的两次尝试分别在文件中。 # ~/.xinitrc setxkbmap -option caps:esc # attempt 1 setxkbmap -option esc:nocaps # attempt 2 这两个命令都没有从命令行执行任何可察觉的操作,因此我假设我把命令弄错了。我喜欢这种解决方案的想法,因为它是单线的,并且在其他文件中不需要任何内容​​。如果可以的话。 .xinitrc是使用错误的文件吗?我知道startx正在从〜/ .xinitrc加载。 我要求可能的解决方案包含整个文件,而不是仅包含一行(如果文件中需要多个),因此我不会弄乱某些中间步骤。例如,如果我需要.xinitrc中的某些内容和.xcapsrebind中的某些内容,请同时显示文件和所有必需的内容(我也可以处理被告知将某些内容追加到末尾的操作,但是如果需要&或类似内容,请告诉我)。

3
如何为X11的Alt键分配另一个修饰符?
目标: 我想将Alt分配给CapsLock键,将Meta分配给Alt键。但是通过这种方式,Alt键将不再被识别为Alt,而CapsLock键将不再被识别为CapsLock。 openSUSE 11.4 先前: openSUSE 11.1 -由于我是计算机的唯一用户,因此我“简单地”编辑了/ usr / share / X11 / xkb / keycodes / xfree86文件,该文件运行正常。键被连接到最低级别的符号上。 问题: xkb 我创建了波兰语版式(pl_ext)的变体,(用于测试)由以下条目组成: key <CAPS> { [ Alt_L ] }; modifier_map Mod1 { Alt_L, Alt_R }; 但这根本不起作用,xev中的CapsLock键被识别(符号)为Alt_L,但是当我按CapsLock键时,其行为类似于CapsLock(例如,假设您在菜单中有File,Alt + F应该打开此菜单,但不会)。 问题:如何定义布局文件以将CapsLock键设置为Alt,将Alt键设置为Meta? 编辑:这里成功一半!现在,我有这样的条目: key <CAPS> { [ Alt_L ] }; modifier_map Mod1 { …
9 keyboard  x11  xmodmap  xkb 

3
在Linux控制台上重新映射大写锁定以进行转义,并菜单进行组合
运行XI时,请使用.xmodmaprc重新映射某些键: ! Make it so that both Caps Lock and Escape do Escape clear Lock keysym Caps_Lock = Escape ! Remap the menu key as Compose keysym Menu = Multi_key 如何在控制台上完成相同的操作? 更新 除了答案中给出的部分解决方案之外,我还了解到控制台将CTRL-映射.到Compose。所以我也许可以习惯。将Menu键设置为Compose并不是一件容易的事,因为有大量的nul分配的键码,并且没有明显的竞争者可以替代Menu的其他名称。 我还意识到,组合绑定本身比在X下使用的绑定要受限制得多,而且我经常使用的大多数特殊字符都不存在。也许有一个实用程序可以将X语法撰写绑定转换为loadkeys可以读取的内容?

1
以与外部键盘一致的方式交换<esc>和<caps lock>
我有一个名为〜/ .speedswapper的文件,其中包含以下内容: ! Swap caps lock and escape remove Lock = Caps_Lock keysym Escape = Caps_Lock keysym Caps_Lock = Escape add Lock = Caps_Lock ...当我跑步时xmodmap ~/.speedswapper,这会切换esc和Caps Lock键。我的〜/ .profile文件中有这一行,因此每当我登录时,这些键都会切换。 但是,如果我插入外部USB键盘,则该设置似乎不会持久。我的笔记本电脑的键盘工作得很好,但是我必须再次运行命令才能使外部键盘切换两个键。幸运的是,这样做似乎并没有影响我笔记本电脑的键盘-它们似乎是同步的。 一种解决方案是在插入外部键盘时找到某种方式来运行xmodmap命令,但是如果它更健壮,我将对另一种键盘交换解决方案持开放态度。操作系统是Ubuntu 13.04。 鉴于justbrowsing的评论,看来可以通过编写udev规则来实现-我认为我必须使用RUN选项,并且应该在/ dev / hidraw0或/ dev / hidraw1上触发它们,当我插入键盘时会出现...,但我仍在尝试绕开这个概念,因此,我感谢任何知道udev在做什么的人的帮助。

1
AltGr密钥不适用于VirtualBox中的Ubuntu
我刚刚在Windows 7中安装了VirtualBox(来自Oracle),并使用最新的Ubuntu创建了一个虚拟机。 在Firefox中,我可以使用左Ctrl键,而右Ctrl键没有任何作用。但是,我不能使用AltGr键(也称为Right Alt)来产生例如{}的花括号(我通过Ctrl V粘贴)。 在终端窗口中,我可以将“输入法”切换为“ Multipress”,然后可以使用AltGr键入例如{},这就是我为此次发布产生这些字符的方式。但是,使用“ Multipress”时,Ctrl键似乎没有任何作用。因此,例如要键入Ctrl DI,必须右键单击并将“输入法”切换到“系统(IBus(智能输入总线))”。然后AltGr不起作用。 我尝试在系统设置键盘布局中指定组合键。 这样,Ctrl和AltGr都不起作用。 这是xmodmap报告的内容: [〜] $ xmodmap -pke | grep -i控制 键码37 = Control_L NoSymbol Control_L 键码105 = Control_R NoSymbol Control_R [〜] $ xmodmap -pke | grep -i alt 键码64 = Alt_L Meta_L Alt_L Meta_L 键码204 = NoSymbol Alt_L NoSymbol Alt_L [〜] …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.