我已将笔记本电脑设置为直接启动到 SLiM 作为 X 会话管理器。
然而,我笔记本电脑上的“M”键坏了。我在登录时通过使用 xmodmap 将无关的菜单键重新映射到它来解决这个问题。
keycode 135 = m
我在 .xinitrc 文件中调用了 xmodmap,如下所示:
xmodmap ~/.xmodmaprc
登录后效果相当好。但是,我的用户名包含“m”,因此我无法直接使用笔记本电脑键盘输入它。default_user
在我的作品中添加一行/etc/slim.conf
至少允许我登录,但如果我输错密码,我必须插入 USB 键盘或完全重新启动系统以获得第二次机会。
我发现这个问题在 Stack Exchange 上,因此我将 .xmodmaprc 文件复制到它指定的路径(`/etc/X11/Xmodmap)。然而,这并没有奏效。
我怎样才能让它在整个系统范围内工作?我的发行版是 Arch,如果有帮助的话。
答案1
答案2
我曾经尝试使用 XKB 为物理密钥损坏的情况编写一个通用解决方案;我将配置更改保存在https://gitorious.org/xkb-replace-broken。我没有清理它。 (也就是说,不幸的是,我没有提交最初的未更改状态,因此检查我引入的更改并不容易。我可以尝试清理它,并在完成后发布生成的修订历史记录。)如果我记得正确,它起作用了。
我的想法是(为了拥有一个功能齐全的键盘)重新映射最低级别的按键(按键代码),以便所有组合和布局都使用新的物理按键,该物理按键必须替换损坏的按键(在我的例子中为“T”) 。
您可以在中看到新的键码映射“nohack”分支中的最后一次提交。我分叉/usr/share/X11/xkb/keycodes/evdev
为/usr/share/X11/xkb/keycodes/evdev-with-broken-t
改变行:
alias <AD05> = <PAUS>;
(在我的第一个版本中,我认为这是一个 hack,我只是编辑了 pristine /usr/share/X11/xkb/keycodes/evdev
。该 hack 在链接提交中被撤消。我确信“hack”版本确实有效,但不太确定“nohack”分支。 )
然后我定义了一个新的 XKB 选项(“broken:t”——参见上面的提交),并在XKB的配置文件xorg.conf
(当然,我认为您也可以使用不同的语法将类似的选项放入 ALTLinux 中;或者要求您xinit
或类似人员setxkbmap
在启动时使用这些选项运行。)
答案3
X 服务器在登录屏幕上未完全加载。 XSession.d 中的所有内容都会在您登录后加载。登录屏幕上运行的唯一内容是 gdm(如果您正在运行 gnome)和一个基本的 X 服务器。要在登录之前连接到 X 服务器,您需要修改 /etc/gdm/PreSession/Default 脚本。
您可以将 xbindkeys 设置为从 gdm 中的 PreSession 脚本启动,以便您可以在登录之前让 X 重新映射您的密钥。