2010-12-22 51 views
3

我正在寫在C的軟件++控制在我的MacBook Pro鍵盤背光它運行的Arch Linux作爲主要的操作系統和Debian的funzies。該程序作爲守護進程運行,並且現在可以打開鍵盤背光。下一步是關注計算機何時閒置(基於鼠標和鍵盤的互動)以及閒置一段時間後,關閉背光燈,並且一旦與鍵盤或鼠標進行的交互被註冊,再次打開背光。檢測是否基於鼠標和鍵盤交互計算機處於空閒狀態

我用Google搜索周圍,但我還沒有發現任何東西,我能得到工作檢查時,最後的鼠標和/或鍵盤交互登記。

任何想法,我如何能夠實現這一目標? 我相信在任何Linux操作系統的某些部分(可能是X?)中已經存在這樣的功能,所以使用它會更好,而不是從頭開始編寫。

的問候,...

+0

等待,Chris Bucholz來自cracked.com? – fingerprint211b 2010-12-22 12:00:49

+0

Naah,那不是我;) – chrisbuchholz 2010-12-22 17:42:31

回答

5

的擴展的xscreensaver在X服務器跟蹤鍵盤和鼠標閒置時間。如果您將源代碼下載到Psi,則其源代碼樹的文件號爲idle_x11.cpp,其中包含查詢空閒時間的邏輯。以此爲例。

的基本思想是利用XScreenSaverQueryInfo讀取屏幕保護狀態信息。

+0

感謝你 - 似乎是正確的事情 - 谷歌搜索顯示,這是最推薦的這種情況。關於Psi源文件和idle_X11.cpp - 我無法找到該文件。我只是克隆了他們的git repo,所以我想我正在尋找合適的地方。你能準確地告訴我它的來源在哪裏嗎? – chrisbuchholz 2010-12-22 17:42:01

1

對於獨立於X服務器的解決方案,您可以觀看任何鼠標和鍵盤的設備節點以查看事件並使用定時器。

/dev/input/event*節點提供了一個通用的接口 - 你會看其中任何一個對應於鼠標或鍵盤。您需要evdev內核模塊才能使用該模塊。

/dev/input/mice節點提供聚合所有鼠標事件的接口。但是,如果您爲/dev/input/event*節點編寫代碼,那麼也可以將其用於鼠標。

記住一些X服務器司機將抓住他們的設備節點,並從獲得的事件阻止所有其他應用程序,所以你可能不得不改變他們的選擇或使用基於X的界面,以及。

編輯:

如果你想使用/dev/input/event*設備節點,該/usr/include/linux/input.h頭文件包含了大部分的你需要了解的編程接口是什麼。從我的經驗來看,它非常簡單易用。在你的情況下更是如此,因爲你並不在意什麼鍵被按下 - 就是那個。

相關問題