ভাল প্রশ্ন. খুঁজে বের কর!
"এর জন্য নিষ্ক্রিয় থাকাকালীন" বিকল্পটি তদন্ত করে শুরু করে ,
<property ...>Suspend when inactive for</property> ...
<object ... id="combobox_sleep_ac">
আমরা শিখতে পারি যে এটি একটি জিএসটিটিং কী সেট করেsleep-inactive-ac-timeout
:
widget = GTK_WIDGET (gtk_builder_get_object (..., "combobox_sleep_ac")); ...
g_object_set_data (G_OBJECT(widget), "_gsettings_key", "sleep-inactive-ac-timeout");
ডকুমেন্টেশন এই কী-এর জন্য একটি সংক্ষিপ্ত বিবরণ প্রদান করে:
এসি পাওয়ারে থাকা কম্পিউটারের ঘুমের আগে সেকেন্ডে কত সময় নিষ্ক্রিয় হওয়া দরকার। 0 এর মান কখনই নয়।
তবে "নিষ্ক্রিয়" অর্থ কী তা এখনও ব্যাখ্যা করে না।
অনুসন্ধান করা sleep-inactive-ac-timeout
আমাদের জিনোম সেটিংস ডেমনে নিয়ে যায় ,
timeout_sleep = g_settings_get_int (..., "sleep-inactive-ac-timeout");
যা পর্যায়ক্রমে ডাকা জিনোম সেশনের একটি সম্পত্তি পরীক্ষা করেPresence.status
:
result = g_dbus_proxy_get_cached_property (...->session_presence_proxy, "status");
যদি এটি স্থিতিটি নিষ্ক্রিয় থাকে তবে এটি সিস্টেমে ঘুমিয়ে পড়ে :
idle_set_mode (..., GSD_POWER_IDLE_MODE_SLEEP);
সুতরাং আমাদের জিনোম সেশনটি সিস্টেমটি "অলস" কিনা তা কীভাবে সিদ্ধান্ত নেয় তা শিখতে হবে।
গনোম সেশন এর মান আপডেট করে যেখান থেকে পিছনে অনুসরণ করা Presence.status
,
gsm_presence_set_status (presence, GSM_PRESENCE_STATUS_IDLE, ...);
আমরা দেখতে পাচ্ছি যে এটি Xorg থেকে কাউন্টারটি ব্যবহার করে IDLETIME
:
if (... && strcmp (counters[i].name, "IDLETIME") == 0) {
...->counter = counters[i].counter;
IDLETIME
কাউন্টার আচরণ মধ্যে সংক্ষিপ্ত করা হয় ব্লগ পোস্টে গনোম পাওয়ার ম্যানেজার লেখক দ্বারা:
জিনোম-পাওয়ার-ম্যানেজার Xorg এর ভিতরে একটি আইডিলেটাইম নামে একটি কাউন্টার ব্যবহার করে। এই কাউন্টারটি তখনই বাড়ানো হয় যখন ব্যবহারকারী মাউস না সরায় বা কিছু কীগুলিতে ক্লিক করে। ব্যবহারকারী যখন কিছু ক্লিক করেন তখন IDLECOUNTER পুনরায় সেট করা হয়।
এটি আমাদের জানায় যে উবুন্টু শেষ কী-স্ট্রোক বা মাউস গতির পরে কে কত সময় পার করেছে তা পরিমাপ করে নিষ্ক্রিয়তা নির্ধারণ করে। সিপিইউ ব্যবহার এবং নেটওয়ার্ক ক্রিয়াকলাপটি এতে ফ্যাক্টর করে না।
wake up calls
।