hw-monitor هو تطبيق سطح مكتب Linux مصمم لمراقبة جوانب مختلفة من أجهزة الكمبيوتر الخاص بك. تم تصميمه باستخدام إطار عمل Tauri، ويتميز بواجهة خلفية Rust وواجهة أمامية لـ TypeScript باستخدام مكتبة React.
يغطي البرنامج أربعة أجزاء رئيسية للمراقبة:
يوفر قسم العمليات معلومات مفصلة حول كل عملية يتم تشغيلها على جهاز Linux الخاص بك. يمكن فرز العمليات لتحسين إمكانية القراءة ومراقبة الاستخدام، أو يمكنك البحث عنها باستخدام شريط البحث. المعلومات التي يتم رصدها تشمل:
تعرض صفحة الأداء بشكل أساسي رسومًا بيانية لاستخدام مكونات الأجهزة الرئيسية، مثل وحدة المعالجة المركزية وذاكرة الوصول العشوائي ووحدة معالجة الرسومات وبطاقات الشبكة. بالإضافة إلى الرسوم البيانية، فهو يوفر معلومات تفصيلية عن كل مكون من مكونات الأجهزة، بما في ذلك سرعة وحدة المعالجة المركزية وعدد النوى والخيوط والمقابس ووقت التشغيل وذاكرة الوصول العشوائي ومعلومات المبادلة والمزيد، كما هو موضح في الصور أدناه:
تعرض صفحة المستشعرات جميع المستشعرات التي اكتشفها البرنامج. بالنسبة لأجهزة الكمبيوتر المحمولة، فهي تحتوي على صندوق بطارية يحتوي على معلومات شاملة. بالإضافة إلى ذلك، فإنه يظهر جميع أجهزة استشعار درجة الحرارة المكتشفة مع شريط الحرارة، كما هو موضح أدناه:
تعرض صفحة الأقراص الأقراص والأقسام التي اكتشفتها نواة Linux، على غرار مخرجات lsblk
. بالإضافة إلى ذلك، فإنه يعرض استخدام الأقسام المثبتة، كما هو موضح أدناه:
يتضمن التطبيق الآن دعمًا شاملاً متعدد اللغات، مما يسمح للمستخدمين بالاختيار من بين ثماني لغات مختلفة: العربية والألمانية والإنجليزية والإسبانية والفرنسية والبولندية والروسية والأوكرانية.
يحتوي البرنامج أيضًا على ملف تكوين يتم إنشاؤه عند بدء التشغيل داخل ~/.config/hw-monitor
تحت الاسم hw-monitor.conf
. يمكن إدارة هذا الملف من البرنامج عبر واجهة المستخدم الرسومية، كما هو موضح أدناه، أو عن طريق تحرير الملف باستخدام محرر النصوص. يحتوي ملف التكوين على مجموعة من قيم الألوان وإعدادات أخرى مثل أوقات التحديث. يقوم البرنامج بتحميل التكوين الافتراضي الخاص به، ولكن يمكن تحرير جميع ألوان المكونات والأزرار والأشكال لتحقيق أقصى قدر من التخصيص والتجربة التي يحركها المستخدم.
إلى جانب التكوين الافتراضي، هناك سمة جميلة أخرى تحتوي على لوحة ألوان مشابهة لـ Catpuccin.
# Catpuccin Theme
# #################
# ## processes ###
# ################
processes_update_time=2000
processes_body_background_color= # 1E1E2E
processes_body_color= # CDD6F4
processes_head_background_color= # 313244
processes_head_color= # CDD6F4
processes_table_values=user,pid,ppid,name,state,cpu_usage,memory
# ###################
# ## performance ###
# ##################
performance_update_time=1000
performance_sidebar_background_color= # 313244
performance_sidebar_color= # CDD6F4
performance_sidebar_selected_color= # 74C7EC
performance_background_color= # 1E1E2E
performance_title_color= # F38BA8
performance_label_color= # A6E3A1
performance_value_color= # 89B4FA
performance_graph_color= # A6E3A1
performance_sec_graph_color= # FAB387
# ###############
# ## sensors ###
# ##############
sensors_update_time=5000
sensors_background_color= # 1E1E2E
sensors_foreground_color= # CDD6F4
sensors_boxes_background_color= # 313244
sensors_boxes_foreground_color= # A6ADC8
sensors_battery_background_color= # 7dcfff
sensors_battery_frame_color= # 45475A
sensors_boxes_title_foreground_color= # BAC2DE
# #############
# ## disks ###
# ############
disks_update_time=5000
disks_background_color= # 1E1E2E
disks_boxes_background_color= # 313244
disks_name_foreground_color= # 89B4FA
disks_size_foreground_color= # 89DCEB
disks_partition_background_color= # 181825
disks_partition_usage_background_color= # 3b3b52
disks_partition_name_foreground_color= # A6ADC8
disks_partition_type_foreground_color= # A6ADC8
disks_partition_usage_foreground_color= # A6E3A1
# ##############
# ## navbar ###
# #############
navbar_background_color= # 1E1E2E
navbar_buttons_background_color= # 313244
navbar_buttons_foreground_color= # CDD6F4
navbar_search_background_color= # 313244
navbar_search_foreground_color= # CDD6F4
# ###############
# ## heatbar ###
# ##############
heatbar_color_one= # 7aa2f7
heatbar_color_two= # 7dcfff
heatbar_color_three= # 9ece6a
heatbar_color_four= # ff9e64
heatbar_color_five= # f7768e
heatbar_color_six= # e0af68
heatbar_color_seven= # bb9af7
heatbar_color_eight= # 7aa2f7
heatbar_color_nine= # 2ac3de
heatbar_color_ten= # a9b1d6
language=en
# #################
# ## processes ###
# ################
processes_update_time=2000
processes_body_background_color= # 282828
processes_body_color= # ebdbb2
processes_head_background_color= # 3c3836
processes_head_color= # ebdbb2
processes_table_values=user,pid,ppid,name,state,cpu_usage,memory
# ###################
# ## performance ###
# ##################
performance_update_time=1000
performance_sidebar_background_color= # 3c3836
performance_sidebar_color= # ebdbb2
performance_sidebar_selected_color= # 458588
performance_background_color= # 282828
performance_title_color= # cc241d
performance_label_color= # 98971a
performance_value_color= # 458588
performance_graph_color= # 98971a
performance_sec_graph_color= # d65d0e
# ###############
# ## sensors ###
# ##############
sensors_update_time=5000
sensors_background_color= # 282828
sensors_foreground_color= # ebdbb2
sensors_boxes_background_color= # 3c3836
sensors_boxes_foreground_color= # 928374
sensors_battery_background_color= # 689d6a
sensors_battery_frame_color= # 45475A
sensors_boxes_title_foreground_color= # 928374
# #############
# ## disks ###
# ############
disks_update_time=5000
disks_background_color= # 282828
disks_boxes_background_color= # 3c3836
disks_name_foreground_color= # 458588
disks_size_foreground_color= # 689d6a
disks_partition_background_color= # 1d2021
disks_partition_usage_background_color= # 504945
disks_partition_name_foreground_color= # 928374
disks_partition_type_foreground_color= # 928374
disks_partition_usage_foreground_color= # 98971a
# ##############
# ## navbar ###
# #############
navbar_background_color= # 282828
navbar_buttons_background_color= # 3c3836
navbar_buttons_foreground_color= # ebdbb2
navbar_search_background_color= # 3c3836
navbar_search_foreground_color= # ebdbb2
# ###############
# ## heatbar ###
# ##############
heatbar_color_one= # cc241d
heatbar_color_two= # d65d0e
heatbar_color_three= # d79921
heatbar_color_four= # 689d6a
heatbar_color_five= # 458588
heatbar_color_six= # b16286
heatbar_color_seven= # 689d6a
heatbar_color_eight= # 458588
heatbar_color_nine= # 98971a
heatbar_color_ten= # 928374
language=en
يمكنك تنزيل التطبيق من صفحة الإصدار أو إنشائه بنفسك باتباع الإرشادات الموجودة في المستودع.
أثناء تشغيل التطبيق، قد تواجه خطأً متعلقًا بالمكتبات المشتركة المفقودة، مثل:
error while loading shared libraries: libjavascriptcoregtk-4.0.so-18
لحل هذه المشكلة، قم بتثبيت الحزمة المناسبة لتوزيع Linux الخاص بك:
sudo pacman -S webkit2gtk
sudo apt install libwebkit2gtk-4.0-dev
sudo dnf install webkit2gtk4.0-devel
sudo emerge --ask net-libs/webkit-gtk:4
sudo xbps-install -S webkit2gtk-devel
إذا كنت تستخدم وحدة معالجة الرسومات Nvidia وواجهت أخطاء مثل:
src/nv_gbm.c:300: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 800x600: Permission denied
لإصلاح ذلك، أضف متغيرات البيئة التالية إلى ملف تكوين Shell (على سبيل المثال، .bashrc، .zshrc):
export WEBKIT_DISABLE_DMABUF_RENDERER=1
export LIBGL_ALWAYS_SOFTWARE=1
export QT_XCB_FORCE_SOFTWARE_OPENGL=1
لقشرة السمكة
set -Ux WEBKIT_DISABLE_DMABUF_RENDERER 1
set -Ux LIBGL_ALWAYS_SOFTWARE 1
set -Ux QT_XCB_FORCE_SOFTWARE_OPENGL 1
بعد إضافة هذه السطور، احفظ الملف وقم بتشغيل المصدر ~/.bashrc (أو المصدر ~/.zshrc اعتمادًا على الصدفة الخاصة بك) لتطبيق التغييرات.
اتبع هذه الخطوات لإنشاء التطبيق محليًا:
استنساخ المستودع :
git clone https://github.com/husseinhareb/hw-monitor
تثبيت التبعيات :
cd hw-monitor/
npm install
تشغيل التطبيق :
npm run tauri dev
بناء التطبيق :
npm run tauri build
المساهمات هي موضع ترحيب! إذا كنت ترغب في المساهمة:
Fork the repository.
Create your branch: git checkout -b feature/YourFeature.
Commit your changes: git commit -m 'Add some feature'.
Push to the branch: git push origin feature/YourFeature.
Submit a pull request.
هذا المشروع مرخص بموجب ترخيص MIT.