V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
searene
V2EX  ›  Linux

ubuntu 下有没有将 Alt + hjkl 映射为方向键的方法?

  •  
  •   searene · Jan 30, 2017 · 7244 views
    This topic created in 3380 days ago, the information mentioned may be changed or developed.

    用的是 ubuntu 16.10 ,方向键太远,所以希望能全局使用类似 vim 的移动方式,用网上的各种方法都没有实现,你们在 linux 下都是怎么做到的?

    18 replies    2018-12-15 21:18:47 +08:00
    dtfm
        1
    dtfm  
       Jan 30, 2017
    可以在~目录下建立 .Xmodmad 然后映射成 上下左右的功能键

    具体参见: https://www.zouyesheng.com/xmodmap-usage.html

    不过我也只知道单键映射可行,不太清楚双键的设置法
    bytenoob
        2
    bytenoob  
       Jan 30, 2017 via Android   ❤️ 1
    gh60 或者 poker
    zhidian
        3
    zhidian  
       Jan 30, 2017
    我把空格键 + ESDF 映射成了上下左右(单独按空格输出空格,组合按则是方向键)。你可以搜一下 xcape 。
    loading
        4
    loading  
       Jan 30, 2017 via Android   ❤️ 2
    https://geekhack.org/index.php?topic=51069.0

    spaceFn ,很方便好用。

    好用就点❤吧,谢谢。
    zhidian
        5
    zhidian  
       Jan 30, 2017   ❤️ 1
    如果用 xmodmap 和 xcape ,这是示例: http://pastebin.ca/3761929 (如果搞残了, log out )
    zhidian
        6
    zhidian  
       Jan 30, 2017   ❤️ 1
    @loading 看了下你说的这个,好像是一个意思。 Win 上我也用的 AHK 实现,这人似乎弄得很复杂……其实 AHK 只要 "space & x::Send {y}"(把“空格+x ” 变成 “ y ”) 和 "space::space"(单独还是“空格”) 就可以了……
    firebroo
        7
    firebroo  
       Jan 30, 2017 via Android
    i3wm 。。
    searene
        8
    searene  
    OP
       Jan 30, 2017
    @zhidian 谢谢,试了一下,组合基本都生效了,只是空格键不能敲空格了。。。
    zhidian
        9
    zhidian  
       Jan 30, 2017
    @searene 额……你运行 xcape -e "ISO_Group_Shift=space" 了吗……
    searene
        10
    searene  
    OP
       Jan 30, 2017
    @zhidian 执行了,不过都有错误信息

    ➜ ~ xmodmap kbd.xmodmap
    X Error of failed request: BadValue (integer parameter out of range for operation)
    Major opcode of failed request: 118 (X_SetModifierMapping)
    Value in failed request: 0x17
    Serial number of failed request: 19
    Current serial number in output stream: 19
    ➜ ~ xcape -e "ISO_Group_Shift=space"
    WARNING: No keycode found for keysym space (0x20) in mapping ISO_Group_Shift. Ignoring this mapping.
    xream
        11
    xream  
       Jan 31, 2017   ❤️ 1
    同 2l, 买块客制化键盘 搞自定义配列省心
    searene
        12
    searene  
    OP
       Jan 31, 2017
    之前的错误还没查出来是怎么回事,不过用别的方法实现了 space + hjkl 的移动方式,把下面的代码保存到~/keyboard.xmodmap 文件里。

    ```
    key which we must keep around.
    keycode 65 = Mode_switch space space space
    keycode anykey = space

    keycode 43 = h H Left
    keycode 44 = j J Down
    keycode 45 = k K Up
    keycode 46 = l L Right
    ```

    执行`xmodmap ~/keyboard.xmodmap && xcape -e '#65=space' -t 250`就行。
    noe132
        13
    noe132  
       Feb 1, 2017 via Android
    win 下 ahk 。。。
    我的改键是
    alt+ ikjl= udlr
    alt+ uom. = home end pgup phdn
    alt+h n = backspace delete
    searene
        14
    searene  
    OP
       Feb 1, 2017
    @noe132 我在 win10 下用 ahk 有点问题,比如我把 Alt+j 映射为向下,如果快速按 Alt+j 几下或者一直按住的话,会偶尔弹出一个 j 来,你有没有这种情况?如果没有的话能不能分享一下你的脚本?谢谢。
    zhidian
        15
    zhidian  
       Feb 1, 2017   ❤️ 1
    searene
        16
    searene  
    OP
       Feb 1, 2017
    @zhidian 谢谢,我等试一下。
    rubber
        17
    rubber  
       Feb 2, 2017
    autokey-py3 可定制全局快捷键,也可以根据特定窗口设定
    mattx
        18
    mattx  
       Dec 15, 2018
    @loading #4 hi spacefn 的激活按键可以选成 left alt 么? 现在打字需要用空格, 这样感觉很滞后.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   883 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 22:47 · PVG 06:47 · LAX 15:47 · JFK 18:47
    ♥ Do have faith in what you're doing.