hueman-cli 0.2.1__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hueman_cli-0.3.0/PKG-INFO +127 -0
- hueman_cli-0.3.0/README.md +95 -0
- hueman_cli-0.3.0/hueman_cli.egg-info/PKG-INFO +127 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/scm_file_list.json +23 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/scm_version.json +2 -2
- hueman_cli-0.2.1/PKG-INFO +0 -119
- hueman_cli-0.2.1/README.md +0 -87
- hueman_cli-0.2.1/hueman_cli.egg-info/PKG-INFO +0 -119
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/CONTRIBUTING.md +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/LICENSE +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/MANIFEST.in +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/SECURITY.md +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/__init__.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/__main__.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/cli.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/data/hueman.config.example.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/__init__.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/colors.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/config.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/fsutil.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/palettes.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/reload.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/render.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/statesource.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/targets.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/arctic-ice.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/autumn.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/catppuccin-latte.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/catppuccin-mocha.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/copperwave.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/crimson-vivid.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/dracula.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/ember-red.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/everforest-dark.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/galaxy.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/gruvbox-light.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/gruvbox.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/kanagawa-dragon.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/matrix.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/mono-contrast.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/nord.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/ocean-deep.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/one-light.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/onyx-gold.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/rose-pine-dawn.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/solarized-light.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/synthwave.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/tokyonight.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/tuxedo.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/vaporwave.yaml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/resources.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/atuin_theme.toml.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/bottom_theme.toml.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/bspwm_colors.conf.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/claude_statusline.sh.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/dunst_colors.conf.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/fzf_opts.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/fzf_theme.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/herdr_theme_custom.toml.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/k9s_theme.yaml.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/kitty.conf.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/lazydocker_theme.yml.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/leaf_theme.toml.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/newt_colors.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/nvim_nightfox_theme.lua.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/omp.omp.json.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/opencode_theme.json.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/pi_theme.json.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/polybar_colors.ini.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/posting_theme.yaml.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/qutebrowser_github.user.js.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/qutebrowser_google.user.js.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/qutebrowser_hteam.user.js.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/qutebrowser_theme.py.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/rofi_theme.rasi.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/sshub_theme.toml.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/starship_block.toml.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/termux_colors.properties.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/tmux.conf.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/tuicr_theme.toml.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/wezterm_colors.lua.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/windhawk_taskbar.json.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/yazi_theme.toml.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/zen_theme.json.j2 +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/SOURCES.txt +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/dependency_links.txt +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/entry_points.txt +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/requires.txt +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/top_level.txt +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/pyproject.toml +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/requirements.txt +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/setup.cfg +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/conftest.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_atomic_writes.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_colors_and_cli.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_command_substitution.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_config_and_palettes.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_config_validation.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_config_vars.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_error_paths.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_file_source.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_idempotence.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_init_command.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_packaging.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_palette_names.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_real_config.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_reload_exit_codes.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_render.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_render_modes.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_sandbox.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_starship_marker.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_state_and_reload.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_state_branch.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_state_source_contract.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_sync_network.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_sync_status.py +0 -0
- {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_termux_template.py +0 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hueman-cli
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Centralized theme manager: one YAML palette feeds Jinja2 templates that generate each tool's config.
|
|
5
|
+
Author: 4DRIAN0RTIZ
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://hueman.cuevaneander.tech
|
|
8
|
+
Project-URL: Source, https://github.com/NeanderTeam/hueman
|
|
9
|
+
Project-URL: Issues, https://github.com/NeanderTeam/hueman/issues
|
|
10
|
+
Keywords: theme,colors,palette,dotfiles,jinja2,terminal,cli
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Topic :: Desktop Environment
|
|
23
|
+
Classifier: Topic :: Utilities
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: Jinja2>=3.1.6
|
|
28
|
+
Requires-Dist: PyYAML>=6.0.1
|
|
29
|
+
Provides-Extra: dev
|
|
30
|
+
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
31
|
+
Dynamic: license-file
|
|
32
|
+
|
|
33
|
+
<p align="center">
|
|
34
|
+
<img src="website/assets/img/logo.png" alt="hueman" width="128" />
|
|
35
|
+
</p>
|
|
36
|
+
|
|
37
|
+
<h1 align="center">hueman</h1>
|
|
38
|
+
|
|
39
|
+
<p align="center"><strong>One palette. Every tool.</strong></p>
|
|
40
|
+
|
|
41
|
+
<p align="center">
|
|
42
|
+
One theme for your terminal, editor, prompt, and the rest of your setup.<br />
|
|
43
|
+
You own the map — which file each app uses — and one command paints it everywhere.<br />
|
|
44
|
+
Not a dotfiles manager: output paths live in your own <code>hueman.config.yaml</code>,
|
|
45
|
+
outside this repo.
|
|
46
|
+
</p>
|
|
47
|
+
|
|
48
|
+
## Quickstart
|
|
49
|
+
|
|
50
|
+
```sh
|
|
51
|
+
pipx install hueman-cli # or: pip install hueman-cli
|
|
52
|
+
hueman init # sample config → ~/.config/hueman/config.yaml
|
|
53
|
+
# point targets/outputs at your paths, then:
|
|
54
|
+
hueman set <palette> --dry-run
|
|
55
|
+
hueman set <palette>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
From source (Python >= 3.9):
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
git clone https://github.com/NeanderTeam/hueman.git
|
|
62
|
+
cd hueman && pip install -e .
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Upgrade: `pipx upgrade hueman-cli` (or `pip install -U hueman-cli`).
|
|
66
|
+
Uninstall: `pipx uninstall hueman-cli` (or `pip uninstall hueman-cli`); your
|
|
67
|
+
config and generated files are left alone (details in the
|
|
68
|
+
[install guide](https://hueman.cuevaneander.tech/?p=install)).
|
|
69
|
+
|
|
70
|
+
Other commands: `init` (sample config), `list` (palettes), `status` (active
|
|
71
|
+
theme), `sync` (shared state across machines).
|
|
72
|
+
|
|
73
|
+
## Core ideas
|
|
74
|
+
|
|
75
|
+
- One palette, many targets; output mapping is declarative.
|
|
76
|
+
- Packaged templates and palettes are defaults; custom dirs win.
|
|
77
|
+
- `overwrite` for full generated files, `patch` for blocks inside hand-edited
|
|
78
|
+
configs.
|
|
79
|
+
- Per-target `reload` and global `post_apply`, best-effort, with `warn` /
|
|
80
|
+
`error` policy.
|
|
81
|
+
- Optional sync of the active palette across machines (`state_sync`).
|
|
82
|
+
- Adding a tool is a template + a target, not an engine change.
|
|
83
|
+
|
|
84
|
+
## Packaged tools
|
|
85
|
+
|
|
86
|
+
`hueman/palettes/` and `hueman/templates/` ship 25 generic palettes and
|
|
87
|
+
templates for common tools (kitty, tmux, polybar, nvim/nightfox, dunst, bspwm,
|
|
88
|
+
yazi, qutebrowser, rofi, fzf, atuin, oh-my-posh, wezterm, starship, Termux,
|
|
89
|
+
herdr, and more). For idiosyncratic targets use `template_dirs` in your config
|
|
90
|
+
instead of asking them to be packaged here.
|
|
91
|
+
|
|
92
|
+
## Docs
|
|
93
|
+
|
|
94
|
+
Full site: **[hueman.cuevaneander.tech](https://hueman.cuevaneander.tech)**
|
|
95
|
+
(`/` = landing, `?p=intro` = docs)
|
|
96
|
+
|
|
97
|
+
Local preview (sources under `website/`):
|
|
98
|
+
|
|
99
|
+
```sh
|
|
100
|
+
python3 -m http.server 8765 --directory website
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
then open `http://localhost:8765`.
|
|
104
|
+
|
|
105
|
+
## Support
|
|
106
|
+
|
|
107
|
+
Bug or idea? Open an issue at
|
|
108
|
+
[github.com/NeanderTeam/hueman/issues](https://github.com/NeanderTeam/hueman/issues).
|
|
109
|
+
|
|
110
|
+
## Repo layout
|
|
111
|
+
|
|
112
|
+
| Path | Contents |
|
|
113
|
+
|---|---|
|
|
114
|
+
| `hueman/cli.py` | CLI and orchestration (`hueman` command) |
|
|
115
|
+
| `hueman/engine/` | Config, palettes, targets, render, reload, shared state |
|
|
116
|
+
| `hueman/palettes/`, `hueman/templates/` | Packaged YAML palettes and Jinja2 templates |
|
|
117
|
+
| `hueman/data/hueman.config.example.yaml` | Commented external config example (`hueman init`) |
|
|
118
|
+
| `tests/` | Test suite |
|
|
119
|
+
| `website/` | Landing + documentation site |
|
|
120
|
+
|
|
121
|
+
The repo is self-contained: nothing inside imports code from outside itself,
|
|
122
|
+
except the external config each user provides. A dotfiles repo only needs
|
|
123
|
+
`hueman` installed and its own `hueman.config.yaml`.
|
|
124
|
+
|
|
125
|
+
## License
|
|
126
|
+
|
|
127
|
+
MIT, see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="website/assets/img/logo.png" alt="hueman" width="128" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">hueman</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center"><strong>One palette. Every tool.</strong></p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
One theme for your terminal, editor, prompt, and the rest of your setup.<br />
|
|
11
|
+
You own the map — which file each app uses — and one command paints it everywhere.<br />
|
|
12
|
+
Not a dotfiles manager: output paths live in your own <code>hueman.config.yaml</code>,
|
|
13
|
+
outside this repo.
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
## Quickstart
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
pipx install hueman-cli # or: pip install hueman-cli
|
|
20
|
+
hueman init # sample config → ~/.config/hueman/config.yaml
|
|
21
|
+
# point targets/outputs at your paths, then:
|
|
22
|
+
hueman set <palette> --dry-run
|
|
23
|
+
hueman set <palette>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
From source (Python >= 3.9):
|
|
27
|
+
|
|
28
|
+
```sh
|
|
29
|
+
git clone https://github.com/NeanderTeam/hueman.git
|
|
30
|
+
cd hueman && pip install -e .
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Upgrade: `pipx upgrade hueman-cli` (or `pip install -U hueman-cli`).
|
|
34
|
+
Uninstall: `pipx uninstall hueman-cli` (or `pip uninstall hueman-cli`); your
|
|
35
|
+
config and generated files are left alone (details in the
|
|
36
|
+
[install guide](https://hueman.cuevaneander.tech/?p=install)).
|
|
37
|
+
|
|
38
|
+
Other commands: `init` (sample config), `list` (palettes), `status` (active
|
|
39
|
+
theme), `sync` (shared state across machines).
|
|
40
|
+
|
|
41
|
+
## Core ideas
|
|
42
|
+
|
|
43
|
+
- One palette, many targets; output mapping is declarative.
|
|
44
|
+
- Packaged templates and palettes are defaults; custom dirs win.
|
|
45
|
+
- `overwrite` for full generated files, `patch` for blocks inside hand-edited
|
|
46
|
+
configs.
|
|
47
|
+
- Per-target `reload` and global `post_apply`, best-effort, with `warn` /
|
|
48
|
+
`error` policy.
|
|
49
|
+
- Optional sync of the active palette across machines (`state_sync`).
|
|
50
|
+
- Adding a tool is a template + a target, not an engine change.
|
|
51
|
+
|
|
52
|
+
## Packaged tools
|
|
53
|
+
|
|
54
|
+
`hueman/palettes/` and `hueman/templates/` ship 25 generic palettes and
|
|
55
|
+
templates for common tools (kitty, tmux, polybar, nvim/nightfox, dunst, bspwm,
|
|
56
|
+
yazi, qutebrowser, rofi, fzf, atuin, oh-my-posh, wezterm, starship, Termux,
|
|
57
|
+
herdr, and more). For idiosyncratic targets use `template_dirs` in your config
|
|
58
|
+
instead of asking them to be packaged here.
|
|
59
|
+
|
|
60
|
+
## Docs
|
|
61
|
+
|
|
62
|
+
Full site: **[hueman.cuevaneander.tech](https://hueman.cuevaneander.tech)**
|
|
63
|
+
(`/` = landing, `?p=intro` = docs)
|
|
64
|
+
|
|
65
|
+
Local preview (sources under `website/`):
|
|
66
|
+
|
|
67
|
+
```sh
|
|
68
|
+
python3 -m http.server 8765 --directory website
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
then open `http://localhost:8765`.
|
|
72
|
+
|
|
73
|
+
## Support
|
|
74
|
+
|
|
75
|
+
Bug or idea? Open an issue at
|
|
76
|
+
[github.com/NeanderTeam/hueman/issues](https://github.com/NeanderTeam/hueman/issues).
|
|
77
|
+
|
|
78
|
+
## Repo layout
|
|
79
|
+
|
|
80
|
+
| Path | Contents |
|
|
81
|
+
|---|---|
|
|
82
|
+
| `hueman/cli.py` | CLI and orchestration (`hueman` command) |
|
|
83
|
+
| `hueman/engine/` | Config, palettes, targets, render, reload, shared state |
|
|
84
|
+
| `hueman/palettes/`, `hueman/templates/` | Packaged YAML palettes and Jinja2 templates |
|
|
85
|
+
| `hueman/data/hueman.config.example.yaml` | Commented external config example (`hueman init`) |
|
|
86
|
+
| `tests/` | Test suite |
|
|
87
|
+
| `website/` | Landing + documentation site |
|
|
88
|
+
|
|
89
|
+
The repo is self-contained: nothing inside imports code from outside itself,
|
|
90
|
+
except the external config each user provides. A dotfiles repo only needs
|
|
91
|
+
`hueman` installed and its own `hueman.config.yaml`.
|
|
92
|
+
|
|
93
|
+
## License
|
|
94
|
+
|
|
95
|
+
MIT, see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hueman-cli
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Centralized theme manager: one YAML palette feeds Jinja2 templates that generate each tool's config.
|
|
5
|
+
Author: 4DRIAN0RTIZ
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://hueman.cuevaneander.tech
|
|
8
|
+
Project-URL: Source, https://github.com/NeanderTeam/hueman
|
|
9
|
+
Project-URL: Issues, https://github.com/NeanderTeam/hueman/issues
|
|
10
|
+
Keywords: theme,colors,palette,dotfiles,jinja2,terminal,cli
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Topic :: Desktop Environment
|
|
23
|
+
Classifier: Topic :: Utilities
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: Jinja2>=3.1.6
|
|
28
|
+
Requires-Dist: PyYAML>=6.0.1
|
|
29
|
+
Provides-Extra: dev
|
|
30
|
+
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
31
|
+
Dynamic: license-file
|
|
32
|
+
|
|
33
|
+
<p align="center">
|
|
34
|
+
<img src="website/assets/img/logo.png" alt="hueman" width="128" />
|
|
35
|
+
</p>
|
|
36
|
+
|
|
37
|
+
<h1 align="center">hueman</h1>
|
|
38
|
+
|
|
39
|
+
<p align="center"><strong>One palette. Every tool.</strong></p>
|
|
40
|
+
|
|
41
|
+
<p align="center">
|
|
42
|
+
One theme for your terminal, editor, prompt, and the rest of your setup.<br />
|
|
43
|
+
You own the map — which file each app uses — and one command paints it everywhere.<br />
|
|
44
|
+
Not a dotfiles manager: output paths live in your own <code>hueman.config.yaml</code>,
|
|
45
|
+
outside this repo.
|
|
46
|
+
</p>
|
|
47
|
+
|
|
48
|
+
## Quickstart
|
|
49
|
+
|
|
50
|
+
```sh
|
|
51
|
+
pipx install hueman-cli # or: pip install hueman-cli
|
|
52
|
+
hueman init # sample config → ~/.config/hueman/config.yaml
|
|
53
|
+
# point targets/outputs at your paths, then:
|
|
54
|
+
hueman set <palette> --dry-run
|
|
55
|
+
hueman set <palette>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
From source (Python >= 3.9):
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
git clone https://github.com/NeanderTeam/hueman.git
|
|
62
|
+
cd hueman && pip install -e .
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Upgrade: `pipx upgrade hueman-cli` (or `pip install -U hueman-cli`).
|
|
66
|
+
Uninstall: `pipx uninstall hueman-cli` (or `pip uninstall hueman-cli`); your
|
|
67
|
+
config and generated files are left alone (details in the
|
|
68
|
+
[install guide](https://hueman.cuevaneander.tech/?p=install)).
|
|
69
|
+
|
|
70
|
+
Other commands: `init` (sample config), `list` (palettes), `status` (active
|
|
71
|
+
theme), `sync` (shared state across machines).
|
|
72
|
+
|
|
73
|
+
## Core ideas
|
|
74
|
+
|
|
75
|
+
- One palette, many targets; output mapping is declarative.
|
|
76
|
+
- Packaged templates and palettes are defaults; custom dirs win.
|
|
77
|
+
- `overwrite` for full generated files, `patch` for blocks inside hand-edited
|
|
78
|
+
configs.
|
|
79
|
+
- Per-target `reload` and global `post_apply`, best-effort, with `warn` /
|
|
80
|
+
`error` policy.
|
|
81
|
+
- Optional sync of the active palette across machines (`state_sync`).
|
|
82
|
+
- Adding a tool is a template + a target, not an engine change.
|
|
83
|
+
|
|
84
|
+
## Packaged tools
|
|
85
|
+
|
|
86
|
+
`hueman/palettes/` and `hueman/templates/` ship 25 generic palettes and
|
|
87
|
+
templates for common tools (kitty, tmux, polybar, nvim/nightfox, dunst, bspwm,
|
|
88
|
+
yazi, qutebrowser, rofi, fzf, atuin, oh-my-posh, wezterm, starship, Termux,
|
|
89
|
+
herdr, and more). For idiosyncratic targets use `template_dirs` in your config
|
|
90
|
+
instead of asking them to be packaged here.
|
|
91
|
+
|
|
92
|
+
## Docs
|
|
93
|
+
|
|
94
|
+
Full site: **[hueman.cuevaneander.tech](https://hueman.cuevaneander.tech)**
|
|
95
|
+
(`/` = landing, `?p=intro` = docs)
|
|
96
|
+
|
|
97
|
+
Local preview (sources under `website/`):
|
|
98
|
+
|
|
99
|
+
```sh
|
|
100
|
+
python3 -m http.server 8765 --directory website
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
then open `http://localhost:8765`.
|
|
104
|
+
|
|
105
|
+
## Support
|
|
106
|
+
|
|
107
|
+
Bug or idea? Open an issue at
|
|
108
|
+
[github.com/NeanderTeam/hueman/issues](https://github.com/NeanderTeam/hueman/issues).
|
|
109
|
+
|
|
110
|
+
## Repo layout
|
|
111
|
+
|
|
112
|
+
| Path | Contents |
|
|
113
|
+
|---|---|
|
|
114
|
+
| `hueman/cli.py` | CLI and orchestration (`hueman` command) |
|
|
115
|
+
| `hueman/engine/` | Config, palettes, targets, render, reload, shared state |
|
|
116
|
+
| `hueman/palettes/`, `hueman/templates/` | Packaged YAML palettes and Jinja2 templates |
|
|
117
|
+
| `hueman/data/hueman.config.example.yaml` | Commented external config example (`hueman init`) |
|
|
118
|
+
| `tests/` | Test suite |
|
|
119
|
+
| `website/` | Landing + documentation site |
|
|
120
|
+
|
|
121
|
+
The repo is self-contained: nothing inside imports code from outside itself,
|
|
122
|
+
except the external config each user provides. A dotfiles repo only needs
|
|
123
|
+
`hueman` installed and its own `hueman.config.yaml`.
|
|
124
|
+
|
|
125
|
+
## License
|
|
126
|
+
|
|
127
|
+
MIT, see [LICENSE](LICENSE).
|
|
@@ -145,6 +145,29 @@
|
|
|
145
145
|
"website/assets/img/favicon-180.png",
|
|
146
146
|
"website/assets/img/favicon-32.png",
|
|
147
147
|
"website/assets/img/logo.png",
|
|
148
|
+
"website/assets/img/tools/atuin.png",
|
|
149
|
+
"website/assets/img/tools/bottom.svg",
|
|
150
|
+
"website/assets/img/tools/bspwm.svg",
|
|
151
|
+
"website/assets/img/tools/custom.svg",
|
|
152
|
+
"website/assets/img/tools/dunst.svg",
|
|
153
|
+
"website/assets/img/tools/fzf.svg",
|
|
154
|
+
"website/assets/img/tools/herdr.png",
|
|
155
|
+
"website/assets/img/tools/herdr.svg",
|
|
156
|
+
"website/assets/img/tools/k9s.png",
|
|
157
|
+
"website/assets/img/tools/kitty.svg",
|
|
158
|
+
"website/assets/img/tools/lazydocker.png",
|
|
159
|
+
"website/assets/img/tools/nvim.svg",
|
|
160
|
+
"website/assets/img/tools/oh-my-posh.svg",
|
|
161
|
+
"website/assets/img/tools/polybar.png",
|
|
162
|
+
"website/assets/img/tools/qutebrowser.svg",
|
|
163
|
+
"website/assets/img/tools/rofi.svg",
|
|
164
|
+
"website/assets/img/tools/starship.svg",
|
|
165
|
+
"website/assets/img/tools/termux.svg",
|
|
166
|
+
"website/assets/img/tools/tmux.svg",
|
|
167
|
+
"website/assets/img/tools/wezterm.svg",
|
|
168
|
+
"website/assets/img/tools/windhawk.png",
|
|
169
|
+
"website/assets/img/tools/windhawk.svg",
|
|
170
|
+
"website/assets/img/tools/yazi.png",
|
|
148
171
|
"website/assets/js/app.js",
|
|
149
172
|
"website/assets/js/marked.min.js",
|
|
150
173
|
"website/assets/js/releases.js",
|
hueman_cli-0.2.1/PKG-INFO
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: hueman-cli
|
|
3
|
-
Version: 0.2.1
|
|
4
|
-
Summary: Centralized theme manager: one YAML palette feeds Jinja2 templates that generate each tool's config.
|
|
5
|
-
Author: 4DRIAN0RTIZ
|
|
6
|
-
License-Expression: MIT
|
|
7
|
-
Project-URL: Homepage, https://hueman.cuevaneander.tech
|
|
8
|
-
Project-URL: Source, https://github.com/NeanderTeam/hueman
|
|
9
|
-
Project-URL: Issues, https://github.com/NeanderTeam/hueman/issues
|
|
10
|
-
Keywords: theme,colors,palette,dotfiles,jinja2,terminal,cli
|
|
11
|
-
Classifier: Development Status :: 4 - Beta
|
|
12
|
-
Classifier: Environment :: Console
|
|
13
|
-
Classifier: Intended Audience :: Developers
|
|
14
|
-
Classifier: Operating System :: OS Independent
|
|
15
|
-
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
-
Classifier: Topic :: Desktop Environment
|
|
23
|
-
Classifier: Topic :: Utilities
|
|
24
|
-
Requires-Python: >=3.9
|
|
25
|
-
Description-Content-Type: text/markdown
|
|
26
|
-
License-File: LICENSE
|
|
27
|
-
Requires-Dist: Jinja2>=3.1.6
|
|
28
|
-
Requires-Dist: PyYAML>=6.0.1
|
|
29
|
-
Provides-Extra: dev
|
|
30
|
-
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
31
|
-
Dynamic: license-file
|
|
32
|
-
|
|
33
|
-
# hueman
|
|
34
|
-
|
|
35
|
-
Gestor centralizado de temas: una **paleta de color (YAML)** alimenta
|
|
36
|
-
**templates Jinja2** que generan la configuración real de tus herramientas
|
|
37
|
-
(kitty, tmux, nvim, starship, Windows Terminal, lo que declares en tu propio
|
|
38
|
-
config). Sin dependencias de ningún gestor de dotfiles: todo el mapeo de rutas
|
|
39
|
-
de salida vive en un `hueman.config.yaml` propio, fuera de este repo.
|
|
40
|
-
|
|
41
|
-
## Quickstart
|
|
42
|
-
|
|
43
|
-
```sh
|
|
44
|
-
pipx install hueman-cli # o: pip install hueman-cli
|
|
45
|
-
hueman init # escribe un config de ejemplo en ~/.config/hueman/config.yaml
|
|
46
|
-
# ajusta tus targets en ese archivo, luego:
|
|
47
|
-
hueman set <paleta> --dry-run
|
|
48
|
-
hueman set <paleta>
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Desde el código fuente (requiere Python >= 3.9):
|
|
52
|
-
|
|
53
|
-
```sh
|
|
54
|
-
git clone https://github.com/NeanderTeam/hueman.git
|
|
55
|
-
cd hueman && pip install -e .
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Actualizar: `pipx upgrade hueman-cli` (o `pip install -U hueman-cli`).
|
|
59
|
-
Desinstalar: `pipx uninstall hueman-cli` (o `pip uninstall hueman-cli`); tu config
|
|
60
|
-
y los archivos generados no se borran (detalle en la
|
|
61
|
-
[guía de instalación](https://hueman.cuevaneander.tech/?p=install)).
|
|
62
|
-
|
|
63
|
-
Otros comandos: `init` (config de ejemplo), `list` (paletas), `status` (tema activo) y `sync` (estado
|
|
64
|
-
compartido entre máquinas).
|
|
65
|
-
|
|
66
|
-
## Ideas centrales
|
|
67
|
-
|
|
68
|
-
- Una paleta, muchos targets; el mapeo de salidas es declarativo.
|
|
69
|
-
- Templates y paletas empaquetados son defaults; los directorios custom ganan.
|
|
70
|
-
- `overwrite` para archivos generados enteros, `patch` para bloques dentro de
|
|
71
|
-
configs editadas a mano.
|
|
72
|
-
- `reload` por target y `post_apply` global, best-effort, con política
|
|
73
|
-
`warn` / `error`.
|
|
74
|
-
- Sync opcional de la paleta activa entre máquinas (`state_sync`).
|
|
75
|
-
- Agregar una tool nueva es un template + un target, no un cambio al motor.
|
|
76
|
-
|
|
77
|
-
## Herramientas empaquetadas
|
|
78
|
-
|
|
79
|
-
`hueman/palettes/` y `hueman/templates/` traen 25 paletas estéticas genéricas y templates
|
|
80
|
-
para las herramientas más comunes (kitty, tmux, polybar, nvim/nightfox, dunst,
|
|
81
|
-
bspwm, yazi, qutebrowser, rofi, fzf, atuin, oh-my-posh, wezterm, starship,
|
|
82
|
-
Termux). Para targets idiosincráticos usa `template_dirs` en tu config en vez
|
|
83
|
-
de pedir que se agreguen aquí.
|
|
84
|
-
|
|
85
|
-
## Documentación
|
|
86
|
-
|
|
87
|
-
Documentación completa: **[hueman.cuevaneander.tech](https://hueman.cuevaneander.tech)**
|
|
88
|
-
|
|
89
|
-
Para verla en local (las fuentes están en `website/`):
|
|
90
|
-
|
|
91
|
-
```sh
|
|
92
|
-
python3 -m http.server 8765 --directory website
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
y abre `http://localhost:8765`.
|
|
96
|
-
|
|
97
|
-
## Soporte
|
|
98
|
-
|
|
99
|
-
¿Un bug o una idea? Abre un issue en
|
|
100
|
-
[github.com/NeanderTeam/hueman/issues](https://github.com/NeanderTeam/hueman/issues).
|
|
101
|
-
|
|
102
|
-
## Estructura del repo
|
|
103
|
-
|
|
104
|
-
| Ruta | Contenido |
|
|
105
|
-
|---|---|
|
|
106
|
-
| `hueman/cli.py` | CLI y orquestación (comando `hueman`) |
|
|
107
|
-
| `hueman/engine/` | Config, paletas, targets, render, reload, estado compartido |
|
|
108
|
-
| `hueman/palettes/`, `hueman/templates/` | Paletas YAML y plantillas Jinja2 empaquetadas |
|
|
109
|
-
| `hueman/data/hueman.config.example.yaml` | Ejemplo comentado de config externa (lo escribe `hueman init`) |
|
|
110
|
-
| `tests/` | Suite de tests |
|
|
111
|
-
| `website/` | Sitio de documentación |
|
|
112
|
-
|
|
113
|
-
El repo es autocontenido: nada dentro importa código fuera de sí mismo, salvo
|
|
114
|
-
el config externo que cada usuario provee. Un repo de dotfiles solo necesita
|
|
115
|
-
tener `hueman` instalado y su propio `hueman.config.yaml`.
|
|
116
|
-
|
|
117
|
-
## Licencia
|
|
118
|
-
|
|
119
|
-
MIT, ver [LICENSE](LICENSE).
|
hueman_cli-0.2.1/README.md
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
# hueman
|
|
2
|
-
|
|
3
|
-
Gestor centralizado de temas: una **paleta de color (YAML)** alimenta
|
|
4
|
-
**templates Jinja2** que generan la configuración real de tus herramientas
|
|
5
|
-
(kitty, tmux, nvim, starship, Windows Terminal, lo que declares en tu propio
|
|
6
|
-
config). Sin dependencias de ningún gestor de dotfiles: todo el mapeo de rutas
|
|
7
|
-
de salida vive en un `hueman.config.yaml` propio, fuera de este repo.
|
|
8
|
-
|
|
9
|
-
## Quickstart
|
|
10
|
-
|
|
11
|
-
```sh
|
|
12
|
-
pipx install hueman-cli # o: pip install hueman-cli
|
|
13
|
-
hueman init # escribe un config de ejemplo en ~/.config/hueman/config.yaml
|
|
14
|
-
# ajusta tus targets en ese archivo, luego:
|
|
15
|
-
hueman set <paleta> --dry-run
|
|
16
|
-
hueman set <paleta>
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Desde el código fuente (requiere Python >= 3.9):
|
|
20
|
-
|
|
21
|
-
```sh
|
|
22
|
-
git clone https://github.com/NeanderTeam/hueman.git
|
|
23
|
-
cd hueman && pip install -e .
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Actualizar: `pipx upgrade hueman-cli` (o `pip install -U hueman-cli`).
|
|
27
|
-
Desinstalar: `pipx uninstall hueman-cli` (o `pip uninstall hueman-cli`); tu config
|
|
28
|
-
y los archivos generados no se borran (detalle en la
|
|
29
|
-
[guía de instalación](https://hueman.cuevaneander.tech/?p=install)).
|
|
30
|
-
|
|
31
|
-
Otros comandos: `init` (config de ejemplo), `list` (paletas), `status` (tema activo) y `sync` (estado
|
|
32
|
-
compartido entre máquinas).
|
|
33
|
-
|
|
34
|
-
## Ideas centrales
|
|
35
|
-
|
|
36
|
-
- Una paleta, muchos targets; el mapeo de salidas es declarativo.
|
|
37
|
-
- Templates y paletas empaquetados son defaults; los directorios custom ganan.
|
|
38
|
-
- `overwrite` para archivos generados enteros, `patch` para bloques dentro de
|
|
39
|
-
configs editadas a mano.
|
|
40
|
-
- `reload` por target y `post_apply` global, best-effort, con política
|
|
41
|
-
`warn` / `error`.
|
|
42
|
-
- Sync opcional de la paleta activa entre máquinas (`state_sync`).
|
|
43
|
-
- Agregar una tool nueva es un template + un target, no un cambio al motor.
|
|
44
|
-
|
|
45
|
-
## Herramientas empaquetadas
|
|
46
|
-
|
|
47
|
-
`hueman/palettes/` y `hueman/templates/` traen 25 paletas estéticas genéricas y templates
|
|
48
|
-
para las herramientas más comunes (kitty, tmux, polybar, nvim/nightfox, dunst,
|
|
49
|
-
bspwm, yazi, qutebrowser, rofi, fzf, atuin, oh-my-posh, wezterm, starship,
|
|
50
|
-
Termux). Para targets idiosincráticos usa `template_dirs` en tu config en vez
|
|
51
|
-
de pedir que se agreguen aquí.
|
|
52
|
-
|
|
53
|
-
## Documentación
|
|
54
|
-
|
|
55
|
-
Documentación completa: **[hueman.cuevaneander.tech](https://hueman.cuevaneander.tech)**
|
|
56
|
-
|
|
57
|
-
Para verla en local (las fuentes están en `website/`):
|
|
58
|
-
|
|
59
|
-
```sh
|
|
60
|
-
python3 -m http.server 8765 --directory website
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
y abre `http://localhost:8765`.
|
|
64
|
-
|
|
65
|
-
## Soporte
|
|
66
|
-
|
|
67
|
-
¿Un bug o una idea? Abre un issue en
|
|
68
|
-
[github.com/NeanderTeam/hueman/issues](https://github.com/NeanderTeam/hueman/issues).
|
|
69
|
-
|
|
70
|
-
## Estructura del repo
|
|
71
|
-
|
|
72
|
-
| Ruta | Contenido |
|
|
73
|
-
|---|---|
|
|
74
|
-
| `hueman/cli.py` | CLI y orquestación (comando `hueman`) |
|
|
75
|
-
| `hueman/engine/` | Config, paletas, targets, render, reload, estado compartido |
|
|
76
|
-
| `hueman/palettes/`, `hueman/templates/` | Paletas YAML y plantillas Jinja2 empaquetadas |
|
|
77
|
-
| `hueman/data/hueman.config.example.yaml` | Ejemplo comentado de config externa (lo escribe `hueman init`) |
|
|
78
|
-
| `tests/` | Suite de tests |
|
|
79
|
-
| `website/` | Sitio de documentación |
|
|
80
|
-
|
|
81
|
-
El repo es autocontenido: nada dentro importa código fuera de sí mismo, salvo
|
|
82
|
-
el config externo que cada usuario provee. Un repo de dotfiles solo necesita
|
|
83
|
-
tener `hueman` instalado y su propio `hueman.config.yaml`.
|
|
84
|
-
|
|
85
|
-
## Licencia
|
|
86
|
-
|
|
87
|
-
MIT, ver [LICENSE](LICENSE).
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: hueman-cli
|
|
3
|
-
Version: 0.2.1
|
|
4
|
-
Summary: Centralized theme manager: one YAML palette feeds Jinja2 templates that generate each tool's config.
|
|
5
|
-
Author: 4DRIAN0RTIZ
|
|
6
|
-
License-Expression: MIT
|
|
7
|
-
Project-URL: Homepage, https://hueman.cuevaneander.tech
|
|
8
|
-
Project-URL: Source, https://github.com/NeanderTeam/hueman
|
|
9
|
-
Project-URL: Issues, https://github.com/NeanderTeam/hueman/issues
|
|
10
|
-
Keywords: theme,colors,palette,dotfiles,jinja2,terminal,cli
|
|
11
|
-
Classifier: Development Status :: 4 - Beta
|
|
12
|
-
Classifier: Environment :: Console
|
|
13
|
-
Classifier: Intended Audience :: Developers
|
|
14
|
-
Classifier: Operating System :: OS Independent
|
|
15
|
-
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
-
Classifier: Topic :: Desktop Environment
|
|
23
|
-
Classifier: Topic :: Utilities
|
|
24
|
-
Requires-Python: >=3.9
|
|
25
|
-
Description-Content-Type: text/markdown
|
|
26
|
-
License-File: LICENSE
|
|
27
|
-
Requires-Dist: Jinja2>=3.1.6
|
|
28
|
-
Requires-Dist: PyYAML>=6.0.1
|
|
29
|
-
Provides-Extra: dev
|
|
30
|
-
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
31
|
-
Dynamic: license-file
|
|
32
|
-
|
|
33
|
-
# hueman
|
|
34
|
-
|
|
35
|
-
Gestor centralizado de temas: una **paleta de color (YAML)** alimenta
|
|
36
|
-
**templates Jinja2** que generan la configuración real de tus herramientas
|
|
37
|
-
(kitty, tmux, nvim, starship, Windows Terminal, lo que declares en tu propio
|
|
38
|
-
config). Sin dependencias de ningún gestor de dotfiles: todo el mapeo de rutas
|
|
39
|
-
de salida vive en un `hueman.config.yaml` propio, fuera de este repo.
|
|
40
|
-
|
|
41
|
-
## Quickstart
|
|
42
|
-
|
|
43
|
-
```sh
|
|
44
|
-
pipx install hueman-cli # o: pip install hueman-cli
|
|
45
|
-
hueman init # escribe un config de ejemplo en ~/.config/hueman/config.yaml
|
|
46
|
-
# ajusta tus targets en ese archivo, luego:
|
|
47
|
-
hueman set <paleta> --dry-run
|
|
48
|
-
hueman set <paleta>
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Desde el código fuente (requiere Python >= 3.9):
|
|
52
|
-
|
|
53
|
-
```sh
|
|
54
|
-
git clone https://github.com/NeanderTeam/hueman.git
|
|
55
|
-
cd hueman && pip install -e .
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Actualizar: `pipx upgrade hueman-cli` (o `pip install -U hueman-cli`).
|
|
59
|
-
Desinstalar: `pipx uninstall hueman-cli` (o `pip uninstall hueman-cli`); tu config
|
|
60
|
-
y los archivos generados no se borran (detalle en la
|
|
61
|
-
[guía de instalación](https://hueman.cuevaneander.tech/?p=install)).
|
|
62
|
-
|
|
63
|
-
Otros comandos: `init` (config de ejemplo), `list` (paletas), `status` (tema activo) y `sync` (estado
|
|
64
|
-
compartido entre máquinas).
|
|
65
|
-
|
|
66
|
-
## Ideas centrales
|
|
67
|
-
|
|
68
|
-
- Una paleta, muchos targets; el mapeo de salidas es declarativo.
|
|
69
|
-
- Templates y paletas empaquetados son defaults; los directorios custom ganan.
|
|
70
|
-
- `overwrite` para archivos generados enteros, `patch` para bloques dentro de
|
|
71
|
-
configs editadas a mano.
|
|
72
|
-
- `reload` por target y `post_apply` global, best-effort, con política
|
|
73
|
-
`warn` / `error`.
|
|
74
|
-
- Sync opcional de la paleta activa entre máquinas (`state_sync`).
|
|
75
|
-
- Agregar una tool nueva es un template + un target, no un cambio al motor.
|
|
76
|
-
|
|
77
|
-
## Herramientas empaquetadas
|
|
78
|
-
|
|
79
|
-
`hueman/palettes/` y `hueman/templates/` traen 25 paletas estéticas genéricas y templates
|
|
80
|
-
para las herramientas más comunes (kitty, tmux, polybar, nvim/nightfox, dunst,
|
|
81
|
-
bspwm, yazi, qutebrowser, rofi, fzf, atuin, oh-my-posh, wezterm, starship,
|
|
82
|
-
Termux). Para targets idiosincráticos usa `template_dirs` en tu config en vez
|
|
83
|
-
de pedir que se agreguen aquí.
|
|
84
|
-
|
|
85
|
-
## Documentación
|
|
86
|
-
|
|
87
|
-
Documentación completa: **[hueman.cuevaneander.tech](https://hueman.cuevaneander.tech)**
|
|
88
|
-
|
|
89
|
-
Para verla en local (las fuentes están en `website/`):
|
|
90
|
-
|
|
91
|
-
```sh
|
|
92
|
-
python3 -m http.server 8765 --directory website
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
y abre `http://localhost:8765`.
|
|
96
|
-
|
|
97
|
-
## Soporte
|
|
98
|
-
|
|
99
|
-
¿Un bug o una idea? Abre un issue en
|
|
100
|
-
[github.com/NeanderTeam/hueman/issues](https://github.com/NeanderTeam/hueman/issues).
|
|
101
|
-
|
|
102
|
-
## Estructura del repo
|
|
103
|
-
|
|
104
|
-
| Ruta | Contenido |
|
|
105
|
-
|---|---|
|
|
106
|
-
| `hueman/cli.py` | CLI y orquestación (comando `hueman`) |
|
|
107
|
-
| `hueman/engine/` | Config, paletas, targets, render, reload, estado compartido |
|
|
108
|
-
| `hueman/palettes/`, `hueman/templates/` | Paletas YAML y plantillas Jinja2 empaquetadas |
|
|
109
|
-
| `hueman/data/hueman.config.example.yaml` | Ejemplo comentado de config externa (lo escribe `hueman init`) |
|
|
110
|
-
| `tests/` | Suite de tests |
|
|
111
|
-
| `website/` | Sitio de documentación |
|
|
112
|
-
|
|
113
|
-
El repo es autocontenido: nada dentro importa código fuera de sí mismo, salvo
|
|
114
|
-
el config externo que cada usuario provee. Un repo de dotfiles solo necesita
|
|
115
|
-
tener `hueman` instalado y su propio `hueman.config.yaml`.
|
|
116
|
-
|
|
117
|
-
## Licencia
|
|
118
|
-
|
|
119
|
-
MIT, ver [LICENSE](LICENSE).
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|