Debian Squeeze – .xinitrc .xsession and .xprofile (X startup script)

Annoyed that tapping my trackpad was no longer being recognised as a mouse click after an upgrade to Debian Squeeze, I sought to have “synclient TapButton1=1” executed after login.

It would appear that both ~/.xinitrc and ~/.xsession are not used. Placing the above command in the file ~/.xprofile resolved the issue and I am now happily tapping my trackpad.
(tested when using GDM for logging in and Enlightenment for the Window Manager)

Search and replace in vi (or sed)

Search and replace in vi is both quick and simple:

X,Ys/search/replace/g

(where x – start line number, y – end line number. optional)

One very useful feature is the ability to use parts of the search regular expression within the replace string.

For example, where the selected lines contain values between 2000-2999 and all these values need to be increased by 1000 so that all the values are now in range 3000-3999:

X,Ys/2\([0-9][0-9][0-9]\)/3\1/g

The \1 includes the contents of the 1st regular expression delimited by ( ).

Multiple regular expressions can be reproduced in the replace string. For example, in the file containing:

Surname, Forename
surname, forename

The command:

1,2s/\([a-z]*\), \([a-z]*\)/\2 \1/ig

Results with:

Forename Surname
forename surname

\2 in the replacement string matches the 2nd regular expression in the search string, and likewise for \1 with the 1st regular expression.

fsck on encrypted (AES-256) Linux (ext3) partitions

As AES-256 partitions using either a block file device or a physical partition cannot be mounted automatically at boot, they will not be automatically checked.

To manually run a fsck:

  • Unmount the partition
  • Setup loop device: losetup -e aes-256 /dev/loop0 /dev/sdaX
    (use loop1, loop2 etc if the others are being used)
  • Enter encryption password

The losetup will not give an error if the password was incorrect. Therefore a test is needed to confirm that the password was entered correctly – mount then umount the loop device:

mkdir /tmp/test
mount /dev/loop0 /tmp/test
ls /tmp/test
umount /dev/loop0

If the device could not be mounted, run: losetup -d /dev/loop0 and try again.

Execute the fsck:
fsck.ext3 -f /dev/loop0

After running the fsck, delete the loop device: losetup -d /dev/loop0 and mount the partition like usual.