init
This commit is contained in:
49
packages/ags/bk/services/asusctl.js
Normal file
49
packages/ags/bk/services/asusctl.js
Normal file
@@ -0,0 +1,49 @@
|
||||
import { sh } from "../lib/utils.js"
|
||||
|
||||
class Asusctl extends Service {
|
||||
static {
|
||||
Service.register(this, {}, {
|
||||
"profile": ["string", "r"],
|
||||
"mode": ["string", "r"],
|
||||
})
|
||||
}
|
||||
|
||||
available = !!Utils.exec("which asusctl")
|
||||
#profile = "Balanced"
|
||||
#mode = "Hybrid"
|
||||
|
||||
async nextProfile() {
|
||||
await sh("asusctl profile -n")
|
||||
const profile = await sh("asusctl profile -p")
|
||||
const p = profile.split(" ")[3]
|
||||
this.#profile = p
|
||||
this.changed("profile")
|
||||
}
|
||||
|
||||
async setProfile(prof) {
|
||||
await sh(`asusctl profile --profile-set ${prof}`)
|
||||
this.#profile = prof
|
||||
this.changed("profile")
|
||||
}
|
||||
|
||||
async nextMode() {
|
||||
await sh(`supergfxctl -m ${this.#mode === "Hybrid" ? "Integrated" : "Hybrid"}`)
|
||||
this.#mode = await sh("supergfxctl -g")
|
||||
this.changed("profile")
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
|
||||
if (this.available) {
|
||||
sh("asusctl profile -p").then(p => this.#profile = p.split(" ")[3])
|
||||
sh("supergfxctl -g").then(m => this.#mode = m)
|
||||
}
|
||||
}
|
||||
|
||||
get profiles() { return ["Performance", "Balanced", "Quiet"] }
|
||||
get profile() { return this.#profile }
|
||||
get mode() { return this.#mode }
|
||||
}
|
||||
|
||||
export default new Asusctl()
|
||||
Reference in New Issue
Block a user