Auto apply a keymap using udev when a Typematrix is plugged
Switching keymap
As some of you might know, I am now using a Typematrix 2030 on a daily basis. When I switched to this great keyboard I also adopted a new layout on it : Colemak.
However, to be able to pair with others not using a Colemak mapping, I did not set the default mapping to Colemak but I instead use an udev rule to set the input method to Colemak only for the Typematrix.
Write a keymap switch script
            Thanks to
            @BitardMichael tips
            and existing scripts I ended up with the following script saved in
            /usr/local/bin/set_typematrix_colemak_mapping
          
            One of the tricky part was having a way of executing the script only
            when the keyboard is ready, without blocking udev’s job (or the
            keyboard is not yet visible by the X system). The workaround I found
            was scheduling the execution of the job with the simple
            at command.
          
Tell udev to run the script on keyboard detection
            The process is really easy, all you need to do is to add the
            following to a new file :
            /lib/udev/rules.d/85-typematrix.rules
          
Adapting it to your use case
            If you are using another keyboard than a Typematrix you will need to
            adapt the udev rule with the proper Vendor / Product IDs (you can
            grab them with lsusb). For the
            xinput part, you will need to adjust the grep to match
            your hardware.
          
Of course the same goes for your layout : colemak / dvorak / bépo …