Bash和Tmux的Powerline

Powerline可以说是一个状态提示栏,当你在终端操作各种指令的时候,状态提示可以告诉你你当前的一些信息,有时候会提高一些工作效率,不过更多时候可能只是觉得很cool吧。
主要说两个Powerline,一个是Bash的(Zsh算一类),一个是Tmux的。由于在Tmux中的状态提示比较丰富了,所以不用Vim了,感觉装多了插件,Vim越来越慢了。

Bash的Powerline

powerline-shell安装

在Bash下安装Powerline,现在改名叫powerline-shell了,现在的仓库地址在这
环境Ubuntu,不过与环境关系不大,直接用pip管理器安装:

1
pip install powerline-shell

powerline-shell配置

首先生成配置文件:

1
powerline-shell --generate-config > ~/.powerline-shell.json

然后编辑配置文件,

1
vim ~/.powerline-shell.json

可以参照这个Demo
其中参数具体含义在Repo中的Readme上有说明。

字体库安装

由于Powerline所用的字体,一般的系统字体库中并不具备,如状态提示栏中的特殊符号。包括Bash和Tumx的Powerline等,都需要字体支持,不然可能会比较丑。

1
2
3
git clone https://github.com/powerline/fonts
cd fonts
sh install.sh

应用Powerline字体

安装完成之后需要选择所用的字体,因为用了Powerline,所以需要选择支持Powerline的字体。
具体方法:
首先在Terminal上的菜单里选择编辑Preference,然后在选择Profiles, 编辑所用的Profiles,再在Text Appearance中选择Custom font,在里面搜索Powerline的基本都是支持Powerline的字体了,选择自己喜欢的一款就好。
到这里,Bash的Powerline就算配置好了。

Tmux的Powerline

其实Powerline的配置大多类似,这里直接从官方Repo克隆下来。

下载tmux-powerline
1
2
cd ~/some/path/
git clone https://github.com/erikw/tmux-powerline.git
Tmux配置

一般在.tmux.conf文件中添加Tmux的配置:

1
vim ~/.tmux.conf

向其中添加如下内容:

1
2
3
4
5
6
7
set-option -g status on
set-option -g status-interval 2
set-option -g status-justify "centre"
set-option -g status-left-length 60
set-option -g status-right-length 90
set-option -g status-left "#(~/path/to/tmux-powerline/powerline.sh left)"
set-option -g status-right "#(~/path/to/tmux-powerline/powerline.sh right)"

其中~/path/to/tmux-powerline/powerline.sh是克隆的tmux-powerline的目录。
这些就是基本配置,已经足够了。
也可以控制左右状态栏的可见性:

1
2
bind C-[ run '~/path/to/tmux-powerline/mute_powerline.sh left' # Mute left statusbar.
bind C-] run '~/path/to/tmux-powerline/mute_powerline.sh right' # Mute right statusbar.

如果喜欢多窗口的Powerline可以添加下面一句话:

1
set-window-option -g window-status-current-format "#[fg=colour235, bg=colour27]⮀#[fg=colour255, bg=colour27] #I ⮁ #W #[fg=colour27, bg=colour235]⮀"

天气配置

Tmux的状态栏的功能有:

1
2
3
4
5
6
7
8
9
10
AN 和 WAN IP 地址
MPD、Rhythmbox、Banshee、MOC、Audacious、cmus 等播放器的正在播放信息
Gmail、Maildir、mbox 的新到邮件数
电池状态
天气预报
系统负载、CPU 占用、持续运行时间、网络速度
当前目录的 Git、SVN、Mercurial 分支
日期及时间
主机名称
tmux 信息

但是到这里打开Tmux的时候,会显示未设置地区,所以显示不了天气。
具体方法是编辑tmux-powerline的目录中文件:

1
vim ~/.tmux/tmux-powerline/segments/weather.sh

找到其中export TMUX_POWERLINE_SEG_WEATHER_LOCATION这个变量。
里面的注释也有说明,需要你自己获取你的地区ID。

1
2
3
4
# Your location. Find a code that works for you:
# 1. Go to Yahoo weather http://weather.yahoo.com/
# 2. Find the weather for you location
# 3. Copy the last numbers in that URL. e.g. "http://weather.yahoo.com/united-states/california/newport-beach-12796587/" has the numbers "12796587"

不过填了自己的ID之后可能还是不能显示天气。这时候只需要调整一下语句的顺序,将export TMUX_POWERLINE_SEG_WEATHER_LOCATION="2137109"这句话放到第一个if语句前面,最后开起来应该是这样:

1
2
3
4
TMUX_POWERLINE_SEG_WEATHER_DATA_PROVIDER_DEFAULT="yahoo"
TMUX_POWERLINE_SEG_WEATHER_UNIT_DEFAULT="c"
TMUX_POWERLINE_SEG_WEATHER_UPDATE_PERIOD_DEFAULT="600"
export TMUX_POWERLINE_SEG_WEATHER_LOCATION="2137109"

再回到Tmux,应该恢复正常了。
进行到这里,基本上算是大功告成了。

孤芳自赏,不必捧场。
分享