751 current 2024-06-16 00:07:08 24.11.20240615.24b048f 6.9.3-zen1 *
This commit is contained in:
parent
6bb2d414f0
commit
ab8fe0cb49
2 changed files with 162 additions and 0 deletions
70
catpuccin.omp.json
Normal file
70
catpuccin.omp.json
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
{
|
||||
"palette": {
|
||||
"os": "#ACB0BE",
|
||||
"pink": "#F5BDE6",
|
||||
"lavender": "#B7BDF8",
|
||||
"blue": "#8AADF4",
|
||||
"wight": "#FFFFFF",
|
||||
"text": "#494D64"
|
||||
},
|
||||
"blocks": [
|
||||
{
|
||||
"alignment": "left",
|
||||
"segments": [
|
||||
{
|
||||
"background": "p:blue",
|
||||
"foreground": "p:wight",
|
||||
"powerline_symbol": "\ue0b4",
|
||||
"leading_diamond": "\ue0b6",
|
||||
"style": "diamond",
|
||||
"template": "{{.Icon}} ",
|
||||
"type": "os"
|
||||
},
|
||||
{
|
||||
"background": "p:blue",
|
||||
"foreground": "p:text",
|
||||
"powerline_symbol": "\ue0b4",
|
||||
"style": "diamond",
|
||||
"template": "{{ .UserName }}@{{ .HostName }}",
|
||||
"type": "session"
|
||||
},
|
||||
{
|
||||
"background": "p:pink",
|
||||
"foreground": "p:text",
|
||||
"properties": {
|
||||
"folder_icon": "..\ue5fe..",
|
||||
"home_icon": "~",
|
||||
"style": "agnoster_short"
|
||||
},
|
||||
"powerline_symbol": "\ue0b4",
|
||||
"style": "powerline",
|
||||
"template": " {{ .Path }}",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"background": "p:lavender",
|
||||
"foreground": "p:text",
|
||||
"style": "powerline",
|
||||
"properties": {
|
||||
"branch_icon": "\ue725 ",
|
||||
"cherry_pick_icon": "\ue29b ",
|
||||
"commit_icon": "\uf417 ",
|
||||
"fetch_status": false,
|
||||
"fetch_upstream_icon": false,
|
||||
"merge_icon": "\ue727 ",
|
||||
"no_commits_icon": "\uf0c3 ",
|
||||
"rebase_icon": "\ue728 ",
|
||||
"revert_icon": "\uf0e2 ",
|
||||
"tag_icon": "\uf412 "
|
||||
},
|
||||
"powerline_symbol": "\ue0b4",
|
||||
"template": " {{ .HEAD }}",
|
||||
"type": "git"
|
||||
}
|
||||
],
|
||||
"type": "prompt"
|
||||
}
|
||||
],
|
||||
"final_space": true,
|
||||
"version": 2
|
||||
}
|
||||
92
json2nix.py
Normal file
92
json2nix.py
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
# Original script: https://gist.githubusercontent.com/Scoder12/0538252ed4b82d65e59115075369d34d/raw/e86d1d64d1373a497118beb1259dab149cea951d/json2nix.py
|
||||
"""Converts JSON objects into nix (hackishly)."""
|
||||
|
||||
import sys
|
||||
import json
|
||||
|
||||
|
||||
INDENT = " " * 2
|
||||
|
||||
|
||||
def strip_comments(t):
|
||||
# fixme: doesn't work if JSON strings contain //
|
||||
return "\n".join(l.partition("//")[0] for l in t.split("\n"))
|
||||
|
||||
|
||||
def indent(s):
|
||||
return "\n".join(INDENT + i for i in s.split("\n"))
|
||||
|
||||
|
||||
def nix_stringify(s):
|
||||
# fixme: this doesn't handle string interpolation and possibly has more bugs
|
||||
return json.dumps(s)
|
||||
|
||||
|
||||
def sanitize_key(s):
|
||||
if s and s.isalnum() and not s[0].isdigit():
|
||||
return s
|
||||
return nix_stringify(s)
|
||||
|
||||
|
||||
def flatten_obj_item(k, v):
|
||||
keys = [k]
|
||||
val = v
|
||||
while isinstance(val, dict) and len(val) == 1:
|
||||
k = next(iter(val.keys()))
|
||||
keys.append(k)
|
||||
val = val[k]
|
||||
return keys, val
|
||||
|
||||
|
||||
def fmt_object(obj, flatten):
|
||||
fields = []
|
||||
for k, v in obj.items():
|
||||
if flatten:
|
||||
keys, val = flatten_obj_item(k, v)
|
||||
formatted_key = ".".join(sanitize_key(i) for i in keys)
|
||||
else:
|
||||
formatted_key = sanitize_key(k)
|
||||
val = v
|
||||
fields.append(f"{formatted_key} = {fmt_any(val, flatten)};")
|
||||
|
||||
return "{\n" + indent("\n".join(fields)) + "\n}"
|
||||
|
||||
|
||||
def fmt_array(o, flatten):
|
||||
body = indent("\n".join(fmt_any(i, flatten) for i in o))
|
||||
return f"[\n{body}\n]"
|
||||
|
||||
|
||||
def fmt_any(o, flatten):
|
||||
if isinstance(o, str) or isinstance(o, bool) or isinstance(o, int):
|
||||
return json.dumps(o)
|
||||
if isinstance(o, list):
|
||||
return fmt_array(o, flatten)
|
||||
if isinstance(o, dict):
|
||||
return fmt_object(o, flatten)
|
||||
raise TypeError(f"Unknown type {type(o)!r}")
|
||||
|
||||
|
||||
def main():
|
||||
flatten = "--flatten" in sys.argv
|
||||
args = [a for a in sys.argv[1:] if not a.startswith("--")]
|
||||
|
||||
if len(args) < 1:
|
||||
print(f"Usage: {sys.argv[0]} [--flatten] <file.json>", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
with open(args[0], "r") as f:
|
||||
contents = f.read().strip()
|
||||
if contents[-1] == ",":
|
||||
contents = contents[:-1]
|
||||
if contents[0] != "{":
|
||||
contents = "{" + contents + "}"
|
||||
data = json.loads(strip_comments(contents))
|
||||
|
||||
outputs = fmt_any(data, flatten=flatten)
|
||||
print(outputs[1:-1])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue