引言
近期一直在Linux下工作,使用Ubuntu 11.10,经过一段时间的使用和磨合,终于打造出一套适合自己的高效Linux桌面环境,之前也在博客中零散的写了几篇文章分享,在此做一番总结.
首先先放出桌面截图
Awesome
使用Ubuntu 11.10不习惯默认搭载的Unity,Gnome 3也不尽人如意,也使用xfce/openbox,但使用都不是很好,没有Windows的体验好,然后接触了Awesome,Awesome是一款平铺式窗体管理器,Awesome会去除窗口的标题栏等.会使窗口尽量小的占用桌面空间,而且大部分窗口操作都可以通过键盘来进行操作,免除了各位身为键盘高手的码农们频繁拿鼠标的烦恼.
安装
Awesome Ubuntu下安装十分简单:
sudo apt-get install awesome
配置
拷贝配置文件
Awesome 的配置文件使用lua脚本,所以如果你会lua配置起来会得心应手,我们先拷贝一个基础配置文件,然后在这个基础上进行更改:
cp /etc/xdg/awesome/rc.lua ~/.config/awesome # ~/.confg下如没有awesome则手动创建
配置自动启程序
使用awesome之后之前设置的自动启动就会失效,因为Awesome启动是通过配置文件控制的,在配置文件(~/.config/awesome/rc.lua)加上如下内容可以配置自启动程序:
autorun = true
autorunApps =
{
"pidgin",
"fcitx",
"dbus-launch gnome-do",
"guake",
"/opt/qq2012/wineapp/qq/qq.sh",
}
if autorun then
for app = 1, #autorunApps do
awful.util.spawn_with_shell(autorunApps[app])
end
end
在autorunApps中添加要自动启动程序的命令即可在登录时启动相应的程序
使用gnome桌面元素
awesome仅仅是一款窗体管理器,如果不进行相应配置awesome会使用默认的x window元素,非常丑陋我们来配置awesome使用GNOME桌面管理: 在宿主目录创建.xinitrc,添加如下内容:
#!/bin/sh
gnome-settings-daemon & # 使用gnome桌面元素
nm-applet --sm-disable & # 托盘栏添加网卡图标
exec awesome
如果不生效,则执行下面命令:
ln -sf ~/.xinitrc ~/.xprofile
美化
可以自己编写lua脚本对Awesome进行美化,当然还有很多已经写好的配置,我们叫他为主题 awesome的所有主题可以在 https://github.com/mikar/awesome-themes 上下载. 我们可以使用git将主题整体克隆下来
git clone git://github.com/mikar/awesome-themes.git ~/.config/awesome/themes
然后修改~/.config/awesome/rc.lua的beautiful.init()的参数改为主题的路径:
beautiful.init("/your/home/path/.config/awesome/themes/bamboo/theme.lua")
如果背景图片无法显示,安装feh:
sudo apt-get install feh
使用
配置完成后注销使用Awesome会话登录,Awesome使用Win键作为主键,几个常用的为:
Win+num 可以在多个桌面切换
Win+Ctrl+r 可以重启Awesome,
Win+k/j可以切换窗口(类Vim操作),
Win+m/n可以最大/小化窗口,
Win+Shift+num 可以将当前窗口发送到其他桌面.
Win+Shift+C可以关闭当前窗口,
Win+Space可以切换布局,Awesome有多种布局,这里不作介绍,大家可以自己稍作尝试.
下面给出完整的快捷键:
Mod4 + Enter 打开终端
Mod4 + r 执行程序或命令
Mod4 + w 打开Awesome主菜单(鼠标右键关闭)
Mod4 + Shift + c 关闭当前窗口或应用
Mod4 + Control + r 重启Awesome
Mod4 + Shift + q 退出Awesome
Mod4 + j 切换到下一个窗口
Mod4 + k 切换到前一个窗口
Mod4 + Left 查看前一个tag
Mod4 + Right 查看后一个tag
Mod4 + 1-9 切换到tag 1-9
Mod4 + Control + j 切换到下一个屏幕
Mod4 + Control + k 切换到上一个屏幕
Mod4 + Shift + j 当前窗口和前一个窗口互换位置
Mod4 + Shift + k 当前窗口和后一个窗口互换位置
Mod4 + h 把主区域的宽度增大5%
Mod4 + l 把主区域的宽度减少5%
Mod4 + m 最大化窗口
Mod4 + n 最小化窗口
Mod4 + Shift + h 增加主区域窗口的数量
Mod4 + Shift + l 减少主区域窗口的数量
Mod4 + Space 切换窗口布局
Mod4 + Shift + space 把当前tag更换为前一种布局
Mod4 + Control + space 切换当前窗口是否为浮动
Mod4 + Shift + i 显示当前窗口的Class和instance,这在写脚本的时候尤其有用
Mod4 + Shift + r 重绘当前窗口
Mod4 + t 标记窗口(可标记多个)
Mod4 + Shift + F1~F9 把标记的窗口移动到第1~9个标记上
Ctrl + Mod4 + 1~9 把当前桌面和1~9桌面是显示
Mod4 + 1~9 恢复
Mod4 + Esc 快速切换到上一个桌面
更加详尽的介绍和配置请参见http://josephpan.net/blog/?p=992
Tmux
tmux是一款替代screen的产品,除了拥有screen的基本功能外,还有窗口分隔,多人共享等功能.尤其是窗口分隔功能异常突出.同时tmux简化了很多快捷键.还支持vi/emacs风格的快捷键绑定
安装
sudo apt-get install tmux
配置
tmux 使用~/.tmux.conf作为配置文件,所以我们可以将配置添加到这个文件中,网上很多资料都将前缀键绑定到Ctrl+a,但我喜欢使用Ctrl+a跳到行首,所以我还是使用默认的前缀键Ctrl+b.下面是我的配置文件:
set -g default-terminal "screen-256color"
set -g display-time 3000
set -g escape-time 0
set -g history-limit 65535
set -g base-index 1
setw -g utf8 on
# split window
unbind '"'
bind - splitw -v # vertical split (prefix -)
unbind %
bind | splitw -h # horizontal split (prefix |)
# select pane
bind k selectp -U # above (prefix k)
bind j selectp -D # below (prefix j)
bind h selectp -L # left (prefix h)
bind l selectp -R # right (prefix l)
# resize pane
bind -r ^k resizep -U 5 # upward (prefix Ctrl+k)
bind -r ^j resizep -D 5 # downward (prefix Ctrl+j)
bind -r ^h resizep -L 5 # to the left (prefix Ctrl+h)
bind -r ^l resizep -R 5 # to the right (prefix Ctrl+l)
# swap pane
bind ^u swapp -U # swap with the previous pane (prefix Ctrl+u)
bind ^d swapp -D # swap with the next pane (prefix Ctrl+d)
# misc
bind e lastp # select the last pane (prefix e)
bind ^e last # select the last window (prefix Ctrl+e)
bind q killp # kill pane (prefix q)
bind ^q killw # kill window (prefix Ctrl+q)
# copy mode
bind Escape copy-mode # enter copy mode (prefix Escape)
bind ^p pasteb # paste buffer (prefix Ctrl+p)
bind -t vi-copy v begin-selection # select (v)
bind -t vi-copy y copy-selection # copy (y)
# zoom pane <-> window
# see also: http://tmux.svn.sourceforge.net/viewvc/tmux/trunk/examples/tmux-zoom.sh
bind ^z run "tmux-zoom"
# app
bind ! splitw htop # htop (prefix !)
bind m command-prompt "splitw 'exec man %%'" # man (prefix m)
bind @ command-prompt "splitw 'exec perldoc -t -f %%'" # perl func (prefix @)
bind * command-prompt "splitw 'exec perldoc -t -v %%'" # perl var (prefix *)
bind % command-prompt "splitw 'exec perldoc -t %%'" # perl doc (prefix %)
bind / command-prompt "splitw 'exec ri %%'" # ruby doc (prefix /)
# reload config (prefix r)
bind r source ~/.tmux.conf \; display "Configuration reloaded!"
setw -g mode-keys vi
setw -g automatic-rename off
#-- colorscheme --#
# see also: https://github.com/daethorian/conf-tmux/blob/master/colors/zenburn.conf
# modes
setw -g clock-mode-colour colour223
setw -g mode-attr bold
setw -g mode-fg colour223
setw -g mode-bg colour235
# panes
set -g pane-border-bg default
set -g pane-border-fg colour234
set -g pane-active-border-bg default
set -g pane-active-border-fg green
# messages
set -g message-attr bold
set -g message-fg colour223
set -g message-bg default
#-- statusbar --#
set -g status-utf8 on
set -g status-interval 1
set -g status-keys vi
set -g status-justify left
set -g display-time 3000
set -g status-bg default
set -g status-fg white
set-window-option -g window-status-current-attr default
set-window-option -g window-status-current-fg red
set-window-option -g window-status-current-bg default
set -g status-left-length 15
set -g status-right-length 55
#set -g status-left "#[fg=white,bg=blue] > #I #W < #[default] |" # 0:bash
set -g status-left "#[fg=white,bg=default] > #S < #[default] |" # session-name
set -g status-right "#[fg=red,bright][ #[fg=cyan]#H #[fg=red]]#[default] #[fg=yellow,bright]- %Y.%m.%d #[fg=green]%H:%M #[default]#[fg=magenta,bright](load: #(cat /proc/loadavg | cut -d \" \" -f 1,2,3))#[default]"
使用
我使用terminator配合tmux使用,更改terminator的配置(~/.config/terminator/conf)
[profiles]
[[default]]
login_shell = True
use_custom_command = True # 允许自定义命令
custom_command = tmux -2 # 打开终端时执行tmux(-2 是强制终端使用256颜色)
background_type = transparent
scrollbar_position = hidden
foreground_color = "#ffffff"
show_titlebar = False
background_darkness = 0.2
常用快捷键:
Ctrl+b - 创建一个水平分隔
Ctrl+b | 创建一个垂直分隔
Ctrl+b j/k/h/l 上下左右切换分割窗
Ctrl+b Ctrl+j/k/h/l 向上下左右扩展分割窗大小
Ctrl+b c 创建一个窗口
Ctrl+b , 重命名窗口
Ctrl+b n 切换到下一个窗口
Ctrl+b p 切换到前一个窗口
Gnome-Do
Gnome Do 之前博客里有介绍请看这里,由于Gonme Do使用Win+Space快捷键已经被Awesome占用,所以为了正常使用Gnome Do 我将Gnome Do的快捷键绑定到Win+G
.