careone1949
deepin
2013-08-07 03:22 文件内容其实就是一个 bash 脚本 /usr/local/bin/key-changer
脚本完整内容如下:Copy the Code
脚本完整内容如下:
- #! /bin/bash
- ## swap Caps_Lock and Control_L for Emacs
- # version 0.1, 2013-08-05
- # Author: Careone
- # require /usr/bin/xmodmap from package "x11-xserver-utils"
- ### defines ###
- VERSION="0.1"
- # Usage: usage
- # Print the usage.
- usage () {
- cat <Usage: $0 [OPTION]
- Swap CapsLock and Ctrl_L for current user and current session, and
- run again to reset swapped keys to normal.
- -swap, --swap-ctrl-capslock
- swap CapsLock and Ctrl_L for current user and current session, and
- run again to reset swapped keys to normal.
- -rkey, --reset-keymap
- restore key map for current user and current session
- -pm print modifier map (equals run "xmodmap -pm")
- -pke print keymap table as expressions (equals run "xmodmap -pke")
- -V, --version print the version information and exit
- -h, --help print this message and exit
- Please report bugs to Careone .
- EOF
- }
- for option in "$@"; do
- case "$option" in
- -h | --help)
- usage
- exit 0 ;;
- -pm)xmodmap -pm
- exit 0 ;;
- -pke)xmodmap -pke
- exit 0 ;;
- -swap | --swap-ctrl-capslock)
- ## to show current key maps, please type command "xmodmap -pke"
- echo "(User) swap CapsLock and Ctrl_L for current user and current session..."
- echo " (for current user and current login only. you can run"
- echo " '$0 $1' again to reset key map to normal)"
- if ! which xmodmap &>/dev/null; then
- echo " Error: xmodmap not found, or not executable." 1>&2
- echo " Please install 'x11-xserver-utils' first! Quit." 1>&2
- exit 0;
- else
- ## define: swap Caps_Lock and Control_L
- _keySwap () {
- cat <remove Lock = Caps_Lock
- remove Control = Control_L
- keysym Control_L = Caps_Lock
- keysym Caps_Lock = Control_L
- add Lock = Caps_Lock
- add Control = Control_L
- EOF
- }
- # method 1:
- # _keySwap >> ~/.xmodmap.swap
- # xmodmap ~/.xmodmap.swap
- #
- # method 2:
- _keySwap | xmodmap -
- if [ "$?" = 0 ]; then
- echo " Done."
- fi
- fi
- shift
- ;;
- -rkey | --reset-keymap)
- echo "(User) restore key map for current user and current session..."
- if ! which xmodmap &>/dev/null; then
- echo " Error: xmodmap not found, or not executable." 1>&2
- echo " Please install 'x11-xserver-utils' first! Quit." 1>&2
- exit 0;
- else
- ## define: reset key map
- _keyReset () {
- cat <remove Lock = Caps_Lock
- remove Control = Control_L
- keycode 37 = Control_L NoSymbol Control_L
- keycode 66 = Caps_Lock NoSymbol Caps_Lock
- add Lock = Caps_Lock
- add Control = Control_L
- EOF
- }
- _keyReset | xmodmap -
- if [ "$?" = 0 ]; then
- echo " Done."
- fi
- fi
- shift
- ;;
- -V | --version)
- echo "$0 $VERSION"
- exit 0 ;;
- -*)
- echo "Unrecognized option \`$option'" 1>&2
- exit 1;;
- esac
- done
- exit 0;
Reply Like 0 View the author
程序名: key-changer
下载地址(含 deb, tar.gz 两种格式):
https://sourceforge.net/projects/emacsl ... ale-zh-cn/
* 使用说明:
key-changer -swap (注意:参数 -swap 前面要有一个空格)
即可实现Contorl_L 和 Caps_Lock 的键位互换。
(说明:退出登陆或重新启动后,又恢复为正常键位)
• 想恢复正常键位的方法(运行以下任意一种命令均可):
方法1: 再带 -swap 参数运行一次:
• key-changer -swap
方法2: 带 -rkey 参数运行:
• key-changer -rkey
方法3:退出登陆或重新启动后,又恢复为正常键位
其它功能选项,请运行 key-changer -h 查看更多帮助
技巧:如果为了方便玩街机模拟器游戏,或者原键盘上某个键位损坏,需要替换键位,可以查看 脚本 /usr/local/bin/key-changer 的内容,
添加或修改功能选项即可。
详细的键位信息,可运行 key-changer -pke (实际上是调用 xmodmap -pke)查看完整信息。