Oh-my-zsh, Tmux, Vim


My Konsole as of October 2017

This time, I want to share my dotfiles of my new toys: zsh, tmux and vim at once. I’ve  found out what’s tmux actually, a couple of days ago by asking to a Telegram channel, @vimid. It’s “terminal multiplexer”, some kind of, it can break your single terminal session into multiple sessions.1 So, if I made use of Konsole tabs to use vim and php artisan serve of Laravel at a time then, now I just need tmux to run them concurrently.


What I know about zsh is not more than a console shell for macOS, before. Although, I did realize that it’s included in every Linux distributions as well. So, I thought I wouldn’t touch it no matter what. 😀

But this is my turning point to change my idealism. 😀 I just installed it, little bit configuring, and set it as bash replacement to Konsole. Umm, am I now look like a half macOS user? 😀

So, for zsh, I installed oh-my-zsh plugin and did some tweaks for the look of the prompt. I wanted a Powerline-like look, but I didn’t want to use Powerline. So, I installed powelevel9k theme instead. And now, I’m very satisfied, as it looks much nicer than my previous console.


I don’t configure tmux much, since I just know it not that long. I thought it was just like bash or other console shells. As I had been trying it once, one day. I run it, and nothing appeared other than a command line shell. And I just realized how it works lately. 😀

In my config, I don’t do more than set default shell to zsh, and install tmux-powerline-theme with tpm.


As for vim, I have known it for quite long time. The first time I used it, like many developers out there, I didn’t know how to exit. 😀

But yeah, slowly but sure, I somehow have a little knowledge how to handle it. I have configured it quite seriously as I use it for my daily need: coding. But still, I’d say, I haven’t got its full usability yet, as I mentioned this before.  Just check out my .vimrc below, in case you so curious for what plugins I installed.

  1.  https://fedoramagazine.org/use-tmux-more-powerful-terminal/ 

It’s so easy to connect Raspbian Lite to WiFi


This month, I’ve got a chance to try Raspberry Pi device. I’ve got the Pi 2 model B from Jakarta Notebook offline store in Semarang. I am going to make it as a home server (actually workspace server 😀 ). Right now, there’s a router here that is connected to internet. But unfortunately, I don’t have sufficient LAN cable to connect Pi to the router. So, I make use of a Ralink USB WiFi adapter for Pi to connect. And actually, set it up via command line is not hard as I thought.


Have a look at this screenshot. It’s my experience when installed OpenWRT system image via command line. I did that way because it’s almost broken and I thought it bricked. But fortunately, it could be connected via SSH, and I reflashed the image with mtd command, after I scp-ed the binary image.

Flashing OpenWRT router from console

Flashing OpenWRT router from console

How to flash OpenWRT router

How to use SOCKS 5 proxy in Ubuntu command line

This post is originally posted in Indonesian on my other blog: http://blog.badwi.my.id/internet/tips-bagi-pengguna-ubuntu-pengguna-internet-tri-122. Here I wrap up it in English.

Sometimes, we need a proxy to bypass internet filtering. When we work in command line environment, it may not as simple as in graphical environment. But thanks to proxychains, it becomes so simple that we just need to put proxychains command before the commands we want to execute. Proxychains is available in Ubuntu repository. So, we just have to run sudo apt-get install proxychains to install it.

Proxychains can handle several proxy types, including SOCKS5 proxy. It is an SSH tunneling proxy. So we need a remote machine which allows us to login and access internet. That’s usually a VPS. So, we need to connect to SSH and make a tunnel before using proxychains.

ssh -vfCND1080 -l login_name -p port remote_machine_address
  • v argument makes verbose output, so you may ommit it
  • f argument makes ssh session run in the background
  • C argument enables compression for all data
  • N argument disables remote command to the machine we connect
  • D1080 means to make local dynamic listening poxy at port 1080
  • login_name is the username of our remote machine
  • port is the SSH port of remote machine, usually 22
  • remote_machine_address is the address of our remote machine, either IP number or domain

Once connected, we can now use proxychains to bypass internet blocking. But first, we need to configure the proxychains in order to use our tunnel proxy. Edit the /etc/proxychains.conf file. Make sure you have these lines uncommented.

tcp_read_time_out 15000
tcp_connect_time_out 8000
socks5 1080

We can also make a per-user config file at $HOME/.proxychains/proxychains.conf. Then we can make use of proxychains in every command we execute which needs internet. For instance:

sudo proxychains apt-get update