我想将我的鼠标 (A4Tech X-7) 的“返回”按钮(xev 显示为“按钮 7”)映射为鼠标中键。有没有办法做到这一点?我迷失在谷歌中,只找到如何使用 xbindkeys 等将按钮映射到键盘快捷键。
Ps 我可以用中键切换(使用 xmodmap)“后退”按钮,没有问题,但是有没有办法让它们都充当鼠标中键?
在 Ubuntu 18.04 中,我使用以下自动启动脚本:
[Desktop Entry]
Type=Application
Exec=/home/user/.xinitrc
Version=1.0
X-GNOME-Autostart-enabled=true
Name=xmodmap
Comment=xmodmap script
Run Code Online (Sandbox Code Playgroud)
这只是xmodmap /path/.Xmodmap &。
当系统启动时,它就工作了。当系统从睡眠中醒来时,重新映射不再起作用。我怎样才能解决这个问题?
编辑:(回复评论)这也不能解决问题:
$ cat /etc/systemd/system/xmodmapbindings.service
[Unit]
Description=xmodmap bindings
Before=sleep.target
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStop=-/home/norake/.xinitrc
[Install]
WantedBy=sleep.target
$ cat ~/.xinitrc
#!/bin/bash
if [ "$USER" != norake ]; then
su norake -c 'sleep 5; /usr/bin/xmodmap /home/norake/.Xmodmap' &
# without su, without sleep, without fork (&): doesn't work either
else
(sleep 5; /usr/bin/xmodmap /home/norake/.Xmodmap) &
fi
Run Code Online (Sandbox Code Playgroud)
sleep 30也不行。当然,手动运行脚本是有效的。
我想将AltGr+绑定W到æ,以及其他一些组合,我该怎么做?我还需要AltGr+ Shift+W到Æ。
我通常setxkbmap用来更改键盘映射。
我正在玩键盘设置,为了方便起见,我想将我的 Windows 键重新映射到选项卡。所以我尝试了(133是我键盘上的左超级键)
xmodmap -e "keycode 133 = Tab Super_L"
但这不起作用,因为按 windows 键仍然会显示“windows”菜单,并且没有插入选项卡。同一主题的一些不同变体也不起作用,例如使 Tab 出现在 shift+super 上。
我正在使用 cinnamon(从 ubuntu 16.04 上的 ppa 安装)和 lightdm,我想象 windows/super 键在较低级别被拦截,xmodmap 无法完全处理......有没有办法实现我想要的?欢迎不涉及 xmodmap 的答案!
(我远非专家,所以也许有一个非常简单的解决方案......)
我有这个xmodmap命令输出:
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Caps_Lock (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)
所以我想知道这里的超级钥匙是什么?问题是,当我尝试映射超级关键,在这里我想mod4作为windows button left一个组合使用钥匙sxhkd守护进程,它似乎并没有工作,例如,地图打开firefox,没有效果。
编辑:我试图使用windows left button键盘上的快捷地图使用一些命令sxhkd在ArchLinux的守护进程,在意见中讨论,即使我有keycod 133 mod4 = Super_L在.Xmodmap使用mod4的.config/sxhkd/sxhkdrc映射例如以打开Firefox:
mod4 + f
firefox
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用,按下windows lef …
我已经摸索了xkbmap一段时间,但不知道如何将“打印屏幕”按钮重新映射到“主页”。就好像美国键盘映射根本没有提到 PRSC 键代码。我无法使用xmodmap,因为切换键盘会破坏我的配置。
如何使用 将 PrtScr 键重新映射到 Home,将 Insert 键重新映射到 End xkbmap?
我想将我的一把钥匙映射为 Shift Lock 键。根据我的理解,Shift 锁定键是一种“粘性”Shift 键:它保持按下状态,移动布局的所有键,直到再次按下。
它与Caps Lock键类似,不同之处在于它影响所有键,包括数字行中的键。
我正在尝试用它setxkbmap -option ...来处理这个问题。
我在以下文件中发现了这些有希望的规则/usr/local/share/X11/xkb/rules/base.lst:
caps:internal Caps Lock uses internal capitalization; Shift "pauses" Caps Lock
caps:internal_nocancel Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock
caps:shift Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock
caps:shift_nocancel Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock
caps:capslock Caps Lock toggles normal capitalization of alphabetic characters
caps:shiftlock Caps Lock toggles ShiftLock (affects all …Run Code Online (Sandbox Code Playgroud) 我买了紧凑型键盘。F1 = Fn + 1 且 F2 = Fn + 2 ...
但 F1-F12 键在我的 Ubuntu 16.04 上不起作用。例如F1 可以调高亮度。我检查了 F1-F12 键的键码,它们无效。因此 F1 返回 232 键码(而不是 67)。
我尝试使用以下方法修复它:xmodmap -e "keycode 232 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1"但没有帮助。F1仍然改变亮度。我尝试重新映射其他 F1-F12 键,但没有结果。Xmodmap 仅适用于非功能键。
是否可以修复 F1-F12 键?(交换键码?)
Xmodmap 配置正确,但 F1 仍然改变亮度:
$ xmodmap -e "keycode 232 = F1 F1 F1 XF86Switch_VT_1" # IT DON'T HELP!!
$ xmodmap -pke # everything is OK!
keycode 67 = F1 F1 F1 F1 F1 …Run Code Online (Sandbox Code Playgroud) 我知道如何映射鼠标单击F1、F2和F3(分别为左键单击、中键单击、右键单击):
xkbset m # required, but disable keypad
xmodmap -e "keycode 67 = Pointer_Button1 Pointer_Button1"
xmodmap -e "keycode 68 = Pointer_Button2"
xmodmap -e "keycode 69 = Pointer_Button3"
Run Code Online (Sandbox Code Playgroud)
但这需要我使用xkbset m慢速按键模式:
如果我按4键盘,光标将向左移动。我不需要这个功能,只需要上面的映射。
我试图用 来解决这个问题xdotool,但我不知道如何处理按下的键/释放的键(用于拖放)
xdotool mousedown 1
xdotool mouseup 1
Run Code Online (Sandbox Code Playgroud)
我如何才能不使用此模式或如何重新映射所有键盘按键?
请问键盘上的数字和算术符号怎么样?
还有其他解决方案吗?
有关 Debian (cinnamon) 和 Archlinux (xfce) 所需的信息,如果可能的话,我想要一个不基于窗口管理器的解决方案。
尝试了这个解决方案,但我无法拖放F1。
在~/.xbindkeysrc:
"xdotool mousedown 1"
F1
"xdotool mouseup 1" …Run Code Online (Sandbox Code Playgroud) 我有一个 Keychron K2 机械键盘,键盘右侧的按键如下所示:
我想将它们交换为更标准的布局,这样,从上到下,我就会有Light Toggle, Home, Page Up, Page Down, 和End。
我曾经xev检索关键代码并编写了一个小脚本,用于xmodmap将它们交换为我喜欢的:
#!/bin/bash
xmodmap -e "keycode 110 = Next" && xmodmap -e "keycode 112 = Home" && xmodmap -e "keycode 117 = Prior"
Run Code Online (Sandbox Code Playgroud)
该脚本在启动时执行,并且完全按照预期工作。
问题是这个键盘既是有线的又是蓝牙的。当我在有线模式和蓝牙模式之间切换时,反之亦然,按键会返回到默认位置,我需要再次手动运行上述脚本。xev向我表明,在这两种情况下,关键代码是相同的。有没有更好的方法来解决这个问题,以便无论我使用什么键盘模式都可以交换这些键?