标签: xkb

使用 XKB 声明一个新的修饰键

我正在尝试创建单手键盘布局,并希望Hyper在按下某些键时使用它来生成特殊键。

例如,当我按下Hyper_L和 时B,我希望 XKB 生成XF86AudioRaiseVolume.

相关部分来自custom_2.kbd (完整代码在http://pastebin.com/gm8cggn3):

xkb_keycodes {
    <K_36> = 54;        // b B XF86AudioRaiseVolume
    <K_85> = 133;       // Hyper_L
};

xkb_symbols {
    key <K_36> { type = "HYPER_LEVEL", [ b, B, XF86AudioRaiseVolume ] };
    key <K_85> { type = "ONE_LEVEL", [ Hyper_L ] };
};

xkb_compatibility {
    interpret Hyper_L { action = SetMods(modifiers=Hyper); };
};


xkb_types {
type "HYPER_LEVEL" {
    modifiers= Shift+Hyper;
    map[Shift]= Level2;
    map[Hyper]= Level3;
    map[Shift+Hyper]= …
Run Code Online (Sandbox Code Playgroud)

x11 xkb

12
推荐指数
1
解决办法
3148
查看次数

切换 setxkbmap 的脚本

我想要一个 bash 脚本,它可以在: setxkbmap sesetxkbmap us.

然后我的意图是CtrlEsc通过键盘> 自定义快捷方式将该脚本映射到。

关键是我想用CtrlEscape. 我该如何实施?

x11 shell-script xkb keyboard-layout

11
推荐指数
2
解决办法
7570
查看次数

将 Super+[Left|Right] 映射到 Home/End

我如何映射键“超级”,以便与左/右结合时,它会生成键码 Home/End?

我目前的 setxkbmap:

setxkbmap \
  -model pc105 \
  -layout 'us(dvorak-intl),us(alt-intl)' \
  -option \
  -option grp:lctrl_lshift_toggle \
  -option compose:rwin
Run Code Online (Sandbox Code Playgroud)

keyboard-shortcuts keyboard xkb keyboard-layout

11
推荐指数
1
解决办法
4206
查看次数

xorg.conf 中的多个 XkbOptions

我应该如何在 xorg.conf 中编写多个 XkbOptions?我试过“选项、选项、选项”、“选项、选项、选项”、“选项选项选项”,但这些都没有奏效——只执行了第一个选项。

xorg x11 xkb

11
推荐指数
1
解决办法
4472
查看次数

用 XKB 覆盖一些键码

我想用 XKB 随机播放几个键。(为什么?在某些按键不方便的笔记本电脑上。)我目前使用 xmodmap:

keycode 110 = Prior
keycode 115 = Delete
keycode 112 = Next
keycode 117 = Insert
keycode 119 = End
keycode 118 = Home
Run Code Online (Sandbox Code Playgroud)

相反,我想使用 XKB 并为某些物理键分配不同的符号名称,而不是为某些键码分配不同的键符。(就是为什么。)我希望发送 keycode 110PGUP而不是 ,发送HOMEkeycode 115DELE而不是END等等。其余的配置必须不受影响(所以PGUP要继续发送 keysymPrior等,并且所有其他键都保留像他们那样)。

如何更改这些特定键码的分配?我将加载一个文件xkbcomp somefile.xkb $DISPLAY,我需要放入somefile.xkb什么?

x11 xkb keyboard-layout

11
推荐指数
2
解决办法
5367
查看次数

如何使用 setxkbmap 使退格键充当转义符?

似乎有几个选项,setxkbmap-option caps:backspace使盖退格。但是,我似乎找不到使退格键成为转义键的选项。如何创建将退格键更改为转义键的单个 setxkbmap 命令?

keyboard-shortcuts xkb

11
推荐指数
1
解决办法
2746
查看次数

Openbox 覆盖 xmodmap 配置

我正在运行 Linux Mint 13 的笔记本电脑上设置 openbox。我希望我的 Caps Lock 键充当额外的控制键。我将所需的设置放在我的~/.Xmodmap文件中并通过运行进行检查

xmodmap ~/.Xmodmap
Run Code Online (Sandbox Code Playgroud)

它工作正常。

但是,当我重新登录到我的 openbox 会话时,这些关键更改不存在。运行上面的xmodmap命令让它再次工作,但我希望它在启动时自动发生。

有趣的是,我zenity在我的~/.config/openbox/autostart文件中添加了如下测试命令

zenity --info --text=Hello
Run Code Online (Sandbox Code Playgroud)

这会生成一个小的对话窗口,并且仅在该对话框关闭后才退出。

现在,当我重新登录到我的 openbox 会话时,Caps Lock 充当 Ctrl 键,直到zenity 对话框关闭。关闭该对话框后,Caps Lock 将返回其默认行为。

我在谷歌上没有找到任何关于这个的东西,所以我在这里寻求帮助。你们对可能出现的问题有什么想法吗?

更新:

我一直在试图解决这个问题,在我的实验中,我将我的/usr/bin/xmodmap文件复制到/usr/bin/xmodmap_并用/usr/bin/xmodmap以下 bash 脚本替换了该文件

#!/bin/bash

{
    echo '-------'
    date
    echo xmodmap "$@"
} >> ~/xmodmap-calls

exec /usr/bin/xmodmap_ "$@"
Run Code Online (Sandbox Code Playgroud)

因此,每次系统上运行任何该死的脚本时xmodmap,我都会了解它。

有了这个,我重新登录,我只在我的~/xmodmap-calls文件中找到一个条目,这是运行 my 的条目~/.Xmodmap,这是预期的。所以,我认为这不是xmodmap覆盖我的更改。

接下来,通过一些谷歌搜索向我介绍了该setxkbmap命令,它显然也可以做同样的事情。我也替换了那个可执行文件,类似于上面的 …

openbox linux-mint xmodmap xkb

10
推荐指数
1
解决办法
2274
查看次数

按下 Escape 时关闭大写锁定

有什么方法可以CapsLockEsc按下时禁用。是的,我使用 VIM!我实际上有一个替代的全大写键盘布局,Ctrl-6但我发现它很麻烦,并且更愿意让操作系统在Esc按下时禁用 CapsLock 。另外,我经常通过 SSH 连接到其他服务器几个小时,所以我在那里使用库存 VIM。

请注意,我碰巧已经交换了CapsLockEsc键。但是,当Esc按下该键时(碰巧CapsLock在键盘上标记并在 旁边A),我需要它同时执行EscapeDisable-CapsLock-If-It-Is-Enabled

这是在 Kubuntu 12.10 上。谢谢。

keyboard xkb kubuntu

10
推荐指数
2
解决办法
1971
查看次数

如何让键盘键的和弦暂时改变键盘映射?

我真的习惯了的“同时vi模式”功能KeyRemap4MacBook它可以让你按住s,并d同时键,然后使用hjk,和l键作为箭头键。当sd被按下时,没有sd事件被触发,但是当我正常输入时,我没有注意到击球sd单独的任何延迟问题。

如何在 Linux(特别是 RHEL 6.4)中重新创建此功能?

我有几个想法:

  1. 如果s+d可以重新映射到修饰符,那么键h, j, k, l+modifier 可以相应地映射。(我现在使用的键盘没有任何备用修饰键可用于代替s+ d,另外,同时 Vi 模式的要点是将所有手指保持在主行上。 CapsLock已重新映射到ControlEscape)。

  2. 理想情况下,我会找到一种方法来使用系统设置或我已经在使用的 XKB 键盘之类的东西。如果这是不可能的,也许可以编写类似于xcape程序的东西(我正在使用它,它可以将键映射到不同的按键和修饰键符号)。 xcape虽然触发了键释放,因此必须对其进行调整以防止sd键太慢。

xkb keyboard-layout xcape

10
推荐指数
1
解决办法
1401
查看次数

从 xmodmap 创建 xkb 配置

我有一个xmodmap我使用的自定义文件,包括有用的多语言变音符号、英文引号、破折号等。我想将此地图与 一起使用kmscon,因此我需要从中创建一个xkb配置。有没有自动化的方法来做到这一点?或者甚至是一个简单的手动过程,因为我不需要经常这样做?

xmodmap xkb

10
推荐指数
1
解决办法
6548
查看次数