Почему бы в uname вместо
GNU/Linux
не писать в формате: key=value[,]
и по-дефолту использовать $trademark(version)/$envir1(version)..$envirN(version)/$kernel(version)/$DE(version) (как сокращенный вариант trademark=$trademark,..,DE=$de)
типа так:
AndroidBSD\Android,OpenBSD\Linux\KDE4.8
и встроить в JavaScript стандартную функцию, которая может это говорить:
if (-1!=navigator.appVersion.indexOf("Linux")) {
if ("KDE"==navigator.linuxName.DE.name && 4.0<=navigator.linuxName.DE.version) {
//ссылка на скачивание Qt4-версии приложения
}
}