Я никогда не имел дело с этим в Linux. Однако это звучит очень похоже на то, что я видел в Windows.
По моему опыту, многие из этих типов устройств автоматически определяются операционной системой как устройство типа клавиатуры. Таким образом, любой ввод от читателя подается в тот же поток клавиатуры, который использует настоящая клавиатура. К тому моменту, когда это достигнет действительных программ, уже невозможно будет определить разницу между вводом данных с устройства чтения карт и тем, что пользователь просто очень быстро печатает.
Как следствие, вы получаете поведение, описанное в исходном вопросе: ввод устройства чтения карт идет только туда, куда поступает нормальный ввод с клавиатуры - в программу, находящуюся в фокусе.
Лучшим вариантом будет изучить веб-сайт производителя (или связаться с ним иным образом) и выяснить, предоставляют ли они какой-либо драйвер, позволяющий программе перехватывать этот ввод полностью отдельно от потока клавиатуры.
Если производитель не предоставляет такую вещь, возможно, некоторые сторонние производители. Но, к сожалению, я никогда не исследовал это, поэтому я не знаю, где вам сказать, чтобы даже начать искать.