Awesome Window Manager (Part 3)

How to configure Awesome Window Manager? (phần cuối)



Như ở phần 1, tôi đã giới thiệu cách cài đặt awesome cùng với awesome-extra (bổ sung các thư viện)
Nếu như ko cài đặt extra bạn có thể download và cài đặt thêm các thư viện như Vicious hay Obvious. Các thư viện này cung cấp wiget (thông tin về CPU, RAM, nhiệt độ... thậm chí có thể là các script như gmail...)
Thêm thư viện Vicious (Obvious ở đây)
git clone http://git.sysphere.org/vicious
mv vicious $XDG_CONFIG_HOME/awesome/ 
Trong đó $XDG_CONFIG_HOME là tên user của bạn


Trước tiên require thư viện vicious
require("vicious")

Bắt đầu tạo các widget trong wibox (Phần bên phải ngoài cùng của thanh taskbar)

Power (Pin):
--  Battery widget
batwidget = widget({ type = "textbox" })
vicious.register(batwidget, vicious.widgets.bat, '$1%', 13)

baticon = widget({ type = "imagebox", align = "right" })

Hàm để tính phần trăm điện năng hiện tại của pin
-- Register widget
vicious.register(batwidget, vicious.widgets.bat,
 function (widget, args)
  if args[2] == 0 then return ""
  else
   baticon.image = image("/home/username/.config/awesome/themes/daes/icons/bat.png")
   return "".. args[2] .. "%"
  end
 end, 61, "BAT0"
)

Temperature (Nhiệt độ của máy)
tzswidget = widget({ type = "textbox" })
vicious.register(tzswidget, vicious.widgets.thermal,
 function (widget, args)
  if args[1] > 0 then
   tzfound = true
   return " " .. args[1] .. "°C"
  else return "" 
  end
 end
 , 19, "thermal_zone0")


Thông tin sử dụng CPU
-- CPU widget
cpuwidget = widget({ type = "textbox" })
vicious.register(cpuwidget, vicious.widgets.cpu, '$1%')

Có thể tạo thêm widget icon cho CPU (tùy chọn)
-- Cpu icon
cpuicon = widget({ type = "imagebox", align = "right" })
cpuicon.image = image("/home/username/.config/awesome/themes/daes/icons/cpu.png")

Thông tin sử dụng RAM
-- Memory usage 
memwidget = widget({ type = "textbox" })
vicious.register(memwidget, vicious.widgets.mem, '$1%', 13)
Icon
-- Mem icon 
memicon = widget({ type = "imagebox", align = "right" })
memicon.image = image("/home/username/.config/awesome/themes/daes/icons/mem.png")

Thay thế các link image bằng link dẫn tới icon của bạn
Thêm widget vào wibox
 mywibox[s].widgets = {
        {
            mylauncher,
            mytaglist[s],
            mypromptbox[s],
            layout = awful.widget.layout.horizontal.leftright
        },
        mylayoutbox[s],
        mytextclock,
        s == 1 and mysystray or nil,
        mytasklist[s],
        layout = awful.widget.layout.horizontal.rightleft
    }
Add vào ngay sau dấu }, lần lượt tên các widget mà các bạn đã tạo ra ví dụ: memwidget, memicon,  cpuicon, cpuwidget, tzwiget....

Như trong hình dưới là wibox[s] của tôi sau khi hoàn thành


Cho phép các ứng dụng khởi động cùng awesome
--hitamu autorun
function run_once(prg)
    if not prg then
        do return nil end
    end
    awful.util.spawn_with_shell("pgrep -u $USER -x " .. prg .. " || (" .. prg .. ")")
end 
run_once("app_name")
Chèn đoạn code phía trên vào cuối file rc.lua, trong đó thay app_name bằng tên chương trình mà bạn muốn chạy.
Bạn có thể chạy trình gõ Tiếng Việt bằng cách thêm run_once("ibus-daemon") hay trình quản lý kết nối mạng run_once("nm-applet") (nếu sử dụng GNOME) và rất nhiều ứng dụng khác

Ngoài ra còn rất nhiều các widget khác như gmail, calendar... có thể tìm đc trên các diễn đàn linux hoặc tham khao ở trang chủ awesome #1 #2

Thêm các phím chức năng cho awesome

Mod 4 + Up / Down: Tăng hoặc giảm âm lượng

-- hitamu multimedia keys
    awful.key({ modkey,           }, "Up",     function () awful.util.spawn("amixer sset Master 5%+" )   end),
    awful.key({ modkey,           }, "Down",     function () awful.util.spawn("amixer sset Master 5%-" )   end),

PrintScr: Chụp ảnh màn hình
-- Print screen
    awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/hitamu/ 2>/dev/null'") end),

(Bạn phải cài đặt chương trình scrot trước đó (sudo apt-get install scrot) )

Di chuyển cửa sổ bằng các phím Mod4+Up/Down/Left/Right (hoặc giữ Mod4 và dùng chuột)
   awful.key({ modkey, "Control"}, "Down",  function () awful.client.moveresize(  0, 0,  0,  20) end),
   awful.key({ modkey, "Control"}, "Up",    function () awful.client.moveresize(  0, 0,  0,  -20) end),
   awful.key({ modkey, "Control"}, "Left",  function () awful.client.moveresize(0,   0,   -20,   0) end),
   awful.key({ modkey, "Control"}, "Right", function () awful.client.moveresize( 0,   0,  20,   0) end),
Thay đổi kích thước cửa sổ bằng Phím Control+Mod4+Up/Down/Left/Right
awful.key({ "Control"}, "Down",  function () awful.client.moveresize(  0,  20,   0,   0) end),
   awful.key({ "Control"}, "Up",    function () awful.client.moveresize(  0, -20,   0,   0) end),
   awful.key({ "Control"}, "Left",  function () awful.client.moveresize(-20,   0,   0,   0) end),
   awful.key({ "Control"}, "Right", function () awful.client.moveresize( 20,   0,   0,   0) end),

Thay đổi theme của awesome


Có rất nhiều theme của awesome do các awesome's user viết ra, bạn có thể tìm trên các diễn đàn  như ArchLinux hay trên các social coding như GitHub hoặc ở Trang chủ

-- {{{ Variable definitions
-- Themes define colours, icons, and wallpapers
beautiful.init("/usr/share/awesome/themes/default/theme.lua")
Thay đổi đường dẫn đến thư mục themes mới của bạn

Trong file theme.lua ta sẽ thấy 2 phần
Phần 1:
Main - chứa link wallpaper, ở đây bạn chỉ cần đổi đường dẫn tới file ảnh để thay đổi wallpaper của mình
theme.wallpaper_cmd = { "awsetbg /home/username/.config/awesome/themes/daes/background.jpg" }
Phần 2: Phần chỉnh sửa màu sắc của theme
Thường thì tôi sẽ ko thay đổi phần này vì đây là đặc trưng riêng của mỗi theme.


Thay đổi icon, GTK theme cho session Awesome

Cách đơn giản nhất để thay đổi đó là sử dụng chương trình lxappearance để thay đổi
Cài đặt
sudo apt-get install lxappearance
Sử dụng:
Gọi lxappearance trong terminal, thay đổi theme GTK ở tab Widget, icon ở tab icon theme....



Có thể xem các GTK vs Icon theme của tôi ở đây

Một vài screenshot khác




Video awesome kết hợp compiz khá thú vị:


Nhận xét

Bài đăng phổ biến từ blog này

Vim - The Text Editor (Part I)