big restruct
This commit is contained in:
54
pkgs/bibata-hyprcursor/configure.py
Normal file
54
pkgs/bibata-hyprcursor/configure.py
Normal file
@@ -0,0 +1,54 @@
|
||||
# stolen from https://github.com/diniamo/niqspkgs/blob/544c3b2c69fd1b5ab3407e7b35c76060801a8bcf/pkgs/bibata-hyprcursor/default.nix
|
||||
|
||||
from sys import argv
|
||||
import os
|
||||
from os import path
|
||||
from pathlib import Path
|
||||
import tomli
|
||||
import tomli_w
|
||||
|
||||
|
||||
def fallback_value(config, cursor, field):
|
||||
return (config.get(cursor, None) or {}).get(field, None) or (
|
||||
config["fallback_settings"].get(field, None)
|
||||
)
|
||||
|
||||
|
||||
def filter_none_dict(**kwargs):
|
||||
return {k: v for k, v in kwargs.items() if v is not None}
|
||||
|
||||
|
||||
def construct_meta(config, name, sizes):
|
||||
meta = filter_none_dict(
|
||||
define_size=";".join(sizes),
|
||||
define_override=(
|
||||
None
|
||||
if (overrides := fallback_value(config, name, "x11_symlinks")) is None
|
||||
else ";".join(overrides)
|
||||
),
|
||||
hotspot_x=fallback_value(config, name, "x_hotspot") / 256,
|
||||
hotspot_y=fallback_value(config, name, "y_hotspot") / 256,
|
||||
)
|
||||
|
||||
with open(f"{name}/meta.toml", "wb") as file:
|
||||
tomli_w.dump({"General": meta}, file)
|
||||
|
||||
|
||||
with open(argv[1], "rb") as file:
|
||||
config = tomli.load(file)["cursors"]
|
||||
|
||||
os.chdir(argv[2])
|
||||
|
||||
for cursor in os.listdir("."):
|
||||
if path.isfile(cursor):
|
||||
name = Path(cursor).stem
|
||||
|
||||
os.mkdir(name)
|
||||
os.rename(cursor, f"{name}/{cursor}")
|
||||
|
||||
construct_meta(config, name, [f"0,{cursor}"])
|
||||
else:
|
||||
delay = fallback_value(config, cursor, "x11_delay")
|
||||
construct_meta(
|
||||
config, cursor, map(lambda c: f"0,{c},{delay}", os.listdir(cursor))
|
||||
)
|
||||
Reference in New Issue
Block a user