You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 23.04持续覆盖个人.Xmodmap键盘设置的解决方法求助

Ubuntu 23.04持续覆盖个人.Xmodmap键盘设置的解决方法求助

我太懂这种每次登录或者切换语言都得手动敲xmodmap .Xmodmap的糟心感觉了!Ubuntu 23.04之后对键盘管理的机制做了调整,现在更依赖XKB系统,而且会在登录完成后、甚至切换locale时自动重新加载默认键盘配置,直接把你的.Xmodmap设置覆盖掉。这里有几个亲测有效的解决办法,你可以按需尝试:

方法一:延迟执行自定义键盘映射

直接把xmodmap ~/.Xmodmap加入启动项大概率会失效——因为系统还没完成键盘初始化,你的设置会被后面的系统配置冲掉。给命令加个延迟就能解决:

  1. 在家目录新建一个脚本文件,比如fix-keyboard.sh,内容如下:
    #!/bin/bash
    # 延迟5秒,等系统完成键盘初始化
    sleep 5
    xmodmap ~/.Xmodmap
    
  2. 给脚本加上执行权限:
    chmod +x ~/fix-keyboard.sh
    
  3. 打开系统的「启动应用程序」(Startup Applications),点击「添加」:
    • 名称随便填,比如「加载自定义键盘映射」
    • 命令选择你刚创建的~/fix-keyboard.sh
    • 描述可以写「登录后应用个人.Xmodmap设置」
      下次登录时,系统会先完成自身的键盘配置,再执行你的自定义映射,就不会被覆盖了。

方法二:切换到XKB配置(更持久的方案)

既然Ubuntu现在优先用XKB,不如把你的.Xmodmap转换为XKB配置,从根源上避免被覆盖:

  1. 先导出当前的XKB键盘配置到本地文件:
    xkbcomp $DISPLAY ~/my-custom-keymap.xkb
    
  2. 查看你的.Xmodmap里的键位映射,用xmodmap -pke命令可以看到当前所有键的对应关系,然后把这些映射转换成XKB的语法,修改~/my-custom-keymap.xkb文件(XKB的语法稍微复杂点,你可以对照原配置里的key段落来修改)。
  3. 测试一下自定义的XKB配置:
    setxkbmap -I$HOME -print | xkbcomp -I$HOME - $DISPLAY
    
  4. 同样把这个命令加入「启动应用程序」,这样每次登录都会加载你的自定义XKB配置,系统的locale切换就不会影响它了。

方法三:禁用locale触发的键盘重置(进阶操作)

如果是切换locale时才会覆盖设置,你可以检查一下系统里有没有自动触发键盘重设的服务,或者修改/etc/default/locale文件,确保你的locale设置不会关联到键盘布局的自动重置。不过这个方法可能影响其他系统组件,建议先尝试前两个方法,确认无效后再考虑。

备注:内容来源于stack exchange,提问作者leoalvar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 10:14:34