我已经对我的 Colemak 键盘布局感到非常舒服(自从我开始使用它以来,我的打字速度已经翻了一番)。我唯一的问题是没有大写锁定键,因为在这种布局下,大写锁定键是第二个退格键。我真的很想念大写锁定,所以我想将键盘右上角的退格键(不是“a”旁边的那个)更改为大写锁定键。有没有办法使用 xmodmap 或其他工具来做到这一点?我正在使用 Xfce。
由于我的键盘布局,我想永久按下 numlock 并将 numlock 键用作删除键。我似乎无法让它发挥作用。关于如何做到这一点的任何想法将不胜感激。
编辑:我在 Ubuntu 16 上运行
这是我尝试过的:
受到这个问题的启发。我的理解是 xmodmap 已被弃用,所以这可能不是一个好主意。
~/.Xmodmap
用线创建一个文件keycode 77 = Delete NoSymbol
xmodmap ~/.Xmodmap
numlockx on
这允许 numlock 用作删除并启用数字键盘,直到我第一次按下 numlock 键。然后数字锁定键禁用数字键盘。
/usr/share/X11/xkb/symbols/us
有key <NMLK> { [Delete, Num_Lock] };
在基本键盘映射结束。也试过:
/usr/share/X11/xkb/symbols/us
有replace key <NMLK> { [Delete, Num_Lock] };
在基本键盘映射结束。这与其他方法存在类似的问题,能够删除作品,但数字锁定键会关闭数字键盘。当启用数字键盘时,它似乎也会与其他键(如 windows 键)混淆。我确实喜欢使用 shift+numlock 控制 numlock。我找不到使用替换和不使用它之间的任何区别。
像许多小型机器一样,我的笔记本电脑的键盘缺少专用的小键盘。
我通常可以在不看键盘的情况下输入,但我无法在数字行中盲目输入数字。这就是为什么我想到将键盘的左侧转换为二级小键盘(例如Z= 0、X= 1. C= 2、V= 3、S=4等等)。
另一个优点是可以快速输入数字,而无需将右手从鼠标上移开或在整个键盘上移动左手。
现在我正在寻找一种方法来重新映射这些键以“创建”小键盘,至多独立于桌面环境,因为我经常使用多个键。此外,如果该映射是可移植的,那就太棒了,这样我就可以设置一次并为不同的键盘/机器启用它。
我知道可以直接在 内部修改键盘映射/usr/share/X11/xkb/symbols/
,但那些只允许三个修饰符(Shift, AltGr(在欧洲键盘上)和Shift+ AltGr)并且它们通常用于字母键或需要双手激活。
我想过使用+Super_L或Shift_L+的组合Alt作为修饰键来访问小键盘层,因为这些组合不应该被使用,而且很容易用一只手触及。
这怎么可能实现?
我通过 CapsLock 设置了超级键gnome-tweaks
抱歉,我只有德文截图。“Feststelltaste”的意思是“CapsLock”
\n\n现在我想绘制地图
\nHyper-u
到Arrow-Up
Hyper-n
到Arrow-Down
Hyper-i
到Page-Up
Hyper-m
到Page-down
Hyper-j
到Pos1
Hyper-\xc3\xb6
到End
(在我的德语布局中,这个字符位于“l”的右侧)如果这可以通过在 $HOME 中进行配置来完成,那就太好了。
\n例如通过 .xmodmaprc
\n相关问题:使向上/向下箭头、Pos1、End、Del ...更容易
\n我对每一个有效的解决方案都持开放态度。也许有办法通过 eBPF 或自己的 uinput 设备来解决这个问题?
\n我喜欢当时的手指触摸打字。我对 aZ 的 QWERTZ 布局很满意。但这些特殊的按键总是让我离开食指在“F”和“J”上的舒适位置。
\n因此,我花了几个小时试图弄清楚如何重新映射 Lenovo ThinkPad T440p 笔记本电脑上的几个按键。2020 年的这篇文章让我非常接近。它使用xmodmap
命令生成一个文本文件来简单地交换一些关键代码。以下是我所遵循的过程的摘要:
使用该命令xev -event keyboard
获取我想要交换的按键的按键代码。
Fn
密钥,它给出了keycode 151 (keysym 0x1008ff2b, XF86WakeUp)
Ctrl
,它给出了keycode 37 (keysym 0xffe3, Control_L)
使用我的根目录中的命令生成当前的键码映射并存储到名为“.Xmodmap”的文本文件中xmodmap -pke > .Xmodmap
。
使用文本编辑器打开“.Xmodmap”文件
code .Xmodmap
命令使用 VS Code。交换适当的线路。
keycode 37 = Control_L NoSymbol Control_L
keycode 151 = XF86WakeUp NoSymbol XF86WakeUp
Run Code Online (Sandbox Code Playgroud)
keycode 37 = XF86WakeUp NoSymbol XF86WakeUp
keycode 151 = Control_L NoSymbol Control_L
Run Code Online (Sandbox Code Playgroud)
保存“.Xmodmap”文件。
使用命令“xmodmap .Xmodmap”重新映射按键。
奇怪的是,它对于作者的测试用例来说效果很好(即将左箭头键和右箭头键分别映射到PgUp
&PgDn
键)。另外,当我运行xev …
我曾经有一台联想 N500,在这台笔记本电脑中,PgUp 和 PgDn 键位于 Up/Down/Left/Right 键旁边。现在我有一台联想 T420,并且 Up/Down/Left/Right 旁边的键是Back和Forward。
我想知道如何重新映射后退和前进键以用作 PgUp 和 PgDn。
我已将大写锁定重新映射到退格键。
/etc/default/键盘
XKBLAYOUT="us"
XKBVARIANT="altgr-intl"
BACKSPACE="guess"
XKBOPTIONS="caps:backspace"
Run Code Online (Sandbox Code Playgroud)
这非常有效,只是它不适用于某些特定工具。我曾经xev
想知道发生了什么。
按下退格键
KeyPress event, serial 38, synthetic NO, window 0x2400001,
root 0x159, subw 0x0, time 1028211, (335,635), root:(452,749),
state 0x10, keycode 22 (keysym 0xff08, BackSpace), same_screen YES,
XLookupString gives 1 bytes: (08) "
XmbLookupString gives 1 bytes: (08) "
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x2400001,
root 0x159, subw 0x0, time 1028272, (335,635), root:(452,749),
state 0x10, keycode 22 (keysym 0xff08, BackSpace), same_screen YES,
XLookupString gives 1 bytes: (08) …
Run Code Online (Sandbox Code Playgroud) 在 Windows 10 中,当我按下该Caps Lock键时,我可以键入数字和其他特殊字符。现在,在 Ubuntu 18.04 中,我必须按住 Shift 按钮才能执行此操作。自从我从 Windows 10 切换到 Ubuntu 18.04 以来,这是我最大的问题。
另外,如何重新映射我自己的自定义键盘布局?我对此进行了很多搜索,但找不到任何可理解的更新教程来执行此操作。