January 18, 2012

Gnome 3 + Tint2 Panel = Gnome Classic++

Saat Debian Wheezy menyertakan Gnome Shell dalam paketnya, saya segera datang ke Repo UGM untuk memperbarui repository di harddisk. Upgrade Squueze ke Wheezy/sid dan Gnome 3 terinstall sebagai default Desktop Environment menggantikan Gnome Classic.

Seperti kebanyakan pengguna Gnome, saya juga kecewa dengan paradigma baru yang di tawarkan Gnome 3. Saya-pun beralih ke Openbox yang jauh lebih ringan. Openbox terinstall di satu partisi terpisah, dual boot dengan Gnome 3, sama-sama Debian dengan Openbox sebagai default Desktop.

Openbox yang secara default-nya tidak menyertakan panel membebaskan penggunanya untuk memilih dan menginstall panel tambahan yang disukai. Untuk yang tertarik dengan Openbox bisa dilihat referensinya disini.

Seperti Openbox, tidak ada panel di Gnome 3, karena belum terbiasa desktop ini sangat susah digunakan. Apalagi kalau aplikasi yang dibuka semacam GIMP yang punya tiga window, atau membuka 2 terminal dalam waktu bersamaan.
 
Terinspirasi dari seorang kawan baru 'nemu' di Arch Linux, saya install tint2 di Gnome 3. Hasilnya memuaskan. Gnome Shell jadi lebih efektif digunakan, tidak perlu pilih Fallback Session jika anda ingin tampilan Gnome Classic yang legendaris.



Saya tidak akan memberi contoh command cara install tint2, karena anda tentu sudah tahu caranya. Saya hanya ingin memberikan contoh tint2rc yang saya saat ini saya gunakan.

# Tint2 config file

# Background definitions
# ID 1
rounded = 2
border_width = 1
background_color = #222222 100
border_color = #000000 44

# ID 2
rounded = 1
border_width = 1
background_color = #888888 60
border_color = #8F8F8F 40

# ID 3
rounded = 1
border_width = 1
background_color = #888888 20
border_color = #8F8F8F 20

# ID 4
rounded = 1
border_width = 1
background_color = #888888 20
border_color = #8F8F8F 60

# ID 5
rounded = 2
border_width = 1
background_color = #222222 40
border_color = #8F8F8F 20

# ID 6
rounded = 2
border_width = 1
background_color = #222222 100
border_color = #8F8F8F 70

# ID 7
rounded = 3
border_width = 1
background_color = #222222 50
border_color = #8F8F8F 40

# ID 8
rounded = 1
border_width = 1
background_color = #888888 20
border_color = #888888 20

# ID 9
rounded = 2
border_width = 0
background_color = #222222 40
border_color = #8F8F8F 20

# Panel
# LTC = Launcher, Taskbar, Clock.
panel_items = LTC
panel_monitor = all
panel_position = bottom center horizontal
panel_size = 100% 34
panel_margin = 0 0
panel_padding = 6 2 4
panel_dock = 0
wm_menu = 1
panel_layer = top
panel_background_id = 1

# Panel Autohide
autohide = 0
autohide_show_timeout = 0.3
autohide_hide_timeout = 1.5
autohide_height = 6
strut_policy = follow_size

# Taskbar
taskbar_mode = multi_desktop
taskbar_padding = 2 2 4
taskbar_background_id = 5
taskbar_active_background_id = 6
taskbar_name = 1
taskbar_name_padding = 2 2
taskbar_name_background_id = 9
taskbar_name_active_background_id = 9
taskbar_name_font = Hobo Std bold 10
taskbar_name_font_color = 0
taskbar_name_active_font_color = 100

# Tasks
urgent_nb_of_blink = 20
task_icon = 1
task_text = 0
task_centered = 1
task_maximum_size = 40 40
task_padding = 6 3
task_background_id = 3
task_active_background_id = 2
task_urgent_background_id = 4
task_iconified_background_id = 0

# Task Icons
task_icon_asb = 100 -100 0
task_active_icon_asb = 100 -100 0
task_urgent_icon_asb = 100 -100 0
task_iconified_icon_asb = 100 -100 0

# Fonts
task_font = Lucida Sans 10
task_font_color = #222222 100
task_active_font_color = #8F8F8F 100
task_urgent_font_color = #8F8F8F 100
task_iconified_font_color = #8F8F8F 100
font_shadow = 0

# System Tray
# systray = 1
# systray_padding = 4 4 5
# systray_sort = descending
# systray_background_id = 0
# systray_icon_size = 0
# systray_icon_asb = 100 -100 0

# Clock
time1_format = %H:%M
time1_font = Designer Block Bold 14
clock_font_color = #8F8F8F 100
clock_tooltip = %A %d %B
clock_padding = 4 2
clock_background_id = 0
# clock_lclick_command = gsimplecal
# clock_rclick_command = osmo

# Launcher
launcher_padding = 8 4 4
launcher_background_id = 0
launcher_icon_size = 24
# Specify icon theme names with launcher_icon_theme.
launcher_icon_theme = Faenza
# Each launcher_item_app must be a full path to a .desktop file
launcher_item_app = /usr/share/applications/gkamus.desktop
launcher_item_app = /usr/share/applications/gvim.desktop
launcher_item_app = /usr/share/applications/evolution.desktop
launcher_item_app = /usr/share/applications/iceweasel.desktop

# Tooltips
tooltip = 1
tooltip_padding = 2 2
tooltip_show_timeout = 0.0
tooltip_hide_timeout = 0.0
tooltip_background_id = 1
tooltip_font = Lucida Sans 8
tooltip_font_color = #8F8F8F 80

# Mouse
mouse_middle = close
mouse_right = toggle_iconify
mouse_scroll_up = toggle_iconify
mouse_scroll_down = toggle_iconify




Tambahkan Tint2 Panel di list startup:
tint2 -c .config/tint2/tint2rc &

November 22, 2011

Dokumentasi Upgrade Debian Squeeze ke Wheezy/sid


Hal yang harus dipersiapkan saat upgrade Squeeze ke Wheezy:

  • Pertimbangkan kenapa anda harus melakukan update ke rilis testing.
  • Backup data-data penting
  • Persiapkan linux liveusb/bootable CD
  • Cari referensi sebanyak-banyaknya untuk persiapan jika kemungkinan terburuk terjadi saat proses upgrade (meskipun testing aman digunanan)
  • Pilih mirror yang dekat secara geografis dari tempat tinggal
  • Yakin dan tahu apa yang harus dilakukan. Linux tidak semudah windows, tapi jika anda terbiasa denganl inux, memakai linux jauh lebih mudah daripada windows.
  • Baca dan pilih dengan seksama perintah yang keluar. Akan ada beberapa opsi yang harus anda pilih antara lain Yes/No/Default/Different
  • Proses upgrade butuh usaha yang lebih daripada saat install. Tapi bukan berarti harus memilih fresh install saat gagal upgrade.

Contoh mirror yang saya pakai:
# deb http://security.debian.org/ squeeze/updates main contrib
# deb-src http://security.debian.org/ squeeze/updates main contrib
# deb http://kambing.ui.ac.id/debian/ squeeze main contrib non-free
deb http://kambing.ui.ac.id/debian/ wheezy main contrib non-free

Perintah yang digunakan:
# apt-get update
# apt-get --show-upgraded dist-upgrade

Jika ada masalah, perintah selanjutnya
# apt-get -f install

Setelah itu jalankan lagi perintah
# apt-get dist-upgrade

Untuk informasi, ketikkan:
$ cat /etc/debian_version
$ uname -a

Saat proses upgrade gagal:

  • Jangan panik, ketikkan saja masalah yang anda hadapi di Google. Pasti ada yang pernah mengalami masalah yang sama.
  • Pada synaptic, broken package ditandai dengan warna merah. Disana tersedia info dependency apa saja yang dibutuhkan/conflict dengan broken package
  • Jika anda punya waktu, berusahalah minimal satu hari sebelum memilih fresh install.
  • Jika komputer gagal booting, gunakan liveusb/bootable CD yang dipersiapkan untuk trouble shooting.
  • Copy semua file yang telah anda download di /var/cache/apt/archives/ ke salah satu folder. Anda akan memakainya lagi saat penasaran pengen update lagi. Daripada harus download dari awal.
  • Jika anda malas konfigurasi, copy semua hidden file di /home/username/ tempatkan di folder backup. Nantinya anda tinggal mengembalikan lagi ke tempat semula setelah selesai install ulang. Dengan catatan harus disesuaikan dengan kebutuhan.


Saat proses upgrade berhasil:
- Jika kapasitas harddisk sangat minim, hapus kernel lama yang sudah tidak
  dipakai, tapi sisakan minimal satu.
- Cari dan hapus semua file konfigurasi yang sudah tidak terpakai
# aptitude search '~c'
# aptitude purge '~c'

Beberapa hari yang lalu saya melakukan upgrade, tapi gagal karena paket libc6 yang saya pake versi ubuntu. Sedangkan libc6 ini paket yang sangat vital dan menghambat proses upgrade. Saya punya koleksi repository Debian dan Ubuntu. Karena waktu release Debian yang lama dan koneksi internet yang lambat, saya pernah memakai file repo ubuntu untuk upgrade beberapa aplikasi.

Akhirnya, setelah dua tahun gak pernah install ulang, saya terpaksa fresh install karena saya gak berhasil ketemu jawabannya dan komputer harus segera dipake. DVD installer saya Lenny, punya repository Squeeze lengkap, dan sudah download paket Wheezy. Dalam waktu satu jam saya install Lenny, upgrade Squeeze, kemudian Wheezy/sid lancar tanpa ada masalah.

August 24, 2011

120+ Perintah VIM dan Fungsinya



Banyak yang bilang kalau vim (dan emacs) adalah text editor yang wajib dipelajari para pengguna linux. Minimal tau cara membuka file, edit beberapa text dan keluar dari vim.

Dulu saya gak terlalu tertarik memakai vim, bahkan sering dibuat jengkel karena untuk memindah kursor saja harus belajar, harus ada insert dan command mode. Tapi setelah membaca beberapa artikel tentang vim, saya mulai tertarik untuk mempelajari lebih jauh, semakin menarik. Apalagi setelah menambahkan plugin dan beberapa baris konfigurasi di vimrc. Buat yang baru mengenal vim, coba ketik "vimtutor" di terminal, tutorial praktek vim yang sangat keren.

Setelah itu silahkan baca kitab vim yang direkomendasikan para veteran vim judulnya "Learning the Vi and Vim Editor" terbitan O'Reilly Media,Inc, karangan Arnold Robbins, Elbert Hannah dan Linda Lamb.

Berikut 120+ perintah vim yang saya rangkum dari berbagai sumber dan sudah saya terjemahkan ke bahasa nasional kita, bahasa indonesia. Gak perlu dihafalin, karena semakin kita bersahabat dengan vim, jari tangan kita akan ingat dengan sendirinya.
    +------------------------------------------------------------------+
    |  Ada beberapa perintah yang sebenarnya merupakan multi-command,  |
    |  misalnya:                                                       |
    |  --------------------                                            |
    |  ggguG = lowercase                                               |
    |  --------------------                                            |
    |  gg : memindah kursor ke baris pertama                           |
    |  gu : mengganti dengan huruf kecil                               |
    |  g  : memindah kursor ke baris terakhir                          |
    |  --------------------                                            |
    |  ggVG = seleksi semua                                            |
    |  --------------------                                            |
    |  gg: memindah kursor ke baris pertama                            |
    |  v : mode visual                                                 |
    |  g : memindah kursor ke baris terakhir                           |
    |  --------------------------------------------------------------  |
    |  Trik : lakukan mapping pada vimrc  untuk multi-command yang     |
    |  sering digunakan,misalnya:                                      |
    |                                                                  |
    |  map  ggVG                                                  |
    |                                                                  |
    |  (Control + a) akan menyeleksi semua text dari baris pertama     |
    |  sampai terakhir,seperti text editor pada umumnya.               |
    +------------------------------------------------------------------+

===============================================================================
MEMBUKA FILE, MENYIMPAN DAN KELUAR
===============================================================================
:e namafile     : membuka file bernama "namafile",apabila tidak ditemukan maka
                  akan di buat file baru dengan nama "namafile".
:browse e       : membuka file dengan tampilan grafis
:Sex            : membagi window dan membuka file explorer
:e              : memuat ulang file (reload)
:new filebaru   : mengedit "filebaru" di window baru
:w namafile     : menyimpan file dengan nama "namafile"
:w              : menyimpan file tanpa harus keluar dari ViM.
:qa             : keluar tanpa menyimpan semua perubahan jika buffer lebih dari 
                  satu
:q!             : keluar tanpa menyimpan perubahan.
:q              : keluar dari ViM.
ZZ              : menyimpan isi dari buffer kedalam file, kemudian keluar.

===============================================================================
KURSOR
===============================================================================
h               : geser kiri 1 karakter
j               : turun 1 baris
k               : naik 1 baris
l atau Spasi    : geser kanan 1 karakter
w               : geser kanan 1 kata (kursor pada huruf pertama)
W               : geser kanan 1 kata dan menghiraukan tanda baca
                  (kursor pada huruf pertama)
e               : geser kanan 1 kata (kursor pada huruf terakhir)
E               : geser kanan 1 kata dan menghiraukan tanda baca
                  (kursor pada huruf terakhir)
b               : geser kiri 1 kata (kursor pada huruf pertama)
B               : geser kiri 1 kata dan menghiraukan tanda baca
                  (kursor pada huruf pertama)
0 (angka nol)   : pindah ke awal baris
$               : pindah ke akhir baris
(               : pindah ke awal kalimat
)               : pindah ke akhir kalimat
{               : pindah ke awal paragraf
}               : pindah ke akhir paragraf
-               : pindah ke karakter pertama pada baris sebelumnya
+               : pindah ke karakter pertama pada baris selanjutnya
gg              : pindah ke baris pertama
G               : pindah ke baris terakhir
H               : layar atas
M               : layar tengah
L               : layar bawah
nG              : pindah ke baris "n"
ENTER           : turun 1 baris dan menempatkan kursor pada karakter pertama
Ctrl+F          : turun 1 halaman
Ctrl+B          : naik 1 halaman

    +-------------------------------------------------------------------+
    |  Pada beberapa perintah bisa dikombinasikan dengan angka, misal:  |
    |  17h,8j,19k,45l,17w,8E,1945G                                      |
    +-------------------------------------------------------------------+

===============================================================================
MENAMBAH TEXT / MASUK KE MENU INSERT
===============================================================================
i               : sebelum kursor
I               : awal baris
a               : setelah kursor
A               : akhir baris
o               : membuat baris baru diatas posisi kursor
O               : membuat baris baru dibawah posisi kursor

===============================================================================
EDIT TEXT
===============================================================================
s               : meng-edit satu (dan/atau menambahkan beberapa karakter) 
                  dimulai dari posisi kursor 
S               : hapus kemudian meng-edit satu baris dimana kursor berada
r               : meng-edit satu karakter pada posisi kursor (dari command mode)
R               : meng-edit karakter, dimulai dari posisi kursor (meng-edit 
                  karakter yang dilewati kursor sampai menekan ESC)
cb,cB,ce,cE,    : meng-edit text dikombinasikan dengan tombol motion (lihat
cw,cW,c(,c),      KURSOR)
c{,c},c0,c$

    +-------------------------------------------------------------------+
    |  Pada beberapa perintah bisa dikombinasikan dengan angka, misal:  |
    |  17c),c8G                                                         |
    +-------------------------------------------------------------------+

===============================================================================
HAPUS TEXT
===============================================================================
x               : menghapus karakter pada posisi kursor
dd              : menghapus baris
C               : menghapus sampai akhir baris dan masuk menu insert
D               : menghapus sampai akhir baris
db,dB,de,dE,    : mengganti text dikombinasikan dengan tombol motion (lihat 
dw,dW,d(,d),      KURSOR)
d{,d},d0,d$

    +-------------------------------------------------------------------+
    |  Pada beberapa perintah bisa dikombinasikan dengan angka, misal:  |
    |  17x,8dd,1945dw                                                   |
    +-------------------------------------------------------------------+

===============================================================================
COPY - PASTE
===============================================================================
yy              : meng-copy satu baris
nyy             : meng-copy "n" baris
Y               : meng-copy sampai akhir baris
p               : paste setelah atau di bawah baris posisi kursor
P               : paste tepat pada posisi kursor atau diatas baris

===============================================================================
MENCARI TEXT
===============================================================================
/asdf           : mencari "asdf" dari atas kebawah
?asdf           : mencari "asdf" dari bawah ke atas
*               : mencari kata dibawah posisi kursor
n               : mengulang pencarian terakhir
/jo[ha]n        : mencari john atau joan
/\          : mencari kata "indomie" atau "supermie"
/^\n\{3}        : mencari 3 baris yang kosong
y/              : highlight/block kata yang dicari

===============================================================================
MENGGANTI TEXT
===============================================================================
:s/lama/baru/g      : mennganti kata "lama" dengan kata "baru" dalam satu baris
:%s/lama/baru/g     : mengganti semua kata "lama" dengan kata "baru"
:%s/lama/baru/gc    : mengganti semua kata "lama" dengan kata "baru" dengan 
                      meminta konfirmasi terlebih dahulu
:%s/lama/baru/gi    : mengganti semua kata "lama" dengan kata "baru" tanpa 
                      menghiraukan huruf besar/kecil
:19,45s/lama/baru/g : mengganti semua kata "lama" dengan kata "baru", dimulai 
                      dari  baris 19 sampai dengan baris 45
:bufdo %s/lama/baru/g : mengganti kata "lama" dengan kata "baru" pada semua 
                        buffer yang terbuka

===============================================================================
CHANGE CASE
===============================================================================
VU              : mengubah baris menjadi huruf besar semua
Vu              : mengubah baris menjadi huruf kecil semua
vEU             : mengubah kata menjadi huruf besar
vEu             : mengubah kata menjadi huruf kecil
gggUG           : mengubah semua text menjadi huruf besar
ggguG           : mengubah semua text menjadi huruf kecil
vE~             : membalik kata dari huruf besar ke huruf kecil atau sebaliknya
g~~             : membalik baris dari huruf besar ke huruf kecil atau sebaliknya
:%s/\<./\u&/g   : mengubah huruf pertama dari setiap kata dengan huruf besar
:%s/\<./\l&/g   : mengubah huruf pertama dari setiap kata dengan huruf kecil
:%s/.*/\u&      : mengubah huruf pertama dari setiap baris dengan huruf besar
:%s/.*/\l&      : mengubah huruf pertama dari setiap baris dengan huruf kecil
:19,45s/.*/\l&  : mengubah huruf pertama dari baris 19 sampai baris 45 dengan 
                  huruf kecil
:%s/[.!?]\_s\+\a/\U&\E/g : mengubah huruf pertama dari setiap kalimat dengan 
                           huruf besar

===============================================================================
TAB
===============================================================================
:tabnew         : membuka tab baru
:tabfirst       : pindah ke tab pertama
:tablast        : pindah ke tab terakhir
:tabdo          : eksekusi perintah pada semua tab
:tab ball       : menempatkan semua file yang terbuka menjadi satu tab/satu file
   : pindah ke tab selanjutnya
 : pindah ke tab sebelumnya

===============================================================================
MEMBAGI WINDOW
===============================================================================
:split namafile : membuka file bernama "namafile" pada window terpisah
:vsplit         : membagi window secara vertikal
:hide           : menutup window
:sview namafile : seperti :split (read-only)
k       : meletakkan kursor pada window atas

===============================================================================
MENANDAI
===============================================================================
mn              : menandai posisi kursor dengan "n"
'n              : memindah posisi kursor ke tanda n

===============================================================================
AUTO COMPLETE
===============================================================================
    : melengkapi kata dengan yang pernah ditulis sebelumnya
    : melengkapi baris dengan yang pernah ditulis sebelumnya

===============================================================================
INDENT
===============================================================================
>>              : indent
        : indent
<<              : un-indent (insert mode)
        : un-indent (insert mode)
:17,45>         : indent baris 17 sampai 45

===============================================================================
INTERAKSI DENGAN UNIX
===============================================================================
:shell          : membuka terminal
        : kembali ke Vim
:!pwd           : eksekusi pwd dari Vim
!!pwd           : eksekusi pwd dan menyisipkan output di file

===============================================================================
LAIN-LAIN
===============================================================================
.               : mengulang perintah sebelumnya 
%               : pindah kursor ke sesama tanda kurung yang berpasangan (),{},[]
:his c          : menampilkan daftar perintah sebelumnya
:his s          : menampilkan daftar pencarian kata sebelumnya
:history        : menampilkan daftar perintah yang dilakukan sebelumnya
:ju             : menampilkan daftar pemindahan kursor sebelumnya
q:              : membuka window yang berisi daftar perintah sebelumnya
q/              : membuka window yang berisi daftar pencarian kata sebelumnya
g          : menampilkan informasi file (jumlah baris,kolom,kata,ukuran file)
:19,45TOhtml    : konversi baris 19 sampai 45 dalam bentuk html
:runtime! syntax/2html.vim : konversi file dalam bentuk html