Files
dotfiles/.local/share/noctalia/plugins/system-status/gpu-mode.luau
T

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)