32 lines
871 B
Lua
32 lines
871 B
Lua
-- Query EnvyControl once when this widget starts; GPU mode changes require a restart.
|
|
local command = "envycontrol --query"
|
|
local labels = {
|
|
integrated = "iGPU",
|
|
dedicated = "dGPU",
|
|
nvidia = "dGPU",
|
|
hybrid = "hybrid",
|
|
}
|
|
|
|
barWidget.setGlyph("device-desktop")
|
|
barWidget.setText("GPU…")
|
|
barWidget.setTooltip("Reading EnvyControl GPU mode…")
|
|
|
|
noctalia.runAsync(command, function(result)
|
|
if result.exitCode ~= 0 then
|
|
barWidget.setText("GPU?")
|
|
barWidget.setTooltip("Unable to read EnvyControl GPU mode")
|
|
return
|
|
end
|
|
|
|
local mode = string.lower(string.match(result.stdout, "([%a_-]+)") or "")
|
|
local label = labels[mode]
|
|
if label == nil then
|
|
barWidget.setText("GPU?")
|
|
barWidget.setTooltip("Unknown EnvyControl GPU mode: " .. mode)
|
|
return
|
|
end
|
|
|
|
barWidget.setText(label)
|
|
barWidget.setTooltip("EnvyControl GPU mode: " .. mode)
|
|
end)
|