Thi*_*aes 56 xmodmap key-binding
由于我的键盘布局不适合我,我xmodmap在登录时运行。该脚本已命名.profile并且运行正常,但它破坏了 Unity 界面。
我想知道该xmodmap行放在哪里,以便它在我登录时执行并且不会破坏任何内容。
我已经尝试将它放入.bash_login和.bash_profile文件中,但没有成功(xmodmap没有设置我的键盘)。
我有哪些选择?
小智 41
正确的放置位置xmodmap ~/.Xmodmap(以便在启动时读取您的更改)在~/.xinitrc(请参阅下面的说明),尽管您也可以将xmodmap命令作为启动项 ( /usr/bin/xmodmap /home/user/.Xmodmap)放置。我可以说,对于 12.04(大概是 12.10),这两个替代方案肯定有效,因为在您使用lightdm. (我将Return改为Right Shift,更改仅在输入密码并登录后生效)。
请注意:如果您使用的是 Xfce,官方 Xfce 常见问题解答中指出您可能必须创建启动项而不是使用~/.xinitrc,并且您可能必须延迟执行以便xmodmap更改不会被 覆盖setxkbmap。您可以在启动项中使用延迟来实现此目的:
/bin/bash -c "sleep 20; /usr/bin/xmodmap /home/$USER/.Xmodmap"
Run Code Online (Sandbox Code Playgroud)
(启动入口需要指定绝对路径)
每次setxkbmap运行以更改键盘布局时,您都必须xmodmap ~/.Xmodmap在终端中再次运行。
创造 ~/.xinitrc
建立在你家一个文件夹叫.xinitrc用
touch .xinitrc
Run Code Online (Sandbox Code Playgroud)
并放入其中:
xmodmap ~/.Xmodmap
Run Code Online (Sandbox Code Playgroud)
你的Xmodmap文件应该不会有条目xmodmap -e " "作为在终端用于暂时设定值的风格。它必须具有以下格式的条目:
keycode 65 = Tab
keycode 23 = Space
Run Code Online (Sandbox Code Playgroud)
它经常被混淆,各种的X文件(如.xprofile,.xinitrc等),在启动时被读取,但.xinitrc似乎到12.04之下仍读,而.Xmodmap或.xinputrc不被自己阅读。
kon*_*ten 16
我正在使用 ElementaryOS(及其基于 GNOME 的窗口管理器)并通过使用xdg自动启动脚本找到了解决方案。许多窗口管理器都在使用 xdg,所以我认为这种方法也适用于其他环境。至少它应该适用于 GNOME。
xdg~/.config/autostart在 X 会话中登录时运行脚本。要在登录时加载 xmodmap 配置,请将以下脚本添加到~/.config/autostart/xmodmap.desktop:
[Desktop Entry]
Name[en_US]=Xmodmap
Comment[en_US]=xmodmap ~/.Xmodmap
Exec=/usr/bin/xmodmap .Xmodmap
Icon=application-default-icon
X-GNOME-Autostart-enabled=true
Type=Application
Run Code Online (Sandbox Code Playgroud)
然后注销并再次登录,您的 Xmodmap 配置应该已经加载。
如果它不起作用,请尝试在终端中运行 xmodmap 以查看是否是 xmodmap 抱怨:
$ xmodmap ~/.Xmodmap
Run Code Online (Sandbox Code Playgroud)
如果没有出现任何错误,请运行以下命令进行调试:
$ sudo cat /var/log/syslog | grep -B 5 -A 5 xmodmap
Run Code Online (Sandbox Code Playgroud)
Ras*_*mus -1
放入 xmodmap 更改~/.bashrc或/etc/bash.bashrc不会破坏任何内容。
唯一的缺点是每次启动后都必须打开终端才能激活它。
| 归档时间: |
|
| 查看次数: |
47008 次 |
| 最近记录: |