Saturday, May 24, 2014

zsh enhanced autocomplete

Just another cool and helpful little zsh thing, I call it "enhanced autocomplete".
This works for any command with positional arguments (just type command [tab]) or with command switches (both - and --, just type command - [tab] / command -- [tab]). You will see the possible options displayed in your terminal. Bash is capable of doing that as well, but you will not see a description for each option and it does not work for short options (single dash). Furthermore, alt + h will route you to the man pages of command, without changing what you typed in the prompt so far (very useful!).

Completion for arguments is especially useful for zsh's cd -n (go back n entries in directory history), where you will see the directory for each an and can choose n appropriately.

Another thing, also related to tab complete, that I found out recently is [shift] + [tab]. This will give you a list of all commands that you can type in your current shell.

Monday, May 19, 2014

Trackpad Lenovo Thinkpad X1 Carbon w/Linux

I just got a new Thinkpad X1 Carbon and wiped Windows in order to install Arch Linux. The trackpad did not work at all out of the box. The only thing that worked was left click (I was not even able to move the mouse with the trackpad; mouse pointer worked, though).

With the help of http://who-t.blogspot.com.au/2014/03/xorg-synaptics-support-for-lenovo-t440.html and http://major.io/2012/12/28/handy-settings-for-the-touchpadclickpad-in-the-lenovo-x1-carbon/ I was able to generate an appropriate config file that allows for two-finger scrolling, as well as left and right click and mouse pointer navigation using the trackpad. The middle button (necessary for mouse pointer scrolling) is still not working. With two-finger scrolling, I do not need any middle button scrolling, though.

config file (90-synaptics-clickpad.conf):
Section "InputClass"
        # from http://who-t.blogspot.com.au/2014/03/xorg-synaptics-sup...
        Identifier                        "ClickPad"
        MatchDriver                       "synaptics"
        Option "HasSecondarySoftButtons"  "on"
        # SoftButtonAreas: right-lrtb middle-lrtb; 0 0 0 0 ...
        Option "SoftButtonAreas"          "50% 0 80% 0 0 0 0 0"
        Option "SecondarySoftButtonAreas" "60% 0 0 10% 40% 60% 0 10%"
        Option "AreaTopEdge"              "10%"
        Option "AreaBottomEdge"           "80%"

        # from http://major.io/2012/12/28/handy-settings-for-the-t...
        Option "TapButton1" "1"
        Option "TapButton2" "3"
        Option "TapButton3" "2"
 Option "VertTwoFingerScroll" "on"
 Option "HorizTwoFingerScroll" "on"
 Option "HorizHysteresis" "50"
 Option "VertHysteresis" "50"
EndSection

In order to install my 90-synaptics-clickpad.conf, just replace root_files (cf github repository direcotry structure) with the root directory "/".