59 lines
1.9 KiB
QML
59 lines
1.9 KiB
QML
import Quickshell
|
|
import Quickshell.Io
|
|
import QtQuick
|
|
|
|
import qs.config
|
|
import qs.services
|
|
|
|
ShellRoot {
|
|
IpcHandler {
|
|
target: "keybinds-test"
|
|
|
|
function rebind(current: string, next: string): bool {
|
|
return Keybinds.rebind(current, next);
|
|
}
|
|
|
|
function resetBind(current: string): bool { return Keybinds.resetBind(current); }
|
|
function resetAll(): void { Keybinds.resetAll(); }
|
|
|
|
function seedResetCollision(shipped: string, current: string, occupantShipped: string): void {
|
|
const overrides = {};
|
|
overrides[shipped] = current;
|
|
overrides[occupantShipped] = shipped;
|
|
DesktopPreferences.set("keybindOverrides", overrides);
|
|
}
|
|
|
|
function chordFor(description: string): string {
|
|
const found = Keybinds.binds.find(bind => bind.description === description);
|
|
return found ? found.luaChord : "";
|
|
}
|
|
|
|
function overrideState(): string {
|
|
return JSON.stringify({
|
|
overrides: Keybinds.overrides,
|
|
count: Object.keys(Keybinds.overrides).length,
|
|
lastError: Keybinds.lastError
|
|
});
|
|
}
|
|
|
|
function status(): string {
|
|
const grouped = Keybinds.grouped();
|
|
let groupedCount = 0;
|
|
for (const group of grouped)
|
|
groupedCount += group.binds.length;
|
|
|
|
const superT = Keybinds.binds.find(bind => bind.description === "Terminal");
|
|
|
|
return JSON.stringify({
|
|
loaded: Keybinds.loaded,
|
|
count: Keybinds.binds.length,
|
|
groupedCount: groupedCount,
|
|
groups: grouped.map(group => group.name),
|
|
sample: superT ? superT.chord : "",
|
|
emptyDescriptions: Keybinds.binds.filter(bind => !bind.description).length,
|
|
lastError: Keybinds.lastError
|
|
});
|
|
}
|
|
}
|
|
}
|