ssh config: include multiple files

it is useful to split up the ssh config file.

do as follows

  1. create config folder $ mkdir ~/.ssh/config.d
  2. create multiple config files in that folder (I group different hosts, and use a global options file)
    1. $ touch ~/.ssh/config.d/group1
    2. $ touch ~/.ssh/config.d/group2
    3. $ touch ~/.ssh/config.d/group3
    4. $ touch ~/.ssh/config.d/options
  3. include the whole directory by using the standard config file
    $ cat ~/.ssh/config
    Include config.d/*



arch: disable linux error beep

this beep comes up in terminals and for each error in matlab. just annoying…. fix this by disabling the right kernel module.

    1. append to /etc/modprobe.d/blacklist.conf:
      blacklist pcspkr
    2. include in /etc/mkinitcpio.conf:
    3. Then rebuild the initramfs and reboot:
      $ mkinitcpio -p linux
      $ reboot

arch+matlab: setup opengl rendering

hardware accelerated rendering needs enabling.

  1. check out the arch-wiki page.
  2. i needed to install the intel graphics driver. explained here.
  3. to set the opengl paths (as explained in the wiki), i needed to modify the .desktop file
    1. for me, the path was: /usr/share/applications/matlab.desktop
    2. changed execution line
      1. before: Exec=matlab -desktop -nosplash
      2. after: Exec=/my/personal/binary/path/matlab_startWithEnvVars
    3. created seperate start script
      1. path: (same as given to Exec command above)
      2. content:
        export LD_PRELOAD=/usr/lib/
        export LD_LIBRARY_PATH=/usr/lib/xorg/modules/dri/
        exec /usr/local/bin/matlab -desktop -nosplash "$@"
      3. make file executable

thunderbird: export message filters

one can export/import/backup the message filters but it’s more involved than it should be.

the message filters are in single files within your home directory. their path is


For example


Install Firefox Nightly binaries from Mozilla

Installation process is similar to the one for Thunderbird Daily (see this blog post).


  • binary download link:
    # wget "" -O firefox-nightly.tar.bz2
  • icon link:
    # wget -O ~/.icons/Mozilla-Firefox-Nightly-256.png
  • # cat ~/.local/share/applications/firefox-nightly.desktop
    [Desktop Entry]
    Name=Firefox Nightly
    GenericName=Web Browser
    Comment=Browse the Web
    Exec=firefox-nightly %u
    [Desktop Action new-window]
    Name=New Window
    Exec=firefox-nightly --new-window %u
    [Desktop Action new-private-window]
    Name=New Private Window
    Exec=firefox-nightly --private-window %u

Install Thunderbird Daily binaries from mozilla

Thunderbird Daily can be installed in most distros directly from their repos but more often than not it is outdated (they usually disable automatic updates). this can be circumvented by installing the binary directly from mozilla. the automatic update will then be enabled.

download the latest binary from and verify the download (checksum and gpg – for gpg you need mozilla’s key)

as of the time of writing the following script downloaded the binary and verified it:

$ mkdir ~/{bin,software}
$ cd ~/software
$ wget{tar.bz2,checksums,checksums.asc}
$ tar xvf thunderbird-57.0a1.en-US.linux-x86_64.tar.bz2
$ mv thunderbird thunderbird-daily

the verification process is not as smooth as it could be. this will do a sha512 checksum test

$ grep thunderbird-57.0a1.en-US.linux-x86_64.tar.bz2 thunderbird-57.0a1.en-US.linux-x86_64.checksums | grep sha512 - | awk '{print $1, $4}' - | sha512sum -c -

import pgp key from mozilla. then do signature check

$ gpg2 --verify thunderbird-57.0a1.en-US.linux-x86_64.checksums{.asc,} 

Update script in total



# download files
wget -q${RELEASE}.en-US.linux-x86_64.{tar.bz2,checksums,checksums.asc}

# check sha512 hash
grep thunderbird-${RELEASE}.en-US.linux-x86_64.{tar.bz2,checksums} | grep sha512 - | awk '{print $1, $4}' - | sha512sum -c -

# check gpg signature
gpg2 --verify thunderbird-${RELEASE}.en-US.linux-x86_64.checksums{.asc,} 

# extract, move, cleanup
tar jxf thunderbird-${RELEASE}.en-US.linux-x86_64.tar.bz2
mv thunderbird-daily{,OLD}
mv thunderbird{,-daily}
rm thunderbird-${RELEASE}.en-US.linux-x86_64.{tar.bz2,checksums.asc,checksums}

Now, create a file link:

$ ln -s $HOME/bin/thunderbird-daily $HOME/software/thunderbird-daily/thunderbird-bin

download the daily icon (no direct download link available):

create a desktop entry (include your home folder path!):

$ cat $HOME/.local/share/applications/thunderbird-daily.desktop
[Desktop Entry]
Name=Thunderbird Daily
Comment=Send and receive mails
GenericName=Mail Client
Exec=/home/paul/bin/thunderbird-daily %u

[Desktop Action ComposeMessage]
Name=Write new message
Exec=/home/paul/bin/thunderbird-daily -compose

[Desktop Action OpenAddressBook]
Name=Open address book
Exec=/home/paul/bin/thunderbird-daily -addressbook

git: find out which files are ignored and why

i had a very large global ignore list (tex/vim/linux/python specific stuff) and in this one repo git didnt add one specific folder. as it turned out the global ignore list blocked it.

to figure out which files are ignored:

$ cd <git-folder>
$ git ls-files --others -i --exclude-standard

and to figure out why one specific folder/file is ignored issue:

$ git check-ignore <path>