Awesome+tmux+gnomeDo打造高效Linux桌面環境
引言
近期一直在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
.