* Create declarative module scaffolding * Added ram module (WIP) * Updates to options, styling and more. * Added function for styling custom modules. * Added utility functions and cleaned up code * Type and fn name updates. * Update module utils to handle absent values. * Added icon color in style2 that was missing. * Linted utils.ts * Add CPU module and update RAM module to use /proc/meminfo. * Added disk storage module. * Consolidate code * Added netstat module and removed elements from systray default ignore list. * Added keyboard layout module. * Fix hook types and move module to customModules directory * Added updates modules. * Spacing updates * Added weather module. * Added power menu and power module in bar. Increased update default interval to 6 ours. * Updated styling of bar buttons, made power menu label toggleable, etc. * Consolidate code and add dynamic tooltips based on data being used. * Make default custom mogules matugen compatible * Update base theme * Fix custom module background coloring * Remove testing opacity. * Update themes to account for new modules * Update nix stuff for libgtop (Need someone to test this) * Update nix * Update fractions to multiplications * Move styling in style directory * Implement a polling framework for variables that can dynamically adjust polling intervals. * Netstat module updates when interface name is changed. * Readme update
22 lines
651 B
TypeScript
22 lines
651 B
TypeScript
import { HyprctlDeviceLayout, HyprctlKeyboard, KbLabelType } from "lib/types/customModules/kbLayout";
|
|
import { layoutMap } from "./layouts";
|
|
|
|
export const getKeyboardLayout = (obj: string, format: KbLabelType) => {
|
|
let hyprctlDevices: HyprctlDeviceLayout = JSON.parse(obj);
|
|
let keyboards = hyprctlDevices['keyboards'];
|
|
|
|
if (keyboards.length === 0) {
|
|
return "No KB!"
|
|
}
|
|
|
|
let mainKb = keyboards.find((kb: HyprctlKeyboard) => kb.main);
|
|
|
|
if (!mainKb) {
|
|
mainKb = keyboards[keyboards.length - 1];
|
|
}
|
|
|
|
let layout = mainKb['active_keymap'];
|
|
|
|
return format === "code" ? layoutMap[layout] || layout : layout;
|
|
}
|