machineconfig 6.82__py3-none-any.whl → 8.51__py3-none-any.whl

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 (461) hide show
  1. machineconfig/cluster/remote/cloud_manager.py +1 -1
  2. machineconfig/cluster/remote/run_cluster.py +1 -1
  3. machineconfig/cluster/remote/run_remote.py +1 -1
  4. machineconfig/cluster/sessions_managers/utils/maker.py +29 -15
  5. machineconfig/cluster/sessions_managers/wt_local.py +17 -222
  6. machineconfig/cluster/sessions_managers/wt_local_manager.py +56 -194
  7. machineconfig/cluster/sessions_managers/wt_remote_manager.py +42 -198
  8. machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
  9. machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
  10. machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
  11. machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
  12. machineconfig/cluster/sessions_managers/zellij_local.py +1 -1
  13. machineconfig/cluster/sessions_managers/zellij_local_manager.py +4 -2
  14. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +3 -2
  15. machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +2 -2
  16. machineconfig/jobs/installer/checks/check_installations.py +133 -0
  17. machineconfig/jobs/installer/checks/install_utils.py +132 -0
  18. machineconfig/jobs/installer/checks/report_utils.py +39 -0
  19. machineconfig/jobs/installer/checks/vt_utils.py +89 -0
  20. machineconfig/jobs/installer/installer_data.json +1500 -310
  21. machineconfig/jobs/installer/linux_scripts/docker.sh +6 -9
  22. machineconfig/jobs/installer/linux_scripts/q.sh +10 -7
  23. machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
  24. machineconfig/jobs/installer/package_groups.py +62 -91
  25. machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
  26. machineconfig/jobs/installer/{custom → python_scripts}/boxes.py +2 -3
  27. machineconfig/jobs/installer/{custom_dev → python_scripts}/brave.py +5 -3
  28. machineconfig/jobs/installer/python_scripts/cloudflare_warp_cli.py +23 -0
  29. machineconfig/jobs/installer/{custom_dev → python_scripts}/code.py +14 -9
  30. machineconfig/jobs/installer/{custom_dev → python_scripts}/dubdb_adbc.py +1 -1
  31. machineconfig/jobs/installer/python_scripts/hx.py +214 -0
  32. machineconfig/jobs/installer/{custom_dev → python_scripts}/nerdfont.py +2 -2
  33. machineconfig/jobs/installer/{custom_dev → python_scripts}/nerfont_windows_helper.py +32 -26
  34. machineconfig/jobs/installer/python_scripts/sysabc.py +145 -0
  35. machineconfig/jobs/installer/{custom_dev → python_scripts}/wezterm.py +2 -19
  36. machineconfig/jobs/installer/{custom_dev → python_scripts}/winget.py +10 -14
  37. machineconfig/jobs/installer/python_scripts/yazi.py +139 -0
  38. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nfs +0 -1
  39. machineconfig/jobs/scripts/powershell_scripts/cmatrix.ps1 +52 -0
  40. machineconfig/jobs/scripts/powershell_scripts/mount_ssh.ps1 +13 -0
  41. machineconfig/jobs/scripts/powershell_scripts/obs.ps1 +4 -0
  42. machineconfig/jobs/scripts_dynamic/a.py +428 -0
  43. machineconfig/logger.py +1 -2
  44. machineconfig/profile/create_helper.py +56 -18
  45. machineconfig/profile/create_links.py +79 -21
  46. machineconfig/profile/create_links_export.py +87 -36
  47. machineconfig/profile/create_shell_profile.py +92 -127
  48. machineconfig/profile/mapper_data.toml +45 -0
  49. machineconfig/profile/mapper_dotfiles.toml +249 -0
  50. machineconfig/scripts/__init__.py +0 -4
  51. machineconfig/scripts/linux/wrap_mcfg +46 -0
  52. machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
  53. machineconfig/scripts/python/agents.py +85 -165
  54. machineconfig/scripts/python/ai/initai.py +4 -2
  55. machineconfig/scripts/python/ai/scripts/__init__.py +1 -0
  56. machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
  57. machineconfig/scripts/python/ai/{command_runner → scripts}/command_runner.sh +1 -1
  58. machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +2 -0
  59. machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +8 -6
  60. machineconfig/scripts/python/ai/solutions/claude/claude.py +1 -1
  61. machineconfig/scripts/python/ai/solutions/cline/cline.py +1 -1
  62. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Thinking-Beast-Mode.chatmode.md → agents/Thinking-Beast-Mode.agent.md} +0 -1
  63. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md → agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md} +0 -1
  64. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/deepResearch.chatmode.md → agents/deepResearch.agent.md} +2 -2
  65. machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +6 -6
  66. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +33 -0
  67. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
  68. machineconfig/scripts/python/ai/solutions/crush/crush.py +1 -1
  69. machineconfig/scripts/python/ai/solutions/cursor/cursors.py +1 -1
  70. machineconfig/scripts/python/ai/solutions/gemini/gemini.py +1 -1
  71. machineconfig/scripts/python/ai/solutions/gemini/settings.json +3 -0
  72. machineconfig/scripts/python/ai/{generate_files.py → utils/generate_files.py} +2 -2
  73. machineconfig/scripts/python/ai/{solutions → utils}/generic.py +2 -15
  74. machineconfig/scripts/python/ai/{vscode_tasks.py → utils/vscode_tasks.py} +13 -5
  75. machineconfig/scripts/python/cloud.py +58 -11
  76. machineconfig/scripts/python/croshell.py +10 -162
  77. machineconfig/scripts/python/devops.py +73 -36
  78. machineconfig/scripts/python/devops_navigator.py +16 -6
  79. machineconfig/scripts/python/fire_jobs.py +8 -222
  80. machineconfig/scripts/python/ftpx.py +7 -200
  81. machineconfig/scripts/python/graph/cli_graph.json +8743 -0
  82. machineconfig/scripts/python/{env_manager → helper_env}/path_manager_tui.py +2 -2
  83. machineconfig/scripts/python/helpers/helper_env/env_manager_tui.py +204 -0
  84. machineconfig/scripts/python/helpers/helper_env/path_manager_tui.py +228 -0
  85. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/agentic_frameworks/fire_crush.json +1 -1
  86. machineconfig/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_crush.py +39 -0
  87. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/agentic_frameworks/fire_cursor_agents.py +3 -4
  88. machineconfig/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_gemini.py +55 -0
  89. machineconfig/scripts/python/helpers/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
  90. machineconfig/scripts/python/helpers/helpers_agents/agents_impl.py +168 -0
  91. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/fire_agents_help_launch.py +38 -16
  92. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/fire_agents_helper_types.py +11 -14
  93. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/aichat/config.yaml +5 -0
  94. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/aider/.aider.conf.yml +2 -0
  95. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/copilot/config.yml +1 -0
  96. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/crush/crush.json +10 -0
  97. machineconfig/scripts/python/helpers/helpers_agents/privacy/configs/gemini/settings.json +12 -0
  98. machineconfig/scripts/python/helpers/helpers_agents/privacy/privacy.py +109 -0
  99. machineconfig/scripts/python/helpers/helpers_agents/templates/prompt.txt +10 -0
  100. machineconfig/scripts/python/helpers/helpers_agents/templates/template.sh +34 -0
  101. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_copy.py +32 -25
  102. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_mount.py +29 -22
  103. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_sync.py +9 -8
  104. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/helpers2.py +1 -1
  105. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/crosh.py +3 -3
  106. machineconfig/scripts/python/helpers/helpers_croshell/croshell_impl.py +225 -0
  107. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/scheduler.py +4 -4
  108. machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/start_slidev.py +12 -12
  109. machineconfig/scripts/python/helpers/helpers_devops/backup_config.py +149 -0
  110. machineconfig/scripts/python/helpers/helpers_devops/cli_backup_retrieve.py +262 -0
  111. machineconfig/scripts/python/helpers/helpers_devops/cli_config.py +98 -0
  112. machineconfig/scripts/python/helpers/helpers_devops/cli_config_dotfile.py +274 -0
  113. machineconfig/scripts/python/helpers/helpers_devops/cli_data.py +67 -0
  114. machineconfig/scripts/python/helpers/helpers_devops/cli_nw.py +201 -0
  115. machineconfig/scripts/python/helpers/helpers_devops/cli_repos.py +274 -0
  116. machineconfig/scripts/python/helpers/helpers_devops/cli_self.py +197 -0
  117. machineconfig/scripts/python/helpers/helpers_devops/cli_share_file.py +151 -0
  118. machineconfig/scripts/python/helpers/helpers_devops/cli_share_server.py +125 -0
  119. machineconfig/scripts/python/{helpers_devops/cli_terminal.py → helpers/helpers_devops/cli_share_terminal.py} +26 -22
  120. machineconfig/scripts/python/helpers/helpers_devops/cli_ssh.py +167 -0
  121. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/devops_status.py +17 -23
  122. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/devops_update_repos.py +1 -1
  123. machineconfig/scripts/python/{interactive.py → helpers/helpers_devops/interactive.py} +78 -71
  124. machineconfig/scripts/python/helpers/helpers_devops/run_script.py +197 -0
  125. machineconfig/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.ps1 +41 -0
  126. machineconfig/scripts/python/helpers/helpers_devops/themes/choose_starship_theme.sh +48 -0
  127. machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/themes/choose_wezterm_theme.py +4 -4
  128. machineconfig/scripts/python/{helpers_fire/helpers4.py → helpers/helpers_fire_command/file_wrangler.py} +57 -20
  129. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/fire_jobs_args_helper.py +1 -0
  130. machineconfig/scripts/python/helpers/helpers_fire_command/fire_jobs_impl.py +233 -0
  131. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/fire_jobs_route_helper.py +26 -16
  132. machineconfig/scripts/python/helpers/helpers_msearch/__init__.py +5 -0
  133. machineconfig/scripts/python/helpers/helpers_msearch/msearch_impl.py +248 -0
  134. machineconfig/scripts/{linux → python/helpers/helpers_msearch/scripts_linux}/fzfg +6 -5
  135. machineconfig/scripts/python/helpers/helpers_msearch/scripts_linux/search_with_context.sh +48 -0
  136. machineconfig/scripts/python/helpers/helpers_msearch/scripts_windows/fzfg.ps1 +59 -0
  137. machineconfig/scripts/python/helpers/helpers_navigator/__init__.py +20 -0
  138. machineconfig/scripts/python/helpers/helpers_navigator/cli_graph_loader.py +234 -0
  139. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/command_builder.py +61 -13
  140. machineconfig/scripts/python/helpers/helpers_navigator/command_detail.py +153 -0
  141. machineconfig/scripts/python/helpers/helpers_navigator/command_tree.py +45 -0
  142. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/data_models.py +18 -11
  143. machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/main_app.py +5 -5
  144. machineconfig/scripts/python/helpers/helpers_network/address.py +174 -0
  145. machineconfig/scripts/python/helpers/helpers_network/address_switch.py +78 -0
  146. machineconfig/scripts/python/helpers/helpers_network/ftpx_impl.py +276 -0
  147. machineconfig/scripts/python/{nw → helpers/helpers_network}/mount_nfs.py +2 -2
  148. machineconfig/scripts/python/{nw → helpers/helpers_network}/mount_ssh.py +3 -3
  149. machineconfig/scripts/python/helpers/helpers_network/ssh_add_identity.py +73 -0
  150. machineconfig/scripts/python/helpers/helpers_network/ssh_add_ssh_key.py +175 -0
  151. machineconfig/scripts/python/helpers/helpers_network/ssh_debug_linux.py +319 -0
  152. machineconfig/scripts/python/helpers/helpers_network/ssh_debug_windows.py +275 -0
  153. machineconfig/scripts/python/{nw → helpers/helpers_network}/wifi_conn.py +1 -53
  154. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/action.py +3 -3
  155. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/action_helper.py +3 -3
  156. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/clone.py +0 -1
  157. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/cloud_repo_sync.py +159 -48
  158. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/grource.py +4 -3
  159. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/record.py +33 -12
  160. machineconfig/scripts/python/helpers/helpers_repos/repo_analyzer_1.py +160 -0
  161. machineconfig/scripts/python/{helpers_repos/count_lines.py → helpers/helpers_repos/repo_analyzer_2.py} +156 -191
  162. machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/update.py +0 -6
  163. machineconfig/scripts/python/helpers/helpers_search/ast_search.py +74 -0
  164. machineconfig/scripts/python/helpers/helpers_search/qr_code.py +166 -0
  165. machineconfig/scripts/python/helpers/helpers_search/repo_rag.py +325 -0
  166. machineconfig/scripts/python/helpers/helpers_search/script_help.py +81 -0
  167. machineconfig/scripts/python/helpers/helpers_search/symantic_search.py +25 -0
  168. machineconfig/scripts/python/helpers/helpers_sessions/__init__.py +0 -0
  169. machineconfig/scripts/python/helpers/helpers_sessions/sessions_impl.py +186 -0
  170. machineconfig/scripts/python/{helpers_sessions → helpers/helpers_sessions}/sessions_multiprocess.py +20 -14
  171. machineconfig/scripts/python/helpers/helpers_terminal/__init__.py +0 -0
  172. machineconfig/scripts/python/helpers/helpers_terminal/terminal_impl.py +96 -0
  173. machineconfig/scripts/python/helpers/helpers_utils/download.py +150 -0
  174. machineconfig/scripts/python/helpers/helpers_utils/pdf.py +96 -0
  175. machineconfig/scripts/python/helpers/helpers_utils/python.py +210 -0
  176. machineconfig/scripts/python/helpers/helpers_utils/specs.py +246 -0
  177. machineconfig/scripts/python/mcfg_entry.py +143 -0
  178. machineconfig/scripts/python/msearch.py +26 -0
  179. machineconfig/scripts/python/sessions.py +69 -135
  180. machineconfig/scripts/python/terminal.py +58 -0
  181. machineconfig/scripts/python/utils.py +115 -38
  182. machineconfig/scripts/windows/wrap_mcfg.ps1 +63 -0
  183. machineconfig/settings/atuin/config.toml +294 -0
  184. machineconfig/settings/atuin/themes/catppuccin-mocha-mauve.toml +12 -0
  185. machineconfig/settings/broot/conf.toml +1 -1
  186. machineconfig/settings/helix/config.toml +16 -0
  187. machineconfig/settings/helix/languages.toml +13 -4
  188. machineconfig/settings/helix/yazi-picker.sh +12 -0
  189. machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
  190. machineconfig/settings/lf/linux/exe/previewer.sh +3 -2
  191. machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
  192. machineconfig/settings/lf/windows/lfrc +14 -16
  193. machineconfig/settings/linters/.ruff.toml +2 -1
  194. machineconfig/settings/marimo/marimo.toml +1 -1
  195. machineconfig/settings/marimo/snippets/globalize.py +34 -0
  196. machineconfig/settings/mprocs/windows/mprocs.yaml +2 -2
  197. machineconfig/settings/shells/bash/init.sh +47 -12
  198. machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
  199. machineconfig/settings/shells/nushell/config.nu +25 -33
  200. machineconfig/settings/shells/nushell/env.nu +21 -8
  201. machineconfig/settings/shells/nushell/init.nu +138 -0
  202. machineconfig/settings/shells/pwsh/init.ps1 +111 -17
  203. machineconfig/settings/shells/pwsh/search_pwsh_history.ps1 +99 -0
  204. machineconfig/settings/shells/starship/starship.toml +16 -0
  205. machineconfig/settings/shells/wezterm/wezterm.lua +6 -1
  206. machineconfig/settings/shells/wt/settings.json +27 -18
  207. machineconfig/settings/shells/zsh/init.sh +42 -23
  208. machineconfig/settings/television/cable_unix/alias.toml +8 -0
  209. machineconfig/settings/television/cable_unix/aws-buckets.toml +14 -0
  210. machineconfig/settings/television/cable_unix/aws-instances.toml +13 -0
  211. machineconfig/settings/television/cable_unix/bash-history.toml +8 -0
  212. machineconfig/settings/television/cable_unix/channels.toml +19 -0
  213. machineconfig/settings/television/cable_unix/dirs.toml +13 -0
  214. machineconfig/settings/television/cable_unix/distrobox-list.toml +42 -0
  215. machineconfig/settings/television/cable_unix/docker-images.toml +13 -0
  216. machineconfig/settings/television/cable_unix/dotfiles.toml +11 -0
  217. machineconfig/settings/television/cable_unix/env.toml +17 -0
  218. machineconfig/settings/television/cable_unix/files.toml +11 -0
  219. machineconfig/settings/television/cable_unix/fish-history.toml +8 -0
  220. machineconfig/settings/television/cable_unix/git-branch.toml +11 -0
  221. machineconfig/settings/television/cable_unix/git-diff.toml +10 -0
  222. machineconfig/settings/television/cable_unix/git-log.toml +12 -0
  223. machineconfig/settings/television/cable_unix/git-reflog.toml +12 -0
  224. machineconfig/settings/television/cable_unix/git-repos.toml +16 -0
  225. machineconfig/settings/television/cable_unix/guix.toml +20 -0
  226. machineconfig/settings/television/cable_unix/just-recipes.toml +18 -0
  227. machineconfig/settings/television/cable_unix/k8s-deployments.toml +36 -0
  228. machineconfig/settings/television/cable_unix/k8s-pods.toml +50 -0
  229. machineconfig/settings/television/cable_unix/k8s-services.toml +36 -0
  230. machineconfig/settings/television/cable_unix/man-pages.toml +24 -0
  231. machineconfig/settings/television/cable_unix/nu-history.toml +7 -0
  232. machineconfig/settings/television/cable_unix/procs.toml +20 -0
  233. machineconfig/settings/television/cable_unix/text.toml +17 -0
  234. machineconfig/settings/television/cable_unix/tldr.toml +18 -0
  235. machineconfig/settings/television/cable_unix/zsh-history.toml +9 -0
  236. machineconfig/settings/television/cable_windows/alias.toml +7 -0
  237. machineconfig/settings/television/cable_windows/dirs.toml +13 -0
  238. machineconfig/settings/television/cable_windows/docker-images.toml +13 -0
  239. machineconfig/settings/television/cable_windows/dotfiles.toml +11 -0
  240. machineconfig/settings/television/cable_windows/env.toml +17 -0
  241. machineconfig/settings/television/cable_windows/files.toml +14 -0
  242. machineconfig/settings/television/cable_windows/git-branch.toml +11 -0
  243. machineconfig/settings/television/cable_windows/git-diff.toml +10 -0
  244. machineconfig/settings/television/cable_windows/git-log.toml +11 -0
  245. machineconfig/settings/television/cable_windows/git-reflog.toml +11 -0
  246. machineconfig/settings/television/cable_windows/git-repos.toml +15 -0
  247. machineconfig/settings/television/cable_windows/nu-history.toml +7 -0
  248. machineconfig/settings/television/cable_windows/pwsh-history.toml +6 -0
  249. machineconfig/settings/television/cable_windows/text.toml +17 -0
  250. machineconfig/settings/tv/config.toml +234 -0
  251. machineconfig/settings/tv/themes/catppuccin-mocha-sky.toml +22 -0
  252. machineconfig/settings/wsl/.wslconfig +5 -30
  253. machineconfig/settings/wt/__init__.py +0 -0
  254. machineconfig/settings/yazi/init.lua +61 -0
  255. machineconfig/settings/yazi/keymap_linux.toml +94 -0
  256. machineconfig/settings/yazi/keymap_windows.toml +78 -0
  257. machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
  258. machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
  259. machineconfig/settings/yazi/theme.toml +4 -0
  260. machineconfig/settings/yazi/yazi_linux.toml +94 -0
  261. machineconfig/settings/yazi/yazi_windows.toml +58 -0
  262. machineconfig/settings/zellij/layouts/st.kdl +40 -9
  263. machineconfig/settings/zellij/layouts/st2.kdl +1 -1
  264. machineconfig/setup_linux/__init__.py +2 -2
  265. machineconfig/setup_linux/apps_desktop.sh +8 -27
  266. machineconfig/setup_linux/web_shortcuts/interactive.sh +27 -12
  267. machineconfig/setup_linux/web_shortcuts/live_from_github.sh +34 -0
  268. machineconfig/setup_mac/__init__.py +1 -4
  269. machineconfig/setup_mac/apps_gui.sh +248 -0
  270. machineconfig/setup_windows/__init__.py +2 -5
  271. machineconfig/setup_windows/uv.ps1 +8 -1
  272. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +28 -12
  273. machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +31 -0
  274. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
  275. machineconfig/type_hinting/sql/__init__.py +1 -0
  276. machineconfig/type_hinting/sql/base.py +216 -0
  277. machineconfig/type_hinting/sql/core_schema.py +64 -0
  278. machineconfig/type_hinting/sql/core_schema_typeddict.py +41 -0
  279. machineconfig/type_hinting/sql/typeddict_codegen.py +222 -0
  280. machineconfig/type_hinting/typedict/__init__.py +1 -0
  281. machineconfig/type_hinting/typedict/ast_utils.py +130 -0
  282. machineconfig/type_hinting/typedict/generator_helpers.py +319 -0
  283. machineconfig/type_hinting/typedict/generators.py +231 -0
  284. machineconfig/type_hinting/typedict/polars_schema.py +24 -0
  285. machineconfig/type_hinting/typedict/polars_schema_typeddict.py +63 -0
  286. machineconfig/utils/accessories.py +31 -4
  287. machineconfig/utils/code.py +163 -51
  288. machineconfig/utils/files/ascii_art.py +11 -15
  289. machineconfig/utils/files/headers.py +6 -7
  290. machineconfig/utils/files/read.py +8 -1
  291. machineconfig/utils/installer_utils/github_release_bulk.py +95 -138
  292. machineconfig/utils/installer_utils/github_release_scraper.py +99 -0
  293. machineconfig/utils/installer_utils/install_from_url.py +183 -0
  294. machineconfig/utils/installer_utils/installer_class.py +53 -102
  295. machineconfig/utils/installer_utils/installer_cli.py +161 -0
  296. machineconfig/utils/installer_utils/installer_helper.py +129 -0
  297. machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +42 -91
  298. machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +20 -65
  299. machineconfig/utils/io.py +94 -9
  300. machineconfig/utils/links.py +56 -38
  301. machineconfig/utils/meta.py +38 -21
  302. machineconfig/utils/options.py +81 -23
  303. machineconfig/utils/options_utils/__init__.py +0 -0
  304. machineconfig/utils/options_utils/options_tv_linux.py +211 -0
  305. machineconfig/utils/options_utils/options_tv_windows.py +88 -0
  306. machineconfig/utils/options_utils/tv_options.py +37 -0
  307. machineconfig/utils/path_extended.py +52 -102
  308. machineconfig/utils/path_helper.py +76 -23
  309. machineconfig/utils/procs.py +1 -1
  310. machineconfig/utils/scheduler.py +26 -53
  311. machineconfig/utils/scheduling.py +0 -2
  312. machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
  313. machineconfig/utils/schemas/layouts/layout_types.py +1 -1
  314. machineconfig/utils/source_of_truth.py +6 -1
  315. machineconfig/utils/ssh.py +216 -419
  316. machineconfig/utils/ssh_utils/abc.py +5 -0
  317. machineconfig/utils/ssh_utils/copy_from_here.py +116 -0
  318. machineconfig/utils/ssh_utils/copy_to_here.py +303 -0
  319. machineconfig/utils/ssh_utils/utils.py +158 -0
  320. machineconfig/utils/ssh_utils/wsl.py +147 -0
  321. machineconfig/utils/ssh_utils/wsl_helper.py +217 -0
  322. machineconfig/utils/terminal.py +1 -0
  323. machineconfig/utils/upgrade_packages.py +107 -35
  324. machineconfig/utils/ve.py +12 -4
  325. machineconfig-8.51.dist-info/METADATA +140 -0
  326. machineconfig-8.51.dist-info/RECORD +543 -0
  327. {machineconfig-6.82.dist-info → machineconfig-8.51.dist-info}/entry_points.txt +4 -1
  328. machineconfig/jobs/installer/check_installations.py +0 -248
  329. machineconfig/jobs/installer/custom/hx.py +0 -140
  330. machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
  331. machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
  332. machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -12
  333. machineconfig/jobs/installer/powershell_scripts/openssh-server_add_key.ps1 +0 -7
  334. machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1 +0 -14
  335. machineconfig/profile/backup.toml +0 -49
  336. machineconfig/profile/mapper.toml +0 -256
  337. machineconfig/scripts/linux/fzf2g +0 -21
  338. machineconfig/scripts/linux/fzfag +0 -17
  339. machineconfig/scripts/linux/fzffg +0 -25
  340. machineconfig/scripts/linux/fzfrga +0 -21
  341. machineconfig/scripts/linux/mcfgs +0 -38
  342. machineconfig/scripts/linux/other/share_smb +0 -1
  343. machineconfig/scripts/linux/other/switch_ip +0 -20
  344. machineconfig/scripts/linux/skrg +0 -4
  345. machineconfig/scripts/linux/warp-cli.sh +0 -122
  346. machineconfig/scripts/linux/z_ls +0 -104
  347. machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -9
  348. machineconfig/scripts/python/helpers_devops/cli_config.py +0 -120
  349. machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +0 -77
  350. machineconfig/scripts/python/helpers_devops/cli_data.py +0 -25
  351. machineconfig/scripts/python/helpers_devops/cli_nw.py +0 -73
  352. machineconfig/scripts/python/helpers_devops/cli_repos.py +0 -181
  353. machineconfig/scripts/python/helpers_devops/cli_self.py +0 -122
  354. machineconfig/scripts/python/helpers_devops/cli_share_server.py +0 -104
  355. machineconfig/scripts/python/helpers_devops/cli_utils.py +0 -221
  356. machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +0 -80
  357. machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +0 -3
  358. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -37
  359. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -44
  360. machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -43
  361. machineconfig/scripts/python/helpers_fire/prompt.txt +0 -2
  362. machineconfig/scripts/python/helpers_fire/template.sh +0 -15
  363. machineconfig/scripts/python/helpers_navigator/__init__.py +0 -20
  364. machineconfig/scripts/python/helpers_navigator/command_detail.py +0 -44
  365. machineconfig/scripts/python/helpers_navigator/command_tree.py +0 -588
  366. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -17
  367. machineconfig/scripts/python/helpers_repos/entrypoint.py +0 -76
  368. machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -15
  369. machineconfig/scripts/python/mcfg.py +0 -48
  370. machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
  371. machineconfig/scripts/python/nw/devops_add_identity.py +0 -82
  372. machineconfig/scripts/python/nw/devops_add_ssh_key.py +0 -134
  373. machineconfig/scripts/python/nw/ssh_debug_linux.py +0 -391
  374. machineconfig/scripts/python/nw/ssh_debug_windows.py +0 -338
  375. machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -66
  376. machineconfig/scripts/windows/fzfb.ps1 +0 -3
  377. machineconfig/scripts/windows/fzfg.ps1 +0 -2
  378. machineconfig/scripts/windows/fzfrga.bat +0 -20
  379. machineconfig/scripts/windows/mcfgs.ps1 +0 -17
  380. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +0 -13
  381. machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
  382. machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -6
  383. machineconfig/settings/lf/windows/tst.ps1 +0 -1
  384. machineconfig/settings/yazi/yazi.toml +0 -4
  385. machineconfig/setup_linux/apps.sh +0 -66
  386. machineconfig/setup_linux/others/cli_installation.sh +0 -137
  387. machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -30
  388. machineconfig/setup_linux/ssh/openssh_all.sh +0 -25
  389. machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -38
  390. machineconfig/setup_mac/apps.sh +0 -73
  391. machineconfig/setup_mac/ssh/openssh_setup.sh +0 -114
  392. machineconfig/setup_windows/apps.ps1 +0 -62
  393. machineconfig/setup_windows/others/obs.ps1 +0 -4
  394. machineconfig/setup_windows/ssh/add-sshkey.ps1 +0 -29
  395. machineconfig/setup_windows/ssh/add_identity.ps1 +0 -11
  396. machineconfig/setup_windows/ssh/openssh-server.ps1 +0 -37
  397. machineconfig/utils/installer_utils/installer.py +0 -225
  398. machineconfig/utils/tst.py +0 -20
  399. machineconfig-6.82.dist-info/METADATA +0 -82
  400. machineconfig-6.82.dist-info/RECORD +0 -441
  401. machineconfig/jobs/installer/{custom_dev → checks}/__init__.py +0 -0
  402. machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
  403. machineconfig/{scripts/python/helpers_cloud → jobs/installer/python_scripts}/__init__.py +0 -0
  404. machineconfig/jobs/installer/{custom_dev → python_scripts}/alacritty.py +0 -0
  405. machineconfig/jobs/installer/{custom_dev → python_scripts}/bypass_paywall.py +0 -0
  406. machineconfig/jobs/installer/{custom_dev → python_scripts}/cursor.py +0 -0
  407. machineconfig/jobs/installer/{custom_dev → python_scripts}/espanso.py +0 -0
  408. machineconfig/jobs/installer/{custom → python_scripts}/gh.py +0 -0
  409. machineconfig/jobs/installer/{custom_dev → python_scripts}/goes.py +0 -0
  410. machineconfig/jobs/installer/{custom_dev → python_scripts}/lvim.py +0 -0
  411. machineconfig/jobs/installer/{custom_dev → python_scripts}/redis.py +0 -0
  412. machineconfig/{setup_linux/others → jobs/scripts/bash_scripts}/android.sh +0 -0
  413. machineconfig/jobs/{installer/linux_scripts → scripts/bash_scripts}/lid.sh +0 -0
  414. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_drive +0 -0
  415. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nw_drive +0 -0
  416. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_smb +0 -0
  417. machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_cloud.sh +0 -0
  418. machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_nfs +0 -0
  419. machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/start_docker +0 -0
  420. machineconfig/{scripts → jobs/scripts/powershell_scripts}/Restore-ThunderbirdProfile.ps1 +0 -0
  421. machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/docker.ps1 +0 -0
  422. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nfs.ps1 +0 -0
  423. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nw.ps1 +0 -0
  424. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_smb.ps1 +0 -0
  425. machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/power_options.ps1 +0 -0
  426. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_cloud.cmd +0 -0
  427. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_smb.ps1 +0 -0
  428. machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/unlock_bitlocker.ps1 +0 -0
  429. machineconfig/scripts/python/{helpers_croshell → ai/utils}/__init__.py +0 -0
  430. machineconfig/scripts/python/ai/{solutions/_shared.py → utils/shared.py} +0 -0
  431. machineconfig/scripts/python/{helpers_devops → graph}/__init__.py +0 -0
  432. machineconfig/scripts/python/{helpers_devops/themes → helpers}/__init__.py +0 -0
  433. machineconfig/scripts/python/{env_manager → helpers/helper_env}/__init__.py +0 -0
  434. machineconfig/scripts/python/{env_manager → helpers/helper_env}/path_manager_backend.py +0 -0
  435. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/__init__.py +0 -0
  436. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/agentic_frameworks/__init__.py +0 -0
  437. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/fire_agents_help_search.py +0 -0
  438. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents}/fire_agents_load_balancer.py +0 -0
  439. machineconfig/scripts/python/{helpers_fire → helpers/helpers_agents/templates}/template.ps1 +0 -0
  440. machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_cloud}/__init__.py +0 -0
  441. machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/cloud_helpers.py +1 -1
  442. /machineconfig/scripts/python/{helpers_cloud → helpers/helpers_cloud}/helpers5.py +0 -0
  443. /machineconfig/scripts/python/{helpers_sessions → helpers/helpers_croshell}/__init__.py +0 -0
  444. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/pomodoro.py +0 -0
  445. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/viewer.py +0 -0
  446. /machineconfig/scripts/python/{helpers_croshell → helpers/helpers_croshell}/viewer_template.py +0 -0
  447. /machineconfig/scripts/python/{nw → helpers/helpers_devops}/__init__.py +0 -0
  448. /machineconfig/{setup_windows/wt_and_pwsh → scripts/python/helpers/helpers_devops/themes}/__init__.py +0 -0
  449. /machineconfig/scripts/python/{helpers_devops → helpers/helpers_devops}/themes/choose_pwsh_theme.ps1 +0 -0
  450. /machineconfig/scripts/python/{helpers_devops/themes/choose_starship_theme.ps1 → helpers/helpers_fire_command/__init__.py} +0 -0
  451. /machineconfig/scripts/python/{helpers_fire_command → helpers/helpers_fire_command}/cloud_manager.py +0 -0
  452. /machineconfig/scripts/python/{helpers_fire_command/fire_jobs_streamlit_helper.py → helpers/helpers_fire_command/f.py} +0 -0
  453. /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers/helpers_fire_command/fire_jobs_streamlit_helper.py} +0 -0
  454. /machineconfig/scripts/python/{helpers_navigator → helpers/helpers_navigator}/search_bar.py +0 -0
  455. /machineconfig/{settings/yazi/keymap.toml → scripts/python/helpers/helpers_network/__init__.py} +0 -0
  456. /machineconfig/scripts/python/{nw → helpers/helpers_network}/mount_nw_drive.py +0 -0
  457. /machineconfig/scripts/python/{nw → helpers/helpers_network}/onetimeshare.py +0 -0
  458. /machineconfig/scripts/python/{helpers_repos → helpers/helpers_repos}/sync.py +0 -0
  459. /machineconfig/{setup_windows/wt_and_pwsh → settings/wt}/set_wt_settings.py +0 -0
  460. {machineconfig-6.82.dist-info → machineconfig-8.51.dist-info}/WHEEL +0 -0
  461. {machineconfig-6.82.dist-info → machineconfig-8.51.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,58 @@
1
+ import typer
2
+ from typing import Annotated
3
+
4
+
5
+ def choose_zellij_session(
6
+ name: Annotated[str | None, typer.Argument(help="Name of the Zellij session to attach to. If not provided, a list will be shown to choose from.")] = None,
7
+ new_session: Annotated[bool, typer.Option("--new-session", "-n", help="Create a new Zellij session instead of attaching to an existing one.", show_default=True)] = False,
8
+ kill_all: Annotated[bool, typer.Option("--kill-all", "-k", help="Kill all existing Zellij sessions before creating a new one.", show_default=True)] = False) -> None:
9
+ """Choose a Zellij session to attach to."""
10
+ from machineconfig.scripts.python.helpers.helpers_terminal.terminal_impl import choose_zellij_session as impl
11
+ action, payload = impl(name=name, new_session=new_session, kill_all=kill_all)
12
+ if action == "error":
13
+ typer.echo(payload, err=True, color=True)
14
+ raise typer.Exit()
15
+ if action == "run_script" and payload:
16
+ from machineconfig.utils.code import exit_then_run_shell_script
17
+ exit_then_run_shell_script(payload, strict=True)
18
+
19
+
20
+ def get_session_tabs() -> list[tuple[str, str]]:
21
+ """Get all Zellij session tabs."""
22
+ from machineconfig.scripts.python.helpers.helpers_terminal.terminal_impl import get_session_tabs as impl
23
+ result = impl()
24
+ print(result)
25
+ return result
26
+
27
+
28
+ def start_wt(layout_name: Annotated[str, typer.Argument(help="Layout name to start.")]) -> None:
29
+ """Start a Windows Terminal layout by name."""
30
+ from machineconfig.scripts.python.helpers.helpers_terminal.terminal_impl import start_wt as impl
31
+ status, message = impl(layout_name=layout_name)
32
+ if status == "error":
33
+ typer.echo(message)
34
+ raise typer.Exit(code=1)
35
+ # cmd = f'powershell -ExecutionPolicy Bypass -File "./{layout_name}_layout.ps1"'
36
+ # from machineconfig.utils.code import exit_then_run_shell_script
37
+ # exit_then_run_shell_script(cmd, strict=True)
38
+
39
+
40
+ def get_app():
41
+ app = typer.Typer(help="🖥️ Terminal utilities", no_args_is_help=True, add_help_option=True, add_completion=False)
42
+ app.command(name="attach-to-zellij", no_args_is_help=False, help=choose_zellij_session.__doc__, short_help="[z] Choose a Zellij session to attach to")(choose_zellij_session)
43
+ app.command(name="z", hidden=True, no_args_is_help=False, help=choose_zellij_session.__doc__)(choose_zellij_session)
44
+
45
+ app.command(name="start-wt", no_args_is_help=True, help=start_wt.__doc__, short_help="[w] Start a Windows Terminal layout by name.")(start_wt)
46
+ app.command(name="w", hidden=True, no_args_is_help=True, help=start_wt.__doc__)(start_wt)
47
+
48
+ app.command(name="get-session-tabs", no_args_is_help=False, help=get_session_tabs.__doc__, short_help="[zt] Get all Zellij session tabs.")(get_session_tabs)
49
+ app.command(name="zt", hidden=True, no_args_is_help=False, help=get_session_tabs.__doc__)(get_session_tabs)
50
+ return app
51
+
52
+ def main():
53
+ app = get_app()
54
+ app()
55
+
56
+
57
+ if __name__ == "__main__":
58
+ main()
@@ -1,65 +1,142 @@
1
+ """Utility commands - lazy loading subcommands."""
1
2
 
2
-
3
- from machineconfig.scripts.python.helpers_devops.cli_utils import download, merge_pdfs, get_machine_specs, init_project, compress_pdf
4
3
  import typer
5
- from typing import Annotated, Optional
6
- from pathlib import Path
4
+ from typing import Annotated, Optional, Literal
7
5
 
8
6
 
9
- def kill_process(
10
- # name: Annotated[Optional[str], typer.Option(..., "--name", "-n", help="Name of the process to kill")],
11
- # command: Annotated[str, typer.Option(..., "--command", "-c", help="Match by command line instead of process name")] = "",
12
- interactive: Annotated[bool, typer.Option(..., "--interactive", "-i", help="Interactively choose the process to kill")] = True):
7
+ def kill_process(interactive: Annotated[bool, typer.Option(..., "--interactive", "-i", help="Interactively choose the process to kill")] = True) -> None:
8
+ """⚔️ Choose a process to kill."""
13
9
  from machineconfig.utils.procs import main, ProcessManager
14
10
  if interactive:
15
11
  main()
16
12
  return
17
13
  _ = ProcessManager
18
- # pm = ProcessManager()
19
- # if command:
20
- # pm.filter_and_kill(name=command
21
- # )
22
14
 
23
15
 
24
- def add_dev_packages(repo_dir: Annotated[Optional[str], typer.Option(..., "--repo-dir", "-r", help="Path to the repository root directory")] = None):
25
- if repo_dir is None:
26
- r_dir = Path.cwd()
27
- else:
28
- r_dir = Path(repo_dir).resolve()
29
- if not r_dir.exists() or not r_dir.is_dir() or not (r_dir / "pyproject.toml").exists():
30
- typer.echo(f" The provided repo directory `{r_dir}` is not valid or does not contain a `pyproject.toml` file.")
16
+ def upgrade_packages(root: Annotated[str, typer.Argument(help="Root directory of the project")] = ".") -> None:
17
+ """⬆️ Upgrade project dependencies."""
18
+ from machineconfig.utils.upgrade_packages import generate_uv_add_commands
19
+ from pathlib import Path
20
+ root_resolved = Path(root).expanduser().absolute().resolve()
21
+ generate_uv_add_commands(pyproject_path=root_resolved / "pyproject.toml", output_path=root_resolved / "pyproject_init.sh")
22
+ def tui_env(which: Annotated[Literal["PATH", "p", "ENV", "e"], typer.Argument(help="Which environment variable to display.")] = "ENV") -> None:
23
+ """📚 NAVIGATE ENV/PATH variable with TUI."""
24
+ from machineconfig.scripts.python.helpers.helpers_utils.python import tui_env as impl
25
+ impl(which=which)
26
+
27
+
28
+ def download(
29
+ url: Annotated[Optional[str], typer.Argument(..., help="The URL to download the file from.")] = None,
30
+ decompress: Annotated[bool, typer.Option(..., "--decompress", "-d", help="Decompress the file if it's an archive.")] = False,
31
+ output: Annotated[Optional[str], typer.Option("--output", "-o", help="The output file path.")] = None,
32
+ output_dir: Annotated[Optional[str], typer.Option("--output-dir", help="Directory to place the downloaded file in.")] = None,
33
+ ) -> None:
34
+ """⬇️ Download a file from a URL and optionally decompress it."""
35
+ from machineconfig.scripts.python.helpers.helpers_utils.download import download as impl
36
+ impl(url=url, decompress=decompress, output=output, output_dir=output_dir)
37
+
38
+
39
+ def get_machine_specs(hardware: Annotated[bool, typer.Option(..., "--hardware", "-h", help="Show compute capability")] = False) -> None:
40
+ """💻 Get machine specifications."""
41
+ from machineconfig.scripts.python.helpers.helpers_utils.python import get_machine_specs as impl
42
+ impl(hardware=hardware)
43
+
44
+
45
+ def type_hint(path: Annotated[str, typer.Argument(..., help="Path to file/project dir to type hint.")] = ".",
46
+ dependency: Annotated[Literal["self-contained", "import"], typer.Option(..., "--dependency", "-d", help="Generated file is self contained or performs imports")] = "self-contained"
47
+ ) -> None:
48
+ from machineconfig.type_hinting.typedict.generators import generate_names_file
49
+ from pathlib import Path
50
+ path_resolved = Path(path).resolve()
51
+ if not path_resolved.exists():
52
+ typer.echo(f"Error: The provided path '{path}' does not exist.", err=True)
31
53
  raise typer.Exit(code=1)
32
- command = f"""
33
- cd "{r_dir}" || exit 1
34
- uv add nbformat ipdb ipykernel ipython pylint pyright mypy pyrefly ty pytest
35
- """
36
- from machineconfig.utils.code import run_shell_script
37
- typer.echo(f"➡️ Installing dev packages in repo at `{r_dir}`...")
38
- run_shell_script(command)
39
- typer.echo(f"✅ Dev packages installed successfully in repo at `{r_dir}`.")
40
- # TODO: see upgrade packages.
54
+ if path_resolved.is_file():
55
+ modules = [path_resolved]
56
+ else:
57
+ if not (path_resolved / "pyproject.toml").exists():
58
+ typer.echo("Error: Provided directory path is not a project root (missing pyproject.toml).", err=True)
59
+ raise typer.Exit(code=1)
60
+ else:
61
+ modules = [file for file in path_resolved.rglob("dtypes.py") if ".venv" not in str(file)]
62
+ for input_file in modules:
63
+ print(f"Worked on: {input_file}")
64
+ output_file = input_file.parent.joinpath(f"{input_file.stem}_names.py")
65
+ generated_file = generate_names_file(input_file, output_file, search_paths=None, dependency=dependency)
66
+ print(f"Generated: {generated_file}")
67
+
68
+
69
+ def init_project(
70
+ name: Annotated[Optional[str], typer.Option("--name", "-n", help="Name of the project.")] = None,
71
+ tmp_dir: Annotated[bool, typer.Option("--tmp-dir", "-t", help="Use a temporary directory for the project initialization.")] = False,
72
+ python: Annotated[Literal["3.11", "3.12", "3.13", "3.14"], typer.Option("--python", "-p", help="Python sub version for the uv virtual environment.")] = "3.13",
73
+ libraries: Annotated[Optional[str], typer.Option("--libraries", "-l", help="Additional packages to include in the uv virtual environment (space separated).")] = None,
74
+ group: Annotated[Optional[str], typer.Option("--group", "-g", help="group of packages names (no separation) p:plot, t:types, l:linting, i:interactive, d:data")] = "p,t,l,i,d",
75
+ ) -> None:
76
+ """🚀 Initialize a project with a uv virtual environment and install dev packages."""
77
+ from machineconfig.scripts.python.helpers.helpers_utils.python import init_project as impl
78
+ impl(name=name, tmp_dir=tmp_dir, python=python, libraries=libraries, group=group)
41
79
 
42
80
 
81
+ def edit_file_with_hx(path: Annotated[Optional[str], typer.Argument(..., help="The root directory of the project to edit, or a file path.")] = None) -> None:
82
+ """✏️ Open a file in the default editor."""
83
+ from machineconfig.scripts.python.helpers.helpers_utils.python import edit_file_with_hx as impl
84
+ impl(path=path)
85
+
86
+
87
+ def merge_pdfs(
88
+ pdfs: Annotated[list[str], typer.Argument(..., help="Paths to the PDF files to merge.")],
89
+ output: Annotated[Optional[str], typer.Option("--output", "-o", help="Output merged PDF file path.")] = None,
90
+ compress: Annotated[bool, typer.Option("--compress", "-c", help="Compress the output PDF.")] = False,
91
+ ) -> None:
92
+ """📄 Merge two PDF files into one."""
93
+ from machineconfig.scripts.python.helpers.helpers_utils.pdf import merge_pdfs as impl
94
+ impl(pdfs=pdfs, output=output, compress=compress)
95
+
96
+
97
+ def compress_pdf(
98
+ pdf_input: Annotated[str, typer.Argument(..., help="Path to the input PDF file to compress.")],
99
+ output: Annotated[Optional[str], typer.Option("--output", "-o", help="Output compressed PDF file path.")] = None,
100
+ quality: Annotated[int, typer.Option("--quality", "-q", help="JPEG quality for image compression (0-100, 0=no change, 100=best).")] = 85,
101
+ image_dpi: Annotated[int, typer.Option("--image-dpi", "-d", help="Target DPI for image resampling.")] = 0,
102
+ compress_streams: Annotated[bool, typer.Option("--compress-streams", "-c", help="Compress uncompressed streams.")] = True,
103
+ use_objstms: Annotated[bool, typer.Option("--object-streams", "-s", help="Use object streams for additional compression.")] = True,
104
+ ) -> None:
105
+ """📦 Compress a PDF file."""
106
+ from machineconfig.scripts.python.helpers.helpers_utils.pdf import compress_pdf as impl
107
+ impl(pdf_input=pdf_input, output=output, quality=quality, image_dpi=image_dpi, compress_streams=compress_streams, use_objstms=use_objstms)
108
+
43
109
 
44
110
  def get_app() -> typer.Typer:
45
- app = typer.Typer(help="🛠️ utilities operations", no_args_is_help=True, add_help_option=False, add_completion=False)
46
- app.command(name="kill-process", no_args_is_help=False, help="[k] Choose a process to kill")(kill_process)
47
- app.command(name="k", no_args_is_help=False, help="Choose a process to kill", hidden=True)(kill_process)
48
- app.command(name="download", no_args_is_help=True, help="[d] Download a file from a URL and optionally decompress it.")(download)
111
+ app = typer.Typer(help="🛠️ utilities operations", no_args_is_help=True, add_help_option=True, add_completion=False)
112
+ app.command(name="kill-process", no_args_is_help=False, help="⚔️ [k] Choose a process to kill")(kill_process)
113
+ app.command(name="k", no_args_is_help=False, hidden=True)(kill_process)
114
+
115
+ app.command("environment", no_args_is_help=False, help="📚 [v] NAVIGATE ENV/PATH variable with TUI")(tui_env)
116
+ app.command("v", no_args_is_help=False, hidden=True)(tui_env)
117
+
118
+ app.command(name="upgrade-packages", no_args_is_help=False, help="⬆️ [up] Upgrade project dependencies.")(upgrade_packages)
119
+ app.command(name="up", no_args_is_help=False, hidden=True)(upgrade_packages)
120
+
121
+ app.command(name="download", no_args_is_help=True, help="⬇️ [d] Download a file from a URL and optionally decompress it.")(download)
49
122
  app.command(name="d", no_args_is_help=True, hidden=True)(download)
50
- app.command(name="get-machine-specs", no_args_is_help=False, help="[g] Get machine specifications.")(get_machine_specs)
123
+ app.command(name="get-machine-specs", no_args_is_help=False, help="💻 [g] Get machine specifications.")(get_machine_specs)
51
124
  app.command(name="g", no_args_is_help=False, hidden=True)(get_machine_specs)
52
- app.command(name="init-project", no_args_is_help=False, help="[i] Initialize a project with a uv virtual environment and install dev packages.")(init_project)
125
+ app.command(name="init-project", no_args_is_help=False, help="🚀 [i] Initialize a project with a uv virtual environment and install dev packages.")(init_project)
53
126
  app.command(name="i", no_args_is_help=False, hidden=True)(init_project)
127
+ app.command(name="edit", no_args_is_help=False, help="✏️ [e] Open a file in the default editor.")(edit_file_with_hx)
128
+ app.command(name="e", no_args_is_help=False, hidden=True)(edit_file_with_hx)
54
129
 
55
- app.command(name="pdf-merge", no_args_is_help=True, help="[pm] Merge two PDF files into one.")(merge_pdfs)
130
+ app.command(name="pdf-merge", no_args_is_help=True, help="📄 [pm] Merge two PDF files into one.")(merge_pdfs)
56
131
  app.command(name="pm", no_args_is_help=True, hidden=True)(merge_pdfs)
57
- app.command(name="pdf-compress", no_args_is_help=True, help="[pc] Compress a PDF file.")(compress_pdf)
132
+ app.command(name="pdf-compress", no_args_is_help=True, help="📦 [pc] Compress a PDF file.")(compress_pdf)
58
133
  app.command(name="pc", no_args_is_help=True, hidden=True)(compress_pdf)
134
+
135
+ app.command(name="type-hint", no_args_is_help=True, help="📝 [t] Type hint a file or project directory.")(type_hint)
136
+ app.command(name="t", no_args_is_help=True, hidden=True)(type_hint)
137
+
59
138
  return app
60
139
 
61
- # def func():
62
- # import pycr
63
140
 
64
141
  def main():
65
142
  app = get_app()
@@ -0,0 +1,63 @@
1
+ function wrap_in_shell_script {
2
+ param(
3
+ [Parameter(Mandatory=$true)]
4
+ [string]$Command,
5
+
6
+ [Parameter(ValueFromRemainingArguments=$true)]
7
+ [string[]]$Arguments
8
+ )
9
+
10
+ # Generate a random name (based on current timestamp hashed with SHA256)
11
+ # Compute SHA256 of the timestamp string (don't pipe the string to Get-FileHash
12
+ # because that attempts to treat the input as a path). Take the first 16 hex
13
+ # chars as the random name.
14
+ $ts = Get-Date -Format o
15
+ try {
16
+ $sha = [System.Security.Cryptography.SHA256]::Create()
17
+ $bytes = [System.Text.Encoding]::UTF8.GetBytes($ts)
18
+ $hashBytes = $sha.ComputeHash($bytes)
19
+ $hash = [System.BitConverter]::ToString($hashBytes).Replace("-", "").ToLower()
20
+ $randomName = $hash.Substring(0, 16)
21
+ } finally {
22
+ if ($sha) { $sha.Dispose() }
23
+ }
24
+
25
+ # Define the output path
26
+ $env:OP_PROGRAM_PATH = "$HOME/tmp_results/tmp_scripts/machineconfig/${randomName}.ps1"
27
+
28
+ # Run the specified command with its arguments
29
+ & $Command @Arguments
30
+
31
+ # Check if the file exists
32
+ if (Test-Path $env:OP_PROGRAM_PATH) {
33
+ Write-Host "🚀 Taking over from python script @ $env:OP_PROGRAM_PATH"
34
+ try {
35
+ bat --style=full --theme=OneHalfDark --paging=never "$env:OP_PROGRAM_PATH"
36
+ } catch {
37
+ # Write-Host "⚠️ Warning: Failed to display script content with 'bat'. Proceeding to execute the script."
38
+ Write-Host " "
39
+ }
40
+ & $env:OP_PROGRAM_PATH
41
+ # Write-Host "✅ '$Command' execution completed."
42
+
43
+ } else {
44
+ # Write-Host "✅ '$Command' execution completed."
45
+ Write-Host " "
46
+ }
47
+
48
+ # Clean up the temporary environment variable so it doesn't leak to other processes/sessions
49
+ try {
50
+ Remove-Item Env:\OP_PROGRAM_PATH -ErrorAction SilentlyContinue
51
+ } catch {
52
+ # best-effort cleanup; ignore any errors
53
+ }
54
+
55
+ # Also explicitly clear the variable in the current process
56
+ $env:OP_PROGRAM_PATH = $null
57
+ }
58
+
59
+ # Call the function with any arguments passed to the script
60
+ if ($args.Count -gt 0) {
61
+ wrap_in_shell_script @args
62
+ }
63
+
@@ -0,0 +1,294 @@
1
+
2
+
3
+
4
+ ## where to store your database, default is your system data directory
5
+ ## linux/mac: ~/.local/share/atuin/history.db
6
+ ## windows: %USERPROFILE%/.local/share/atuin/history.db
7
+ # db_path = "~/.history.db"
8
+
9
+ ## where to store your encryption key, default is your system data directory
10
+ ## linux/mac: ~/.local/share/atuin/key
11
+ ## windows: %USERPROFILE%/.local/share/atuin/key
12
+ # key_path = "~/.key"
13
+
14
+ ## where to store your auth session token, default is your system data directory
15
+ ## linux/mac: ~/.local/share/atuin/session
16
+ ## windows: %USERPROFILE%/.local/share/atuin/session
17
+ # session_path = "~/.session"
18
+
19
+ ## date format used, either "us" or "uk"
20
+ # dialect = "us"
21
+
22
+ ## default timezone to use when displaying time
23
+ ## either "l", "local" to use the system's current local timezone, or an offset
24
+ ## from UTC in the format of "<+|->H[H][:M[M][:S[S]]]"
25
+ ## for example: "+9", "-05", "+03:30", "-01:23:45", etc.
26
+ # timezone = "local"
27
+
28
+ ## enable or disable automatic sync
29
+ # auto_sync = true
30
+
31
+ ## enable or disable automatic update checks
32
+ # update_check = true
33
+
34
+ ## address of the sync server
35
+ # sync_address = "https://api.atuin.sh"
36
+
37
+ ## how often to sync history. note that this is only triggered when a command
38
+ ## is ran, so sync intervals may well be longer
39
+ ## set it to 0 to sync after every command
40
+ # sync_frequency = "10m"
41
+
42
+ ## which search mode to use
43
+ ## possible values: prefix, fulltext, fuzzy, skim
44
+ # search_mode = "fuzzy"
45
+
46
+ ## which filter mode to use by default
47
+ ## possible values: "global", "host", "session", "session-preload", "directory", "workspace"
48
+ ## consider using search.filters to customize the enablement and order of filter modes
49
+ # filter_mode = "global"
50
+
51
+ ## With workspace filtering enabled, Atuin will filter for commands executed
52
+ ## in any directory within a git repository tree (default: false).
53
+ ##
54
+ ## To use workspace mode by default when available, set this to true and
55
+ ## set filter_mode to "workspace" or leave it unspecified and
56
+ ## set search.filters to include "workspace" before other filter modes.
57
+ # workspaces = false
58
+
59
+ ## which filter mode to use when atuin is invoked from a shell up-key binding
60
+ ## the accepted values are identical to those of "filter_mode"
61
+ ## leave unspecified to use same mode set in "filter_mode"
62
+ # filter_mode_shell_up_key_binding = "global"
63
+
64
+ ## which search mode to use when atuin is invoked from a shell up-key binding
65
+ ## the accepted values are identical to those of "search_mode"
66
+ ## leave unspecified to use same mode set in "search_mode"
67
+ # search_mode_shell_up_key_binding = "fuzzy"
68
+
69
+ ## which style to use
70
+ ## possible values: auto, full, compact
71
+ style = "full"
72
+
73
+ ## the maximum number of lines the interface should take up
74
+ ## set it to 0 to always go full screen
75
+ # inline_height = 0
76
+
77
+ ## the maximum number of lines the interface should take up
78
+ ## when atuin is invoked from a shell up-key binding
79
+ ## the accepted values are identical to those of "inline_height"
80
+ # inline_height_shell_up_key_binding = 0
81
+
82
+ ## Invert the UI - put the search bar at the top , Default to `false`
83
+ # invert = false
84
+
85
+ ## enable or disable showing a preview of the selected command
86
+ ## useful when the command is longer than the terminal width and is cut off
87
+ # show_preview = true
88
+
89
+ ## what to do when the escape key is pressed when searching
90
+ ## possible values: return-original, return-query
91
+ # exit_mode = "return-original"
92
+
93
+ ## possible values: emacs, subl
94
+ # word_jump_mode = "emacs"
95
+
96
+ ## characters that count as a part of a word
97
+ # word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
98
+
99
+ ## number of context lines to show when scrolling by pages
100
+ # scroll_context_lines = 1
101
+
102
+ ## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts
103
+ ## alt-0 .. alt-9
104
+ # ctrl_n_shortcuts = false
105
+
106
+ ## Show numeric shortcuts (1..9) beside list items in the TUI
107
+ ## set to false to hide the moving numbers if you find them distracting
108
+ # show_numeric_shortcuts = true
109
+
110
+ ## default history list format - can also be specified with the --format arg
111
+ # history_format = "{time}\t{command}\t{duration}"
112
+
113
+ ## prevent commands matching any of these regexes from being written to history.
114
+ ## Note that these regular expressions are unanchored, i.e. if they don't start
115
+ ## with ^ or end with $, they'll match anywhere in the command.
116
+ ## For details on the supported regular expression syntax, see
117
+ ## https://docs.rs/regex/latest/regex/#syntax
118
+ # history_filter = [
119
+ # "^secret-cmd",
120
+ # "^innocuous-cmd .*--secret=.+",
121
+ # ]
122
+
123
+ ## prevent commands run with cwd matching any of these regexes from being written
124
+ ## to history. Note that these regular expressions are unanchored, i.e. if they don't
125
+ ## start with ^ or end with $, they'll match anywhere in CWD.
126
+ ## For details on the supported regular expression syntax, see
127
+ ## https://docs.rs/regex/latest/regex/#syntax
128
+ # cwd_filter = [
129
+ # "^/very/secret/area",
130
+ # ]
131
+
132
+ ## Configure the maximum height of the preview to show.
133
+ ## Useful when you have long scripts in your history that you want to distinguish
134
+ ## by more than the first few lines.
135
+ # max_preview_height = 4
136
+
137
+ ## Configure whether or not to show the help row, which includes the current Atuin
138
+ ## version (and whether an update is available), a keymap hint, and the total
139
+ ## amount of commands in your history.
140
+ # show_help = true
141
+
142
+ ## Configure whether or not to show tabs for search and inspect
143
+ # show_tabs = true
144
+
145
+ ## Configure whether or not the tabs row may be auto-hidden, which includes the current Atuin
146
+ ## tab, such as Search or Inspector, and other tabs you may wish to see. This will
147
+ ## only be hidden if there are fewer than this count of lines available, and does not affect the use
148
+ ## of keyboard shortcuts to switch tab. 0 to never auto-hide, default is 8 (lines).
149
+ ## This is ignored except in `compact` mode.
150
+ # auto_hide_height = 8
151
+
152
+ ## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include
153
+ ## 1. AWS key id
154
+ ## 2. Github pat (old and new)
155
+ ## 3. Slack oauth tokens (bot, user)
156
+ ## 4. Slack webhooks
157
+ ## 5. Stripe live/test keys
158
+ # secrets_filter = true
159
+
160
+ ## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit.
161
+ # This applies for new installs. Old installs will keep the old behaviour unless configured otherwise.
162
+ enter_accept = true
163
+
164
+ ## Defaults to false. If enabled, when triggered after &&, || or |, Atuin will complete commands to chain rather than replace the current line.
165
+ # command_chaining = false
166
+
167
+ ## Defaults to "emacs". This specifies the keymap on the startup of `atuin
168
+ ## search`. If this is set to "auto", the startup keymap mode in the Atuin
169
+ ## search is automatically selected based on the shell's keymap where the
170
+ ## keybinding is defined. If this is set to "emacs", "vim-insert", or
171
+ ## "vim-normal", the startup keymap mode in the Atuin search is forced to be
172
+ ## the specified one.
173
+ # keymap_mode = "auto"
174
+
175
+ ## Cursor style in each keymap mode. If specified, the cursor style is changed
176
+ ## in entering the cursor shape. Available values are "default" and
177
+ ## "{blink,steady}-{block,underline,bar}".
178
+ # keymap_cursor = { emacs = "blink-block", vim_insert = "blink-block", vim_normal = "steady-block" }
179
+
180
+ # network_connect_timeout = 5
181
+ # network_timeout = 5
182
+
183
+ ## Timeout (in seconds) for acquiring a local database connection (sqlite)
184
+ # local_timeout = 5
185
+
186
+ ## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc.
187
+ ## Alternatively, set env NO_MOTION=true
188
+ # prefers_reduced_motion = false
189
+
190
+ [stats]
191
+ ## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl
192
+ # common_subcommands = [
193
+ # "apt",
194
+ # "cargo",
195
+ # "composer",
196
+ # "dnf",
197
+ # "docker",
198
+ # "dotnet",
199
+ # "git",
200
+ # "go",
201
+ # "ip",
202
+ # "jj",
203
+ # "kubectl",
204
+ # "nix",
205
+ # "nmcli",
206
+ # "npm",
207
+ # "pecl",
208
+ # "pnpm",
209
+ # "podman",
210
+ # "port",
211
+ # "systemctl",
212
+ # "tmux",
213
+ # "yarn",
214
+ # ]
215
+
216
+ ## Set commands that should be totally stripped and ignored from stats
217
+ # common_prefix = ["sudo"]
218
+
219
+ ## Set commands that will be completely ignored from stats
220
+ # ignored_commands = [
221
+ # "cd",
222
+ # "ls",
223
+ # "vi"
224
+ # ]
225
+
226
+ [keys]
227
+ # Defaults to true. If disabled, using the up/down key won't exit the TUI when scrolled past the first/last entry.
228
+ # scroll_exits = true
229
+ # Defaults to true. The left arrow key will exit the TUI when scrolling before the first character
230
+ # exit_past_line_start = true
231
+ # Defaults to true. The right arrow key performs the same functionality as Tab and copies the selected line to the command line to be modified.
232
+ # accept_past_line_end = true
233
+ # Defaults to false. The left arrow key performs the same functionality as Tab and copies the selected line to the command line to be modified.
234
+ # accept_past_line_start = false
235
+ # Defaults to false. The backspace key performs the same functionality as Tab and copies the selected line to the command line to be modified when at the start of the line.
236
+ # accept_with_backspace = false
237
+
238
+ [sync]
239
+ # Enable sync v2 by default
240
+ # This ensures that sync v2 is enabled for new installs only
241
+ # In a later release it will become the default across the board
242
+ records = true
243
+
244
+ [preview]
245
+ ## which preview strategy to use to calculate the preview height (respects max_preview_height).
246
+ ## possible values: auto, static
247
+ ## auto: length of the selected command.
248
+ ## static: length of the longest command stored in the history.
249
+ ## fixed: use max_preview_height as fixed height.
250
+ # strategy = "auto"
251
+
252
+ [daemon]
253
+ ## Enables using the daemon to sync. Requires the daemon to be running in the background. Start it with `atuin daemon`
254
+ # enabled = false
255
+
256
+ ## How often the daemon should sync in seconds
257
+ # sync_frequency = 300
258
+
259
+ ## The path to the unix socket used by the daemon (on unix systems)
260
+ ## linux/mac: ~/.local/share/atuin/atuin.sock
261
+ ## windows: Not Supported
262
+ # socket_path = "~/.local/share/atuin/atuin.sock"
263
+
264
+ ## Use systemd socket activation rather than opening the given path (the path must still be correct for the client)
265
+ ## linux: false
266
+ ## mac/windows: Not Supported
267
+ # systemd_socket = false
268
+
269
+ ## The port that should be used for TCP on non unix systems
270
+ # tcp_port = 8889
271
+
272
+ [theme]
273
+ ## Color theme to use for rendering in the terminal.
274
+ ## There are some built-in themes, including the base theme ("default"),
275
+ ## "autumn" and "marine". You can add your own themes to the "./themes" subdirectory of your
276
+ ## Atuin config (or ATUIN_THEME_DIR, if provided) as TOML files whose keys should be one or
277
+ ## more of AlertInfo, AlertWarn, AlertError, Annotation, Base, Guidance, Important, and
278
+ ## the string values as lowercase entries from this list:
279
+ ## https://ogeon.github.io/docs/palette/master/palette/named/index.html
280
+ ## If you provide a custom theme file, it should be called "NAME.toml" and the theme below
281
+ ## should be the stem, i.e. `theme = "NAME"` for your chosen NAME.
282
+ # name = "autumn"
283
+ name = "catppuccin-mocha-mauve"
284
+
285
+
286
+ ## Whether the theme manager should output normal or extra information to help fix themes.
287
+ ## Boolean, true or false. If unset, left up to the theme manager.
288
+ # debug = true
289
+
290
+ [search]
291
+ ## The list of enabled filter modes, in order of priority.
292
+ ## The "workspace" mode is skipped when not in a workspace or workspaces = false.
293
+ ## Default filter mode can be overridden with the filter_mode setting.
294
+ # filters = [ "global", "host", "session", "session-preload", "workspace", "directory" ]
@@ -0,0 +1,12 @@
1
+ [theme]
2
+ name = "catppuccin-mocha-mauve"
3
+
4
+ [colors]
5
+ AlertInfo = "#a6e3a1"
6
+ AlertWarn = "#fab387"
7
+ AlertError = "#f38ba8"
8
+ Annotation = "#cba6f7"
9
+ Base = "#cdd6f4"
10
+ Guidance = "#9399b2"
11
+ Important = "#f38ba8"
12
+ Title = "#cba6f7"
@@ -2,4 +2,4 @@
2
2
 
3
3
  terminal_title = "{file} 🐄"
4
4
 
5
- capture_mouse: false
5
+ capture_mouse = false
@@ -25,3 +25,19 @@ enable = true
25
25
  max-wrap = 25 # increase value to reduce forced mid-word wrapping
26
26
  max-indent-retain = 0
27
27
  wrap-indicator = "" # set wrap-indicator to "" to hide it
28
+
29
+
30
+ # https://yazi-rs.github.io/docs/tips#helix-with-zellij
31
+ # ~/.config/helix/config.toml
32
+ [keys.normal]
33
+ C-y = ":sh zellij run -n Yazi -c -f -x 10%% -y 10%% --width 80%% --height 80%% -- bash ~/.config/helix/yazi-picker.sh open %{buffer_name}"
34
+
35
+ # ~/.config/helix/config.toml
36
+
37
+ # [keys.normal.C-y]
38
+ # Open the file(s) in the current window
39
+ # y = ":sh zellij run -n Yazi -c -f -x 10%% -y 10%% --width 80%% --height 80%% -- bash ~/.config/helix/yazi-picker.sh open %{buffer_name}"
40
+ # Open the file(s) in a vertical split
41
+ # v = ":sh zellij run -n Yazi -c -f -x 10%% -y 10%% --width 80%% --height 80%% -- bash ~/.config/helix/yazi-picker.sh vsplit %{buffer_name}"
42
+ # Open the file(s) in a horizontal split
43
+ # h = ":sh zellij run -n Yazi -c -f -x 10%% -y 10%% --width 80%% --height 80%% -- bash ~/.config/helix/yazi-picker.sh hsplit %{buffer_name}"