一直用ubuntu作为自己的开发环境,习惯上安装一个xrdp以便远程的windows可以通过默认安装的“远程桌面”直接连接过去很是方便。
自从Ubuntu1204以后,由于桌面系统引入了很多特效,以至于对于远程的vnc/xrdp来说都无法很容易的支持,我也不得不将开发环境始终停留在了1204上。可这实在不是个办法,不得已,前些日子我终于下定决心用了xubuntu1510替换了Ubuntu作为自己的开发环境。
要说xubuntu,其实就是一个默认以xface为用户桌面系统的ubuntu,由于不是原本的那个unity桌面系统,它对于远程桌面的支持真是没得挑了,可使用没多久,我就发现问题了。
在系统默认的终端中无论你怎么按tab键,系统都无法完成自动补全。更恐怖的是其实对于整个系统来说tab的定义非常奇怪,几乎无法使用。这对于我经常用python来开发如果没有了tab键就意味着你的键盘空格键将承受更多的压力:)
网上很多人建议我检查一下auto-completed是不是安装或者配置是不是写在bashrc里,其实通过ssh连接上去一试便知,auto-completed是完全没有问题的。
研究了半天,才找到了问题所在:默认的tab键在xface下已经被系统默认定义为“切换同一应用程序的窗口”,而且对于这个键来说,它的响应优先级是最高的,这也就意味着在xface下我开一个命令行终端是无法进行tab自动补全的。
既然找到了问题,修改起来也就不是难题了,~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml就是热键映射配置文件,找到所有的name=”<Super>Tab”的键值(往往不止一个),将它的value替换成“empty”,然后重启系统即可!
即原来如果是:
<property name=”<Super>Tab” type=”string” value=”switch_window_key”/>
则新的键值则成为:
<property name=”<Super>Tab” type=”string” value=”empty”/>