标签: xmodmap

为什么我的 xmodmap 命令不会在启动/登录时运行?

我想在每次登录时(或每次启动时,如果这不起作用)运行此命令: xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'

我尝试了很多东西。我把命令放在System > Preferences > Startup Applications. 我把它放在一个.sh文件中,标记它chmod +x并将该文件放在System > Preferences > Startup Applications. 我把脚本放在/etc/init.d. 我把命令放在~/.profile. 似乎没有任何效果。

最后,我把它放在我的~/.profile

touch test1
xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'
touch test2
Run Code Online (Sandbox Code Playgroud)

test1 和 test2 都被创建,但键仍然没有重新映射。如果我只是复制/粘贴命令并手动运行它,它工作正常。但它不会在登录时运行。有任何想法吗?

linux boot login xmodmap ubuntu

10
推荐指数
1
解决办法
9395
查看次数

如何使用 xmodmap 交换 ctrl 和大写锁定

或任何其他工具,但我更喜欢 xmodmap。我试过这个:

remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

xmodmap -e "keycode 66 = Control_L"
Run Code Online (Sandbox Code Playgroud)

但两者似乎都不能完全奏效。这是按下大写锁定的事件日志:

KeyPress event, serial 28, synthetic NO, window 0x1a00001,
root 0x12d, subw 0x0, time 914826, (679,342), root:(680,362),
state 0x12, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
XKeysymToKeycode returns keycode: 37 // 37 is the control key code
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: …
Run Code Online (Sandbox Code Playgroud)

keyboard capslock xmodmap ubuntu-10.10

10
推荐指数
2
解决办法
1万
查看次数

如何在 Wayland 上重新映射 CAPS LOCK?

在 Fedora 切换到 Wayland 之前,我使用这个.Xmodmap文件来使用我的CapsLock密钥来访问德语变音:

keycode 66 = Mode_switch Multi_key
keycode 20 = minus underscore ssharp
keycode 34 = bracketleft braceleft udiaeresis Udiaeresis
keycode 47 = semicolon colon odiaeresis Odiaeresis
keycode 48 = apostrophe quotedbl adiaeresis Adiaeresis
Run Code Online (Sandbox Code Playgroud)

在 Wayland 上,这不再起作用 -CapsLock会像以前一样工作。

有没有办法在 Wayland 中也达到同样的结果?

keyboard-layout xorg xmodmap wayland

9
推荐指数
1
解决办法
7252
查看次数

xmodmap 如何重新映射键并禁用原始键?

我正在考虑购买 60% 的键盘,并希望在购买实际键盘之前尝试使用该布局。

我正在尝试将箭头键映射到大写锁定 + ijkl 并禁用真正的箭头键。我已经找到了如何重新映射它,但是当我尝试禁用真正的箭头键时,重新映射的箭头键会中断。这是一张工作地图:

keycode 66 = Mode_switch
keycode 31 = i I Up
keycode 44 = j J Left
keycode 45 = k K Down
keycode 46 = l L Right
Run Code Online (Sandbox Code Playgroud)

要禁用向上箭头,我添加

keycode 111 =
Run Code Online (Sandbox Code Playgroud)

一旦我这样做了,ijkl 不再作为字符工作,但即使不按修饰符(大写锁定)也可以作为箭头。如何在不破坏我以前的映射的情况下禁用箭头键?

keyboard keyboard-shortcuts keyboard-layout xmodmap keymap

9
推荐指数
2
解决办法
5056
查看次数

xmodmap中修饰键的作用是什么?

当我运行 xmodmap 时,我得到这样的信息

shift       shift_l (0x32),  shift_r (0x3e)
lock      
control     control_l (0x25),  control_l (0x42),  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)
Run Code Online (Sandbox Code Playgroud)

我得到了轮班和控制组。但是其他的 mod1、mod2、mod3、mod4 是做什么用的?

似乎无论如何您只能使用以下两个修饰符:

keysym <keysymname> = <key> <shift+key> <mode_switch+key> <mode_switch+shift+key>
Run Code Online (Sandbox Code Playgroud)

为什么我不能设置一些东西<mod4+key>

linux keyboard xorg xmodmap xkb

8
推荐指数
1
解决办法
3076
查看次数

如何让我的超级键(Windows 键)在 Linux 中表现得更像 Ctrl/Alt/Shift

在使用Ctrl+“箭头键”在 X 窗口中切换虚拟桌面 13 年后,我最近被说服改为使用超级键(Windows 键和上下文菜单键,我已经重新映射)。这在大多数情况下都可以正常工作。但是,某些东西仍在接收这些键发送的键事件,就好像它们是普通的字母数字键一样。

例如,我首先在 Google Docs 电子表格中注意到这一点,如果我在单元格顶部单独按下 windows 键,它就会开始编辑该单元格。它不插入任何内容,它只是发送一个 Firefox 看到并开始编辑单元格的关键事件。这导致我正在处理的协作文档出现问题,因为 Google 文档的工作方式,它导致我在意识到发生了什么之前不小心删除了几个字段中的数据。

我喜欢使用超级键,但我希望它们的行为更像 aCtrlAlt键,因为它是一个修饰键,并且在按下第二个键之前不会发送任何内容。

我的设置如下:

  • Ubuntu 10.10
  • XFCE 4
  • Microsoft Natural Ergo 4000 键盘(当然是刮掉了标志)
  • 以下是我的 .Xmodmap 文件:

移除锁 = Caps_Lock

键码 66 = 转义

!下面映射了我的其他 Windows 上下文菜单键。

键码 135 = Super_R

编辑:根据要求,这是 xev 的相关输出,用于我的 Super_L(左 Windows 键)的按键和按键释放

KeyPress event, serial 34, synthetic NO, window 0x8200001,
    root 0x15d, subw 0x0, time 2428849342, (177,174), root:(182,228),
    state 0x10, keycode 133 (keysym 0xffeb, …
Run Code Online (Sandbox Code Playgroud)

keyboard xorg xmodmap ubuntu

7
推荐指数
1
解决办法
2万
查看次数

Xmodmap:一个键六个字符?

来自OpenSUSE 维基

(只要将 Mode_switch/ISO_Level3_Shift 分配给 Alt Gr 的键码——如果将 Mode_switch 和 ISO_Level3_Shift 分配给不同的键,则一个键最多可以分配六个字符!)。

请告诉我将 6 个字符转换为一个 ?ey(k 更改为 ?)的通用步骤?

linux keyboard xorg xmodmap ubuntu

6
推荐指数
1
解决办法
2601
查看次数

Linux、Ubuntu 和 Apple 铝制键盘:使用波浪号重新映射更大/更少

我有一个 Apple 铝制键盘。在1键的左边我有less/greater ( < >) 键,而不是grave/tilde ( ` ~)。

xmodmap对我不起作用:布局切换(完成setxkbmap)会重置我的 xmodmap 更改。.Xmodmap文件也没有帮助。

如何重新映射波浪号键?

linux keyboard remapping xmodmap setxkbmap

6
推荐指数
1
解决办法
8040
查看次数

禁用 numlock,保留鼠标按键绑定

我无法禁用 Numlock 键(使键什么也不做,以便小键盘数字始终有效),同时将额外的鼠标按钮(在我的鼠标侧面)映射到快捷方式以执行自定义操作。

我使用 Arch Linux 和 Xfce,登录管理器是 LightDM。

我使用这个代码,放在一个 bash 文件中,在启动时禁用我的 numlock:

xmodmap -e "keycode 77 = NoSymbol"
Run Code Online (Sandbox Code Playgroud)

我的主目录中有一个 .xbindkeysrc 文件,其中包含:

"xdotool key ctrl+w"
 b:8 + Release

"xdotool key ctrl+d"
 b:9 + Release
Run Code Online (Sandbox Code Playgroud)

(关闭标签和书签)

如果我在启动时启用“禁用 Numlock”代码,.xbindkeysrc 文件将不再有效。这似乎与与numlockx onxmodmap 命令(在它之前)在同一个 bash 文件中的命令有关。我该如何解决?

添加

"NoCommand"
 c:77
Run Code Online (Sandbox Code Playgroud)

to .xbindkeysrc 也没有预期的效果。将 c 更改为 m,因为理论上 Numlock 是一个修饰键,无济于事。使用 Num_Lock 而不是 c:77 也不起作用。

linux bash xmodmap numlock xdotools

6
推荐指数
2
解决办法
2718
查看次数

Xmodmap 配置

在我的 Debian Linux 机器上Ctrl+ Alt+F1绑定到一个虚拟终端。我可以通过运行看到相应的条目xmodmap -pke

keycode 67 = F1 XF86_Switch_VT_1 F1 XF86_Switch_VT_1
Run Code Online (Sandbox Code Playgroud)

根据这个线程,我可能添加的内容与我在其他地方读到的内容一致,右侧的列=对应于key, Shift+ key, AltGr+keyShift+ AltGr+ key

鉴于这种情况,我不明白的码的转换如何F1(以上)工程Ctrl+ Alt+ F1。现在看来,这确实应该要么Shift+F1Shift+ AltGr+ F1

这是xmodmap -pm我机器上的输出:

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x25)
control     Control_L (0x42),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R …
Run Code Online (Sandbox Code Playgroud)

terminal xmodmap

5
推荐指数
1
解决办法
851
查看次数