added option to change path to keybinds

This commit is contained in:
Myryk
2024-06-10 23:27:50 +02:00
parent b6e34a4ab1
commit 287216dac2
3 changed files with 23 additions and 6 deletions
@@ -56,6 +56,9 @@ let configOptions = {
'default': "auto", 'default': "auto",
}, },
}, },
'configPaths': {
'keybinds': "",
},
'gaming': { 'gaming': {
'crosshair': { 'crosshair': {
'size': 20, 'size': 20,
+15 -6
View File
@@ -5,13 +5,22 @@ import Widget from "resource:///com/github/Aylur/ags/widget.js";
import { IconTabContainer } from "../.commonwidgets/tabcontainer.js"; import { IconTabContainer } from "../.commonwidgets/tabcontainer.js";
const { Box, Label, Scrollable } = Widget; const { Box, Label, Scrollable } = Widget;
const HYPRLAND_KEYBIND_CONFIG_FILE = `${GLib.get_user_config_dir()}/hypr/hyprland/keybinds.conf`; const HYPRLAND_KEYBIND_CONFIG_FILE = userOptions.configPaths.keybinds ?
userOptions.configPaths.keybinds : `${GLib.get_user_config_dir()}/hypr/hyprland/keybinds.conf`;
const KEYBIND_SECTIONS_PER_PAGE = 3; const KEYBIND_SECTIONS_PER_PAGE = 3;
const keybindList = JSON.parse( const keybindListfunc = () => {
Utils.exec( let data = Utils.exec(`${App.configDir}/scripts/hyprland/get_keybinds.py --path ${HYPRLAND_KEYBIND_CONFIG_FILE}`);
`${App.configDir}/scripts/hyprland/get_keybinds.py --path ${HYPRLAND_KEYBIND_CONFIG_FILE}`, if (data == "\"error\"") {
), Utils.timeout(2000, () => Utils.execAsync(['notify-send',
); 'Update path to keybinds',
'Keybinds hyprland config file not found. Check your user options.',
'-a', 'ags',
]).catch(print))
return { children: [] };
}
return JSON.parse(data);
};
const keybindList = keybindListfunc();
const keySubstitutions = { const keySubstitutions = {
"Super": "󰖳", "Super": "󰖳",
@@ -1,6 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import argparse import argparse
import re import re
import os
from os.path import expandvars as os_expandvars from os.path import expandvars as os_expandvars
from typing import Dict, List from typing import Dict, List
@@ -34,6 +35,8 @@ class Section(dict):
def read_content(path: str) -> str: def read_content(path: str) -> str:
if (not os.access(os_expandvars(path), os.R_OK)):
return ("error")
with open(os_expandvars(path), "r") as file: with open(os_expandvars(path), "r") as file:
return file.read() return file.read()
@@ -201,6 +204,8 @@ def get_binds_recursive(current_content, scope):
def parse_keys(path: str) -> Dict[str, List[KeyBinding]]: def parse_keys(path: str) -> Dict[str, List[KeyBinding]]:
global content_lines global content_lines
content_lines = read_content(path).splitlines() content_lines = read_content(path).splitlines()
if content_lines[0] == "error":
return "error"
return get_binds_recursive(Section([], [], ""), 0) return get_binds_recursive(Section([], [], ""), 0)