first version with basic fan monitor
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
// Example #1
|
||||
|
||||
const {St, Clutter, GLib} = imports.gi
|
||||
const Main = imports.ui.main
|
||||
const Mainloop = imports.mainloop
|
||||
const ByteArray = imports.byteArray
|
||||
|
||||
let panelButton;
|
||||
|
||||
|
||||
const statuses = ["auto","fast","silent"]
|
||||
|
||||
function init () {
|
||||
// Create a Button with "Hello World" text
|
||||
panelButton = new St.Bin({
|
||||
style_class : "panel-button",
|
||||
});
|
||||
|
||||
//Gio.monitor doesn't trigger. maybe it considier throttle_thermal_policy as a device ?
|
||||
Mainloop.timeout_add(300, function () {
|
||||
update()
|
||||
return true
|
||||
});
|
||||
update()
|
||||
}
|
||||
|
||||
function readFile() {
|
||||
const array = GLib.file_get_contents("/sys/devices/platform/faustus/throttle_thermal_policy")[1]
|
||||
const status = parseInt(ByteArray.toString(array))
|
||||
GLib.free(array)
|
||||
return status
|
||||
}
|
||||
|
||||
function update() {
|
||||
const status = readFile();
|
||||
let panelButtonText = new St.Label({
|
||||
text : statuses[status],
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
panelButton.set_child(panelButtonText);
|
||||
}
|
||||
|
||||
function enable () {
|
||||
// Add the button to the panel
|
||||
Main.panel._rightBox.insert_child_at_index(panelButton, 0);
|
||||
}
|
||||
|
||||
function disable () {
|
||||
// Remove the added button from panel
|
||||
Main.panel._rightBox.remove_child(panelButton);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user