diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper
index afccd20d..5a016d2c 100755
--- a/data_from_portwine/scripts/functions_helper
+++ b/data_from_portwine/scripts/functions_helper
@@ -1896,47 +1896,40 @@ pw_port_update () {
     return 0
 }
 
-pw_skip_update () {
-    if command -v gamescope &>/dev/null ; then
-        if ! timeout 3 gamescope --help &> "${PW_TMPFS_PATH}/gamescope.tmp" ; then
-            print_error "gamescope - broken!"
-        fi
-    else
-        print_warning "gamescope - not found!"
-    fi
+pw_check_command () {
+    local S_CMD="${1//" "*/}"
+    local F_CMD="$1"
 
-    if command -v vulkaninfo &>/dev/null ; then
-        if ! timeout 3 vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp" ; then
-            print_error "vulkaninfo - broken!"
+    [[ -z "$TIMEOUT_CMD" ]] && TIMEOUT_CMD="3"
+    
+    if command -v "$S_CMD" &>/dev/null ; then
+        if ! timeout "$TIMEOUT_CMD" $F_CMD &> "${PW_TMPFS_PATH}/$S_CMD.tmp" ; then
+            print_error "$S_CMD - broken!"
+            unset TIMEOUT_CMD
+            return 1
+        else
+            print_info "$S_CMD - found"
+            unset TIMEOUT_CMD
+            return 0
         fi
     else
+        print_warning "$S_CMD - not found!"
+        unset TIMEOUT_CMD
+        return 1
+    fi
+}
+export -f pw_check_command
+
+pw_skip_update () {
+    for f_cmd in "gamescope --help" "lspci -k" "xrandr --current" "locale -a"
+    do pw_check_command "$f_cmd"
+    done
+
+    TIMEOUT_CMD="5"
+    if ! pw_check_command vulkaninfo ; then
         print_warning "use portable vulkaninfo"
         "$PW_PLUGINS_PATH"/portable/bin/x86_64-linux-gnu-vulkaninfo &> "${PW_TMPFS_PATH}/vulkaninfo.tmp"
     fi
-
-    if command -v lspci &>/dev/null ; then
-        if ! timeout 3 lspci -k &> "${PW_TMPFS_PATH}/lspci.tmp" ; then
-            print_error "lspci - broken!"
-        fi
-    else
-        print_warning "lspci - not found!"
-    fi
-
-    if command -v xrandr &>/dev/null ; then
-        if ! timeout 3 xrandr --current &> "${PW_TMPFS_PATH}/xrandr.tmp" ; then
-            print_error "xrandr - broken!"
-        fi
-    else
-        print_warning "xrandr - not found!"
-    fi
-
-    if command -v locale &>/dev/null ; then
-        if ! timeout 3 locale -a &> "${PW_TMPFS_PATH}/locale.tmp" ; then
-            print_error "locale - broken!"
-        fi
-    else
-        print_warning "locale - not found!"
-    fi
 }
 
 pw_skip_update_new () {