Cài đặt bộ gõ xvnkb cho Ubuntu

Chú ý: xem bài viết Bộ gõ xvnkb 0.3.0 đã fix các lỗi nếu bạn muốn cài xvnkb vào máy.

———————————–

Việc đầu tiên mà người Việt Nam khi sử dụng máy tính là cài đặt 1 bộ gõ Tiếng Việt. Trong Ubuntu có sẵn bộ gõ SCIM, nhưng chỉ hỗ trợ kiểu gõ VIQR, vô cùng bất tiện với những người quen tay với VNI hay TELEX. Theo đánh giá, xvnkb là phần mềm gõ tiếng việt tốt nhất trên Ubuntu hiện nay, dù nó vẫn còn nhiều lỗi 😀

Chúng ta bắt đầu cài nhé! Biên dịch từ mã nguồn cho nó pro 🙂

Bạn vào Applications -> Accessories -> Terminal:

1. Cài đặt trình biên dịch:

$ sudo apt-get install build-essential

$ sudo apt-get install xorg-dev

2. Tải mã nguồn:

$ wget http://xvnkb.sourceforge.net/xvnkb-0.2.9a.tar.bz2

Giải nén:

$ tar -xvf xvnkb-0.2.9a.tar.bz2

Chuyển vào thư mục vừa giải nén và bắt đầu biên dịch:

$ cd xvnkb-0.2.9a/
$ ./autogen.sh
$ ./configure –use-extstroke

Đến đây, bạn phải sửa lại đôi chút trong file config.h. Gõ gedit config.h và bỏ -e ở đầu

3. Cài đặt:

$ make
$ sudo make install

Đôi khi câu lệnh make báo lỗi, là do quá trình tải 2 gói biên dịch ban đầu bị lỗi. Bạn gõ lại 2 lệnh đầu tiên rồi thực hiện tiếp.

Chạy chương trình: gõ xvnkb

Chạy mặc định khi khởi động: nhấn Alt + F2 rồi thêm vào xvnkb –method=telex –charset=utf8 (trong đó method là telex, vni hoặc viqr; charset là utf8, tcvn, viscii, vps hoặc viqr).

Hàng độc: Nếu bạn thường xuyên sử dụng xvnkb mà rất ít khi thay đổi các thiết lập, thì biểu tượng xvnkb ngoài desktop có vẻ không cần thiết nhỉ? Để cho xvnkb chạy ẩn bên trong, bạn soạn tập tin .xvnkbrc trong thư mục Home Folder với nội dung:

top 0
left 0
method 1
enable 1
charset 5
spelling 0
interface 1
docking 1
font helvetica:size=10:style=bold
hotkey Control Shift_L

.xvnkbrc là file lưu trữ các thiết lập, bạn thử vọc và sửa đổi cho phù hợp nhé 😀

Cập nhật: cách sửa lỗi automount CD của xvnkb (“xào nấu” từ blog bạn Bửu: http://lambuu.06ctt.net, các bạn đọc xong khen bạn í một câu không bạn í lại buồn :D)

Nguyên nhân:

Do file reload của xvnkb /etc/ld.so.preload chứa 1 dòng duy nhất: ” /usr/local/lib/xvnkb.so.0.2.9a” .Nếu không có dòng này thì xvnkb sẽ không thể hoạt động, ngược lại thì sẽ không automount CD được. Và một cách giải quyết được đưa ra là: xóa nội dung file khi tắt máy và nạp lại nội dung file khi khởi động, khi đó sẽ “yên ổn mọi bề”.

Cách thực hiện:

Đầu tiên bạn sao lưu lại file /etc/ld.so.preload để đề phòng trường hợp bất trắc xảy ra. Để có thể chỉnh sửa nội dung file, bạn gõ lệnh trong Terminal:

$ sudo chmod a+w /etc/ld.so.preload

(chmod là lệnh chỉnh sửa quyền truy cập file, như ví dụ trên, a+w có nghĩa là “allow all people to write in this file”).

Bây giờ ta sẽ tạo ra file .xsession trong thư mục ~ với nội dung:

#!/bin/bash
gnome-session
echo > /etc/ld.so.preload

Save file, click phải chọn Properties -> Permissions -> Allow executing as program. Để chắc chắn file có thể thực thi được bạn gõ trong Terminal:

$ chmod +x .xsession

Bây giờ chúng ta thử xem file đã hoạt động tốt hay chưa. Tiếp tục trong Terminal:

$ echo /usr/local/lib/xvnkb.so.0.2.9a > /etc/ld.so.preload

Sau đó bạn logout và login trở lại, vào Terminal gõ:

$ cat /etc/ld.so.preload

Nếu vẫn còn thấy nội dung file thì bạn thử logout rồi login lần nữa xem. Còn không restart luôn cho chắc 😀 Khi nào thấy file trống (tức là chẳng hiện lên gì cả) thì thành công.

Bây giờ ta sẽ tạo ra 1 script tự động nạp nội dung file và khởi động xvnkb. Trong thư mục ~ bạn tạo file fix_xvnkb_start.sh (click phải -> Create Document -> Emty file) và gõ vào:

#!/bin/bash
sleep 9 && echo /usr/local/lib/xvnkb.so.0.2.9a > /etc/ld.so.preload;
sleep 1 && xvnkb -m=telex -c=utf8;

Save file, click phải chọn Properties -> Permissions -> Allow executing as program.

Để script này tự chạy khi khởi động, bạn vào System -> Preferences -> Sessions, chọn Add, đặt tên bất kỳ ở mục Name, ở mục Command ấn Browse trỏ đến file fix_xvnkb_start.sh vừa tạo.

Chú ý:

– Nếu bạn sử dụng kiểu gõ vni thì trong file fix_xvnkb_start.sh bạn sửa lại: -m=vni

– Để ẩn file, bạn thêm dấu chấm phía trước tên file (tức là .fix_xvnkb_start.sh). Làm thế này để đỡ choáng chỗ và tránh xóa nhầm.

Chúc các bạn thành công! 😀

Advertisements

14 thoughts on “Cài đặt bộ gõ xvnkb cho Ubuntu

  1. Khà chắc tui cũng chuẩn bị dọn nhà thôi.

    Cái vụ ẩn xvnkb này hồi lúc đầu tui vọc bậy bạ là nó mất rồi. Nguyên nhân là xvnkb chỉ có 2 option là method với charset thôi, cái docking là không hề có do đó thêm tầm bậy thuộc tính vô là xvnkb tự nhiên bị ẩn mất tiêu

  2. Không hẳn như thế đâu. Lúc trước tui cũng thử nhưng nó đâu có chịu mất 😀
    Ví dụ thuộc tính spelling, enable với hotkey hoạt động rất tốt khi tạo file .xvnkbrc
    Lúc trước có người đọc source của xvnkb, thấy nó lấy dữ liệu từ file này nhưng xvnkb lại không tự tạo ra file. Mình chỉ cần tạo ra là ok 🙂

  3. Hôm trước vừa nhận được 1 cách khắc phục lỗi của xvnkb từ bạn giunkieng. Mình chưa test thử (tại đang chạy tốt không nỡ phá :D) Bạn nào kiểm tra thử xem:

    ——————–

    #This script for fix “xvnkb cause automount not functioning in Ubuntu ”
    #!/bin/bash
    #remove /etc/X11/
    sudo apt-get install ld.so.preload-manager
    if [ -f /etc/X11/Xsession.d/60xvnkb_startup ]; then
    sudo mv /etc/X11/Xsession.d/60xvnkb_startup /etc/X11/Xsession.d/bk_60xvnkb_startup
    fi
    #fix /etc/init.d/gdm
    if [ -f /etc/init.d/gdm ]; then
    sudo cp /etc/init.d/gdm /etc/init.d/gdm_bk
    sudo sed -e ‘/;;/d’ -e ‘/stop)/i sudo /usr/sbin/ld.so.preload-manager -y /usr/local/lib/xvnkb.so.0.2.9a’ -e ‘/stop)/i\;;’ -e ‘/reload)/i\;;’ -e ‘/*)/i\;;’ -e ‘/esac/i\;;’ -e ‘/Reloading /a sudo /usr/sbin/ld.so.preload-manager -y /usr/local/lib/xvnkb.so.0.2.9a ‘ -e ‘/Stopping /a sudo /usr/sbin/ld.so.preload-manager -r /usr/local/lib/xvnkb.so.0.2.9a’ /etc/init.d/gdm > /tmp/temp
    sudo cp -f /tmp/temp /etc/init.d/gdm
    sudo chmod x /etc/init.d/gdm
    fi
    #auto start up xvnkb $USER
    [ -d ~/.config/autostart ] || mkdir -p ~/.config/autostart
    sudo chmod ugo rwx ~/.config/autostart
    sudo chown $USER:$USER ~/.config/autostart
    if [ -d ~/.config/autostart ]; then
    cd ~/.config/autostart
    echo “[Desktop Entry]” > ./xvnkb.desktop
    echo “Type=Application” >> ./xvnkb.desktop
    echo “Encoding=UTF-8″ >> ./xvnkb.desktop
    echo “Version=1.0″ >> ./xvnkb.desktop
    echo “Name=XVNKB” >> ./xvnkb.desktop
    echo “Name[en_US]=XVNKB” >> ./xvnkb.desktop
    echo “Exec=/usr/local/bin/xvnkb” >> ./xvnkb.desktop
    echo “X-GNOME-Autostart-enabled=true” >> ./xvnkb.desktop
    chmod ugo rx ./xvnkb.desktop
    chown $USER:$USER ./xvnkb.desktop
    fi
    exit 0

  4. Em nhập dòng này:

    $ sudo apt-get install xorg-dev

    Nó báo là không tìm thấy gói xorg-dev

    Đã thử: $ sudo apt-get clean
    $ sudo apt-get update
    nhiều lần mà không được.

    Mấy anh vui lòng chỉ giúp. Cảm ơn. Máy em đứng sau ISA Server proxy. Cảm ơn nhiều.

  5. @Khaithien:

    bạn thử vào System -> Administration -> Synaptic Package Manager, rồi search với từ khoá “xorg-dev” xem. Của mình hiện ra 3 gói và đã cài đặt 2 gói dưới.

    “Máy em đứng sau ISA Server proxy”. Mình chưa hiểu ý của bạn lắm. Bạn tham khảo bài viết này để chọn lại server thử xem:
    http://saylinux.wordpress.com/2007/12/23/c%e1%ba%a5u-hinh-d%e1%bb%83-update-ubuntu-v%e1%bb%9bi-t%e1%bb%91c-d%e1%bb%99-c%e1%bb%b1c-nhanh/

  6. thì bí quá làm chmod đại chớ sao 😀
    Tuy có hơi liều một chút nhưng mình nghĩ cũng không quá nguy hiểm vì dù tin tặc hay virus ghi thêm vào ld.so.preload thì khi logoff hay shutdown, file ld.so.preload sẽ bị xóa bằng script .xsession

  7. File config.h nằm ngay trong thư mục xvnkb-0.2.9a mới vừa giải nén. Tuy nhiên, phiên bản 0.2.9 đã quá cũ, bạn có thể cài phiên bản mới 0.3.0 hoặc sử dụng SCIM trong Ubuntu 8.04 (các bài viết có trong blog này).

    Chúc vui!

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s