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.
Files changed (117) hide show
  1. hueman_cli-0.3.0/PKG-INFO +127 -0
  2. hueman_cli-0.3.0/README.md +95 -0
  3. hueman_cli-0.3.0/hueman_cli.egg-info/PKG-INFO +127 -0
  4. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/scm_file_list.json +23 -0
  5. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/scm_version.json +2 -2
  6. hueman_cli-0.2.1/PKG-INFO +0 -119
  7. hueman_cli-0.2.1/README.md +0 -87
  8. hueman_cli-0.2.1/hueman_cli.egg-info/PKG-INFO +0 -119
  9. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/CONTRIBUTING.md +0 -0
  10. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/LICENSE +0 -0
  11. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/MANIFEST.in +0 -0
  12. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/SECURITY.md +0 -0
  13. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/__init__.py +0 -0
  14. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/__main__.py +0 -0
  15. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/cli.py +0 -0
  16. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/data/hueman.config.example.yaml +0 -0
  17. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/__init__.py +0 -0
  18. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/colors.py +0 -0
  19. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/config.py +0 -0
  20. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/fsutil.py +0 -0
  21. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/palettes.py +0 -0
  22. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/reload.py +0 -0
  23. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/render.py +0 -0
  24. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/statesource.py +0 -0
  25. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/engine/targets.py +0 -0
  26. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/arctic-ice.yaml +0 -0
  27. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/autumn.yaml +0 -0
  28. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/catppuccin-latte.yaml +0 -0
  29. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/catppuccin-mocha.yaml +0 -0
  30. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/copperwave.yaml +0 -0
  31. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/crimson-vivid.yaml +0 -0
  32. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/dracula.yaml +0 -0
  33. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/ember-red.yaml +0 -0
  34. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/everforest-dark.yaml +0 -0
  35. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/galaxy.yaml +0 -0
  36. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/gruvbox-light.yaml +0 -0
  37. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/gruvbox.yaml +0 -0
  38. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/kanagawa-dragon.yaml +0 -0
  39. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/matrix.yaml +0 -0
  40. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/mono-contrast.yaml +0 -0
  41. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/nord.yaml +0 -0
  42. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/ocean-deep.yaml +0 -0
  43. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/one-light.yaml +0 -0
  44. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/onyx-gold.yaml +0 -0
  45. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/rose-pine-dawn.yaml +0 -0
  46. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/solarized-light.yaml +0 -0
  47. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/synthwave.yaml +0 -0
  48. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/tokyonight.yaml +0 -0
  49. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/tuxedo.yaml +0 -0
  50. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/palettes/vaporwave.yaml +0 -0
  51. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/resources.py +0 -0
  52. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/atuin_theme.toml.j2 +0 -0
  53. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/bottom_theme.toml.j2 +0 -0
  54. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/bspwm_colors.conf.j2 +0 -0
  55. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/claude_statusline.sh.j2 +0 -0
  56. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/dunst_colors.conf.j2 +0 -0
  57. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/fzf_opts.j2 +0 -0
  58. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/fzf_theme.j2 +0 -0
  59. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/herdr_theme_custom.toml.j2 +0 -0
  60. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/k9s_theme.yaml.j2 +0 -0
  61. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/kitty.conf.j2 +0 -0
  62. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/lazydocker_theme.yml.j2 +0 -0
  63. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/leaf_theme.toml.j2 +0 -0
  64. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/newt_colors.j2 +0 -0
  65. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/nvim_nightfox_theme.lua.j2 +0 -0
  66. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/omp.omp.json.j2 +0 -0
  67. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/opencode_theme.json.j2 +0 -0
  68. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/pi_theme.json.j2 +0 -0
  69. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/polybar_colors.ini.j2 +0 -0
  70. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/posting_theme.yaml.j2 +0 -0
  71. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/qutebrowser_github.user.js.j2 +0 -0
  72. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/qutebrowser_google.user.js.j2 +0 -0
  73. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/qutebrowser_hteam.user.js.j2 +0 -0
  74. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/qutebrowser_theme.py.j2 +0 -0
  75. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/rofi_theme.rasi.j2 +0 -0
  76. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/sshub_theme.toml.j2 +0 -0
  77. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/starship_block.toml.j2 +0 -0
  78. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/termux_colors.properties.j2 +0 -0
  79. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/tmux.conf.j2 +0 -0
  80. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/tuicr_theme.toml.j2 +0 -0
  81. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/wezterm_colors.lua.j2 +0 -0
  82. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/windhawk_taskbar.json.j2 +0 -0
  83. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/yazi_theme.toml.j2 +0 -0
  84. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman/templates/zen_theme.json.j2 +0 -0
  85. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/SOURCES.txt +0 -0
  86. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/dependency_links.txt +0 -0
  87. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/entry_points.txt +0 -0
  88. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/requires.txt +0 -0
  89. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/hueman_cli.egg-info/top_level.txt +0 -0
  90. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/pyproject.toml +0 -0
  91. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/requirements.txt +0 -0
  92. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/setup.cfg +0 -0
  93. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/conftest.py +0 -0
  94. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_atomic_writes.py +0 -0
  95. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_colors_and_cli.py +0 -0
  96. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_command_substitution.py +0 -0
  97. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_config_and_palettes.py +0 -0
  98. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_config_validation.py +0 -0
  99. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_config_vars.py +0 -0
  100. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_error_paths.py +0 -0
  101. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_file_source.py +0 -0
  102. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_idempotence.py +0 -0
  103. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_init_command.py +0 -0
  104. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_packaging.py +0 -0
  105. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_palette_names.py +0 -0
  106. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_real_config.py +0 -0
  107. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_reload_exit_codes.py +0 -0
  108. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_render.py +0 -0
  109. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_render_modes.py +0 -0
  110. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_sandbox.py +0 -0
  111. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_starship_marker.py +0 -0
  112. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_state_and_reload.py +0 -0
  113. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_state_branch.py +0 -0
  114. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_state_source_contract.py +0 -0
  115. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_sync_network.py +0 -0
  116. {hueman_cli-0.2.1 → hueman_cli-0.3.0}/tests/test_sync_status.py +0 -0
  117. {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",
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "0.2.1",
2
+ "tag": "0.3.0",
3
3
  "distance": 0,
4
- "node": "g69709fbf915cf68e7419e4bab92d554fe25c54bd",
4
+ "node": "g6540799a630af39408e080d4be793e9a164f929f",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-10-29"
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).
@@ -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