machineconfig 7.50__py3-none-any.whl → 8.14__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.

Potentially problematic release.


This version of machineconfig might be problematic. Click here for more details.

Files changed (298) hide show
  1. machineconfig/cluster/remote/cloud_manager.py +1 -1
  2. machineconfig/cluster/sessions_managers/utils/maker.py +23 -11
  3. machineconfig/cluster/sessions_managers/wt_local_manager.py +22 -19
  4. machineconfig/cluster/sessions_managers/wt_remote_manager.py +3 -1
  5. machineconfig/cluster/sessions_managers/zellij_local_manager.py +3 -1
  6. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +3 -2
  7. machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +2 -2
  8. machineconfig/jobs/installer/installer_data.json +1185 -165
  9. machineconfig/jobs/installer/linux_scripts/q.sh +10 -7
  10. machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
  11. machineconfig/jobs/installer/package_groups.py +52 -84
  12. machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
  13. machineconfig/jobs/installer/{custom → python_scripts}/boxes.py +2 -2
  14. machineconfig/jobs/installer/{custom_dev → python_scripts}/brave.py +5 -3
  15. machineconfig/jobs/installer/python_scripts/cloudflare_warp_cli.py +23 -0
  16. machineconfig/jobs/installer/{custom_dev → python_scripts}/code.py +4 -1
  17. machineconfig/jobs/installer/{custom_dev → python_scripts}/dubdb_adbc.py +1 -1
  18. machineconfig/jobs/installer/{custom → python_scripts}/hx.py +16 -12
  19. machineconfig/jobs/installer/{custom_dev → python_scripts}/nerdfont.py +2 -2
  20. machineconfig/jobs/installer/{custom_dev → python_scripts}/nerfont_windows_helper.py +27 -22
  21. machineconfig/jobs/installer/python_scripts/sysabc.py +139 -0
  22. machineconfig/jobs/installer/{custom_dev → python_scripts}/wezterm.py +2 -19
  23. machineconfig/jobs/installer/{custom_dev → python_scripts}/winget.py +10 -14
  24. machineconfig/jobs/installer/python_scripts/yazi.py +121 -0
  25. machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nfs +0 -1
  26. machineconfig/jobs/scripts/powershell_scripts/mount_ssh.ps1 +13 -0
  27. machineconfig/jobs/scripts/powershell_scripts/obs.ps1 +4 -0
  28. machineconfig/jobs/scripts_dynamic/a.py +25 -0
  29. machineconfig/logger.py +0 -1
  30. machineconfig/profile/create_helper.py +21 -22
  31. machineconfig/profile/create_links_export.py +25 -11
  32. machineconfig/profile/create_shell_profile.py +14 -3
  33. machineconfig/profile/mapper.toml +8 -6
  34. machineconfig/scripts/__init__.py +0 -4
  35. machineconfig/scripts/linux/wrap_mcfg +20 -21
  36. machineconfig/scripts/python/agents.py +74 -50
  37. machineconfig/scripts/python/ai/initai.py +1 -1
  38. machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
  39. machineconfig/scripts/python/ai/{command_runner → scripts}/command_runner.sh +1 -1
  40. machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +1 -1
  41. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Thinking-Beast-Mode.chatmode.md → agents/Thinking-Beast-Mode.agent.md} +0 -1
  42. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md → agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md} +0 -1
  43. machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/deepResearch.chatmode.md → agents/deepResearch.agent.md} +2 -2
  44. machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +5 -5
  45. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +4 -0
  46. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
  47. machineconfig/scripts/python/ai/solutions/generic.py +1 -1
  48. machineconfig/scripts/python/ai/{generate_files.py → utils/generate_files.py} +2 -2
  49. machineconfig/scripts/python/cloud.py +6 -6
  50. machineconfig/scripts/python/croshell.py +67 -60
  51. machineconfig/scripts/python/devops.py +41 -21
  52. machineconfig/scripts/python/devops_navigator.py +0 -4
  53. machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
  54. machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
  55. machineconfig/scripts/python/fire_jobs.py +95 -67
  56. machineconfig/scripts/python/ftpx.py +44 -17
  57. machineconfig/scripts/python/helpers/ast_search.py +74 -0
  58. machineconfig/scripts/python/helpers/qr_code.py +166 -0
  59. machineconfig/scripts/python/helpers/repo_rag.py +325 -0
  60. machineconfig/scripts/python/helpers/symantic_search.py +25 -0
  61. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json +1 -1
  62. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +9 -7
  63. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +21 -8
  64. machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +0 -12
  65. machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +30 -11
  66. machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +9 -2
  67. machineconfig/scripts/python/helpers_agents/privacy/configs/aichat/config.yaml +5 -0
  68. machineconfig/scripts/python/helpers_agents/privacy/configs/aider/.aider.conf.yml +2 -0
  69. machineconfig/scripts/python/helpers_agents/privacy/configs/copilot/config.yml +1 -0
  70. machineconfig/scripts/python/helpers_agents/privacy/configs/crush/crush.json +10 -0
  71. machineconfig/scripts/python/helpers_agents/privacy/configs/gemini/settings.json +12 -0
  72. machineconfig/scripts/python/helpers_agents/privacy/privacy.py +109 -0
  73. machineconfig/scripts/python/helpers_agents/templates/prompt.txt +8 -4
  74. machineconfig/scripts/python/helpers_agents/templates/template.sh +18 -8
  75. machineconfig/scripts/python/helpers_cloud/cloud_copy.py +28 -21
  76. machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +1 -1
  77. machineconfig/scripts/python/helpers_cloud/cloud_mount.py +19 -17
  78. machineconfig/scripts/python/helpers_cloud/cloud_sync.py +8 -7
  79. machineconfig/scripts/python/helpers_croshell/crosh.py +3 -3
  80. machineconfig/scripts/python/helpers_croshell/start_slidev.py +6 -7
  81. machineconfig/scripts/python/helpers_devops/cli_config.py +19 -25
  82. machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +22 -13
  83. machineconfig/scripts/python/helpers_devops/cli_nw.py +113 -26
  84. machineconfig/scripts/python/helpers_devops/cli_repos.py +37 -11
  85. machineconfig/scripts/python/helpers_devops/cli_self.py +95 -42
  86. machineconfig/scripts/python/helpers_devops/cli_share_file.py +9 -9
  87. machineconfig/scripts/python/helpers_devops/cli_share_server.py +13 -12
  88. machineconfig/scripts/python/helpers_devops/{cli_terminal.py → cli_share_terminal.py} +15 -17
  89. machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +4 -4
  90. machineconfig/scripts/python/helpers_devops/devops_status.py +7 -19
  91. machineconfig/scripts/python/helpers_devops/run_script.py +180 -0
  92. machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py +1 -1
  93. machineconfig/scripts/python/helpers_fire_command/file_wrangler.py +2 -19
  94. machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +1 -0
  95. machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +25 -15
  96. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfg +3 -3
  97. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +58 -1
  98. machineconfig/scripts/python/helpers_navigator/command_tree.py +50 -18
  99. machineconfig/scripts/python/helpers_network/address.py +176 -0
  100. machineconfig/scripts/python/helpers_network/address_switch.py +78 -0
  101. machineconfig/scripts/python/{nw → helpers_network}/mount_nfs.py +2 -2
  102. machineconfig/scripts/python/{nw → helpers_network}/mount_ssh.py +1 -1
  103. machineconfig/scripts/python/{nw/devops_add_identity.py → helpers_network/ssh_add_identity.py} +35 -1
  104. machineconfig/scripts/python/{nw/devops_add_ssh_key.py → helpers_network/ssh_add_ssh_key.py} +26 -7
  105. machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_linux.py +7 -7
  106. machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_windows.py +4 -4
  107. machineconfig/scripts/python/helpers_repos/clone.py +0 -1
  108. machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +13 -5
  109. machineconfig/scripts/python/helpers_repos/entrypoint.py +2 -1
  110. machineconfig/scripts/python/helpers_repos/record.py +2 -1
  111. machineconfig/scripts/python/helpers_repos/repo_analyzer_1.py +160 -0
  112. machineconfig/scripts/python/helpers_repos/{count_lines.py → repo_analyzer_2.py} +113 -192
  113. machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +19 -13
  114. machineconfig/scripts/python/helpers_utils/download.py +150 -0
  115. machineconfig/scripts/python/helpers_utils/pdf.py +96 -0
  116. machineconfig/scripts/python/helpers_utils/python.py +187 -0
  117. machineconfig/scripts/python/interactive.py +30 -31
  118. machineconfig/scripts/python/{machineconfig.py → mcfg_entry.py} +4 -5
  119. machineconfig/scripts/python/msearch.py +57 -6
  120. machineconfig/scripts/python/sessions.py +100 -31
  121. machineconfig/scripts/python/terminal.py +26 -17
  122. machineconfig/scripts/python/utils.py +17 -15
  123. machineconfig/scripts/windows/wrap_mcfg.ps1 +6 -3
  124. machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
  125. machineconfig/settings/linters/.ruff.toml +1 -1
  126. machineconfig/settings/shells/bash/init.sh +29 -2
  127. machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
  128. machineconfig/settings/shells/nushell/config.nu +2 -2
  129. machineconfig/settings/shells/nushell/env.nu +45 -6
  130. machineconfig/settings/shells/nushell/init.nu +282 -95
  131. machineconfig/settings/shells/pwsh/init.ps1 +1 -0
  132. machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
  133. machineconfig/settings/shells/zsh/init.sh +1 -8
  134. machineconfig/settings/television/cable_unix/alias.toml +8 -0
  135. machineconfig/settings/television/cable_unix/aws-buckets.toml +14 -0
  136. machineconfig/settings/television/cable_unix/aws-instances.toml +13 -0
  137. machineconfig/settings/television/cable_unix/bash-history.toml +8 -0
  138. machineconfig/settings/television/cable_unix/channels.toml +19 -0
  139. machineconfig/settings/television/cable_unix/dirs.toml +13 -0
  140. machineconfig/settings/television/cable_unix/distrobox-list.toml +42 -0
  141. machineconfig/settings/television/cable_unix/docker-images.toml +13 -0
  142. machineconfig/settings/television/cable_unix/dotfiles.toml +11 -0
  143. machineconfig/settings/television/cable_unix/env.toml +17 -0
  144. machineconfig/settings/television/cable_unix/files.toml +11 -0
  145. machineconfig/settings/television/cable_unix/fish-history.toml +8 -0
  146. machineconfig/settings/television/cable_unix/git-branch.toml +11 -0
  147. machineconfig/settings/television/cable_unix/git-diff.toml +10 -0
  148. machineconfig/settings/television/cable_unix/git-log.toml +12 -0
  149. machineconfig/settings/television/cable_unix/git-reflog.toml +12 -0
  150. machineconfig/settings/television/cable_unix/git-repos.toml +16 -0
  151. machineconfig/settings/television/cable_unix/guix.toml +20 -0
  152. machineconfig/settings/television/cable_unix/just-recipes.toml +18 -0
  153. machineconfig/settings/television/cable_unix/k8s-deployments.toml +36 -0
  154. machineconfig/settings/television/cable_unix/k8s-pods.toml +50 -0
  155. machineconfig/settings/television/cable_unix/k8s-services.toml +36 -0
  156. machineconfig/settings/television/cable_unix/man-pages.toml +24 -0
  157. machineconfig/settings/television/cable_unix/nu-history.toml +7 -0
  158. machineconfig/settings/television/cable_unix/procs.toml +20 -0
  159. machineconfig/settings/television/cable_unix/text.toml +17 -0
  160. machineconfig/settings/television/cable_unix/tldr.toml +18 -0
  161. machineconfig/settings/television/cable_unix/zsh-history.toml +9 -0
  162. machineconfig/settings/television/cable_windows/alias.toml +7 -0
  163. machineconfig/settings/television/cable_windows/dirs.toml +13 -0
  164. machineconfig/settings/television/cable_windows/docker-images.toml +13 -0
  165. machineconfig/settings/television/cable_windows/dotfiles.toml +11 -0
  166. machineconfig/settings/television/cable_windows/env.toml +17 -0
  167. machineconfig/settings/television/cable_windows/files.toml +14 -0
  168. machineconfig/settings/television/cable_windows/git-branch.toml +11 -0
  169. machineconfig/settings/television/cable_windows/git-diff.toml +10 -0
  170. machineconfig/settings/television/cable_windows/git-log.toml +11 -0
  171. machineconfig/settings/television/cable_windows/git-reflog.toml +11 -0
  172. machineconfig/settings/television/cable_windows/git-repos.toml +15 -0
  173. machineconfig/settings/television/cable_windows/nu-history.toml +7 -0
  174. machineconfig/settings/television/cable_windows/pwsh-history.toml +6 -0
  175. machineconfig/settings/television/cable_windows/text.toml +17 -0
  176. machineconfig/settings/wt/__init__.py +0 -0
  177. machineconfig/settings/yazi/init.lua +49 -24
  178. machineconfig/settings/yazi/keymap_linux.toml +19 -4
  179. machineconfig/settings/yazi/keymap_windows.toml +0 -1
  180. machineconfig/settings/yazi/shell/yazi_cd.ps1 +29 -5
  181. machineconfig/settings/yazi/theme.toml +4 -0
  182. machineconfig/settings/yazi/yazi_linux.toml +84 -0
  183. machineconfig/settings/yazi/yazi_windows.toml +58 -0
  184. machineconfig/settings/zellij/layouts/st.kdl +39 -8
  185. machineconfig/setup_linux/__init__.py +1 -2
  186. machineconfig/setup_linux/apps_desktop.sh +8 -27
  187. machineconfig/setup_linux/web_shortcuts/interactive.sh +12 -10
  188. machineconfig/setup_linux/web_shortcuts/live_from_github.sh +31 -0
  189. machineconfig/setup_mac/__init__.py +2 -3
  190. machineconfig/setup_windows/__init__.py +3 -5
  191. machineconfig/setup_windows/ssh/openssh-server.ps1 +1 -1
  192. machineconfig/setup_windows/uv.ps1 +8 -1
  193. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +12 -10
  194. machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +30 -0
  195. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
  196. machineconfig/utils/accessories.py +7 -4
  197. machineconfig/utils/code.py +69 -27
  198. machineconfig/utils/files/headers.py +2 -2
  199. machineconfig/utils/installer_utils/github_release_bulk.py +156 -119
  200. machineconfig/utils/installer_utils/install_from_url.py +183 -0
  201. machineconfig/utils/installer_utils/installer_class.py +43 -100
  202. machineconfig/utils/installer_utils/installer_cli.py +175 -0
  203. machineconfig/utils/installer_utils/installer_helper.py +129 -0
  204. machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +36 -85
  205. machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +16 -59
  206. machineconfig/utils/io.py +0 -1
  207. machineconfig/utils/links.py +2 -2
  208. machineconfig/utils/meta.py +30 -16
  209. machineconfig/utils/options.py +42 -24
  210. machineconfig/utils/options_tv.py +119 -0
  211. machineconfig/utils/path_extended.py +42 -20
  212. machineconfig/utils/path_helper.py +75 -22
  213. machineconfig/utils/procs.py +1 -1
  214. machineconfig/utils/scheduler.py +20 -53
  215. machineconfig/utils/schemas/layouts/layout_types.py +1 -1
  216. machineconfig/utils/ssh.py +159 -418
  217. machineconfig/utils/ssh_utils/abc.py +5 -0
  218. machineconfig/utils/ssh_utils/copy_from_here.py +111 -0
  219. machineconfig/utils/ssh_utils/copy_to_here.py +303 -0
  220. machineconfig/utils/ssh_utils/utils.py +142 -0
  221. machineconfig/utils/ssh_utils/wsl.py +210 -0
  222. machineconfig/utils/terminal.py +1 -0
  223. machineconfig/utils/upgrade_packages.py +6 -1
  224. machineconfig/utils/ve.py +12 -4
  225. machineconfig-8.14.dist-info/METADATA +132 -0
  226. {machineconfig-7.50.dist-info → machineconfig-8.14.dist-info}/RECORD +264 -215
  227. {machineconfig-7.50.dist-info → machineconfig-8.14.dist-info}/entry_points.txt +2 -4
  228. machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
  229. machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
  230. machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -12
  231. machineconfig/jobs/installer/powershell_scripts/openssh-server_add_key.ps1 +0 -7
  232. machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1 +0 -14
  233. machineconfig/scripts/linux/other/switch_ip +0 -20
  234. machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -9
  235. machineconfig/scripts/python/define.py +0 -31
  236. machineconfig/scripts/python/explore.py +0 -49
  237. machineconfig/scripts/python/helpers_devops/cli_utils.py +0 -246
  238. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfag +0 -17
  239. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfrga +0 -21
  240. machineconfig/scripts/python/helpers_msearch/scripts_linux/skrg +0 -4
  241. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfb.ps1 +0 -3
  242. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfrga.bat +0 -20
  243. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -17
  244. machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
  245. machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -66
  246. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +0 -13
  247. machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
  248. machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -6
  249. machineconfig/settings/lf/windows/tst.ps1 +0 -1
  250. machineconfig/settings/yazi/yazi.toml +0 -17
  251. machineconfig/setup_linux/apps.sh +0 -66
  252. machineconfig/setup_linux/others/cli_installation.sh +0 -137
  253. machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -30
  254. machineconfig/setup_linux/ssh/openssh_all.sh +0 -25
  255. machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -38
  256. machineconfig/setup_mac/apps.sh +0 -73
  257. machineconfig/setup_windows/apps.ps1 +0 -62
  258. machineconfig/setup_windows/others/obs.ps1 +0 -4
  259. machineconfig/setup_windows/ssh/add_identity.ps1 +0 -11
  260. machineconfig/utils/installer_utils/installer.py +0 -221
  261. machineconfig-7.50.dist-info/METADATA +0 -92
  262. /machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
  263. /machineconfig/jobs/installer/{custom_dev → python_scripts}/__init__.py +0 -0
  264. /machineconfig/jobs/installer/{custom_dev → python_scripts}/alacritty.py +0 -0
  265. /machineconfig/jobs/installer/{custom_dev → python_scripts}/bypass_paywall.py +0 -0
  266. /machineconfig/jobs/installer/{custom_dev → python_scripts}/cursor.py +0 -0
  267. /machineconfig/jobs/installer/{custom_dev → python_scripts}/espanso.py +0 -0
  268. /machineconfig/jobs/installer/{custom → python_scripts}/gh.py +0 -0
  269. /machineconfig/jobs/installer/{custom_dev → python_scripts}/goes.py +0 -0
  270. /machineconfig/jobs/installer/{custom_dev → python_scripts}/lvim.py +0 -0
  271. /machineconfig/jobs/installer/{custom_dev → python_scripts}/redis.py +0 -0
  272. /machineconfig/{setup_linux/others → jobs/scripts/bash_scripts}/android.sh +0 -0
  273. /machineconfig/jobs/{installer/linux_scripts → scripts/bash_scripts}/lid.sh +0 -0
  274. /machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_drive +0 -0
  275. /machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nw_drive +0 -0
  276. /machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_smb +0 -0
  277. /machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_cloud.sh +0 -0
  278. /machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_nfs +0 -0
  279. /machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/start_docker +0 -0
  280. /machineconfig/{scripts → jobs/scripts/powershell_scripts}/Restore-ThunderbirdProfile.ps1 +0 -0
  281. /machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/docker.ps1 +0 -0
  282. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nfs.ps1 +0 -0
  283. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nw.ps1 +0 -0
  284. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_smb.ps1 +0 -0
  285. /machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/power_options.ps1 +0 -0
  286. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_cloud.cmd +0 -0
  287. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_smb.ps1 +0 -0
  288. /machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/unlock_bitlocker.ps1 +0 -0
  289. /machineconfig/scripts/python/{nw → ai/utils}/__init__.py +0 -0
  290. /machineconfig/scripts/python/ai/{vscode_tasks.py → utils/vscode_tasks.py} +0 -0
  291. /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers_fire_command/f.py} +0 -0
  292. /machineconfig/{setup_windows/wt_and_pwsh → scripts/python/helpers_network}/__init__.py +0 -0
  293. /machineconfig/scripts/python/{nw → helpers_network}/mount_nw_drive.py +0 -0
  294. /machineconfig/scripts/python/{nw → helpers_network}/onetimeshare.py +0 -0
  295. /machineconfig/scripts/python/{nw → helpers_network}/wifi_conn.py +0 -0
  296. /machineconfig/{setup_windows/wt_and_pwsh → settings/wt}/set_wt_settings.py +0 -0
  297. {machineconfig-7.50.dist-info → machineconfig-8.14.dist-info}/WHEEL +0 -0
  298. {machineconfig-7.50.dist-info → machineconfig-8.14.dist-info}/top_level.txt +0 -0
@@ -1,62 +0,0 @@
1
-
2
- # to get exact version of an app in winget, head to: https://winget.run
3
-
4
- # --GROUP:ESSENTIAL_SYSTEM:WT+Brave+VSCode+WezTerm+OhMyPosh+Powershell+Starship+Git+Neovim+GNU Nano+Terminal-Icons+PSFzf
5
- winget install --no-upgrade --name "Windows Terminal" --Id "Microsoft.WindowsTerminal" --source winget --scope user --accept-package-agreements --accept-source-agreements # Terminal is is installed by default on W 11
6
- winget install --no-upgrade --name "Brave" --Id "Brave.Brave" --source winget --scope user --accept-package-agreements --accept-source-agreements
7
- winget install --no-upgrade --name "Microsoft Visual Studio Code" --Id "Microsoft.VisualStudioCode" --source winget --scope user --accept-package-agreements --accept-source-agreements
8
- winget install --no-upgrade --name "WezTerm" --Id "wez.wezterm" --source winget --scope user --accept-package-agreements --accept-source-agreements
9
- winget install --no-upgrade --name "Oh My Posh" --Id "JanDeDobbeleer.OhMyPosh" --source winget --scope user --accept-package-agreements --accept-source-agreements
10
- winget install --no-upgrade --name "Powershell" --Id "Microsoft.PowerShell" --source winget --scope user --accept-package-agreements --accept-source-agreements # powershell require admin
11
- winget install --no-upgrade --name "Git" --Id "Git.Git" --source winget --scope user --accept-package-agreements --accept-source-agreements
12
- winget install --no-upgrade --name "Neovim" --Id "Neovim.Neovim" --source winget --scope user --accept-package-agreements --accept-source-agreements
13
- winget install --no-upgrade --name "GNU Nano" --Id "GNU.Nano" --source winget --scope user --accept-package-agreements --accept-source-agreements
14
- # winget install --no-upgrade --name "File" --Id "GnuWin32.File" --source winget --accept-package-agreements --accept-source-agreements
15
-
16
- Install-Module -Name Terminal-Icons -Repository PSGallery -Force -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
17
- Install-Module -Name PSFzf -SkipPublisherCheck # -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
18
-
19
-
20
- # --GROUP:DEV_SYSTEM:VSRedistrib+VSBuildTools+Codeblocks+GnuWin32: Make+GnuPG+graphviz+WinFsp+SSHFS-win+xming+Node.js+Rustup+Cloudflare+Cloudflare WARP+Microsoft Garage Mouse without Borders
21
- winget install --no-upgrade --name "VSRedistrib" --Id "Microsoft.VC++2015-2022Redist-x64" --source winget --scope user --accept-package-agreements --accept-source-agreements
22
- winget install --no-upgrade --name "VSBuildTools" --Id "Microsoft.VisualStudio.2022.BuildTools" --source winget --scope user --accept-package-agreements --accept-source-agreements
23
- winget install --no-upgrade --name "Codeblocks" --Id "Codeblocks.Codeblocks" --source winget --scope user --accept-package-agreements --accept-source-agreements # IDE for C/C++
24
- winget install --no-upgrade --name "GnuWin32: Make" --Id "GnuWin32.Make" --source winget --scope user --accept-package-agreements --accept-source-agreements # required for building some python packages with native extensions, like dlib
25
- winget install --no-upgrade --name "GnuPG" --Id "GnuPG.GnuPG" --source winget --scope user --accept-package-agreements --accept-source-agreements
26
- winget install --no-upgrade --name "graphviz" --Id "Graphviz.Graphviz" --source winget --scope user --accept-package-agreements --accept-source-agreements # required by pygraphviz. Used in Base.viz_object_hirarchy and Model.plot_model()
27
- winget install --no-upgrade --name "WinFsp" --Id "WinFsp.WinFsp" --source winget --scope user --accept-package-agreements --accept-source-agreements # mount remote filesystems and required by rclone
28
- winget install --no-upgrade --name "SSHFS-win" --Id "SSHFS-Win.SSHFS-Win" --source winget --scope user --accept-package-agreements --accept-source-agreements # mount remote filesystems # as per https://github.com/winfsp/sshfs-win
29
- winget install --no-upgrade --name "xming" --Id "xming.xming" --source winget --scope user --accept-package-agreements --accept-source-agreements # X11 server. you need this while using wsl with gui, otherwise plt.show() returns: ImportError: Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'headless' is currently running
30
- winget install --no-upgrade --name "Node.js" --Id "OpenJS.NodeJS" --source winget --scope user --accept-package-agreements --accept-source-agreements # ncessary for nvim plugins.
31
- winget install --no-upgrade --name "Rustup" --Id "Rustlang.Rustup" --source winget --scope user --accept-package-agreements --accept-source-agreements # rust compiler, necessary for some nvim plugins
32
- winget install --no-upgrade --name "Cloudflare" --Id "Cloudflare.cloudflared" --source winget --scope user --accept-package-agreements --accept-source-agreements # cloudflare tunnel client, alternative to ngrok
33
- winget install --no-upgrade --name "Cloudflare WARP" --Id "Cloudflare.Warp" --source winget --scope user --accept-package-agreements --accept-source-agreements
34
- winget install --no-upgrade --name "Microsoft Garage Mouse without Borders" --Id "Microsoft.MouseWithoutBorders" --source winget --scope user --accept-package-agreements --accept-source-agreements
35
-
36
-
37
- # --GROUP:OTHER_WINDOWS:nu+Chrome+ChromeRemoteDesktop+Zoom+7zip+Firefox+Thunderbird+StreamlabsOBS+OBSStudio+MiKTeX+TexMaker+notepad+++Lapce+TesseractOCR+perl+DB Browser for SQLite+sql server management studio+Adobe Acrobat Reader DC+julia+Chafa+bottom+onefetch+Just+hyperfine+AWS CLI
38
- winget install --no-upgrade --name "nu" --Id "Nushell.Nushell" --source winget --scope user --accept-package-agreements --accept-source-agreements # add to userpath C:\Program Files\nu\bin, done in symlinks
39
- winget install --no-upgrade --name "Google Chrome" --Id "Google.Chrome" --source winget --scope user --accept-package-agreements --accept-source-agreements
40
- winget install --no-upgrade --name "Chrome Remote Desktop Host" --Id "Google.ChromeRemoteDesktop" --source winget --scope user --accept-package-agreements --accept-source-agreements
41
- winget install --no-upgrade --name "Zoom" --Id "Zoom.Zoom" --source winget --scope user --accept-package-agreements --accept-source-agreements
42
- winget install --no-upgrade --name "7-zip" --Id "7zip.7zip" --source winget --scope user --accept-package-agreements --accept-source-agreements
43
- winget install --no-upgrade --name "Mozilla Firefox" --Id "Mozilla.Firefox" --source winget --scope user --accept-package-agreements --accept-source-agreements
44
- winget install --no-upgrade --name "Mozilla Thunderbird (en-US)" --Id "Mozilla.Thunderbird" --source winget --scope user --accept-package-agreements --accept-source-agreements
45
- winget install --no-upgrade --name "StreamlabsOBS" --Id "Streamlabs.StreamlabsOBS" --source winget --scope user --accept-package-agreements --accept-source-agreements
46
- winget install --no-upgrade --name "OBSStudio" --Id "OBSProject.OBSStudio" --source winget --scope user --accept-package-agreements --accept-source-agreements
47
- winget install --no-upgrade --name "MiKTeX" --Id "MiKTeX.MiKTeX" --source winget --scope user # library / lanugage
48
- winget install --no-upgrade --name "TexMaker" --Id "Texmaker.Texmaker" --source winget --scope user # IDE better than simple TexWorks shipped with MikTex. IDE is basically GUI for cmd interface of Tex
49
- winget install --no-upgrade --name "notepad++" --Id "Notepad++.Notepad++" --source winget --scope user --accept-package-agreements --accept-source-agreements
50
- winget install --no-upgrade --name "Lapce" --Id "Lapce.Lapce" --source winget --scope user --accept-package-agreements --accept-source-agreements
51
- winget install --no-upgrade --name "TesseractOCR" --Id "UB-Mannheim.TesseractOCR" --source winget --scope user --accept-package-agreements --accept-source-agreements
52
- winget install --no-upgrade --name "perl" --Id "StrawbgnogerryPerl.StrawberryPerl" --source winget --scope user --accept-package-agreements --accept-source-agreements
53
- winget install --no-upgrade --name "DB Browser for SQLite" --Id "DBBrowserForSQLite.DBBrowserForSQLite" --source winget --scope user --accept-package-agreements --accept-source-agreements
54
- winget install --no-upgrade --name "sql server management studio" --Id "Microsoft.SQLServerManagementStudio" --source winget --scope user --accept-package-agreements --accept-source-agreements
55
- winget install --no-upgrade --name "Adobe Acrobat Reader DC" --Id "Adobe.Acrobat.Reader.64-bit" --source winget --scope user --accept-package-agreements --accept-source-agreements
56
- winget install --no-upgrade --name "julia" --Id "Julialang.Julia" --source winget --scope user --accept-package-agreements --accept-source-agreements
57
- winget install --no-upgrade --name "Chafa" --Id "hpjansson.Chafa" --source winget --scope user --accept-package-agreements --accept-source-agreements
58
- winget install --no-upgrade --name "bottom" --Id "Clement.bottom" --source winget --scope user --accept-package-agreements --accept-source-agreements
59
- winget install --no-upgrade --name "onefetch" --Id "o2sh.onefetch" --source winget --scope user # repo-version of system fastfetch, see also tokei
60
- winget install --no-upgrade --name "Just" --Id "Casey.Just" --source winget --scope user # commandline runner
61
- winget install --no-upgrade --name "hyperfine" --Id "sharkdp.hyperfine" --source winget --scope user # benchmarking tool
62
- winget install --no-upgrade --name "AWS Command Line Interface" --Id "Amazon.AWSCLI" --source winget --scope user --accept-package-agreements --accept-source-agreements
@@ -1,4 +0,0 @@
1
-
2
-
3
- winget install Gyan.FFmpeg
4
-
@@ -1,11 +0,0 @@
1
-
2
- # on the side of the local machine, you need to sort out the following:
3
- # if the $sshfile doesn't have a standard name, you will need to explicitly specify the identity while SSHing (e.g. ssh u@s -i ~/.ssh/my_id)
4
- # However, this must be done every time. For permanent solutions, use .ssh/config
5
-
6
- $sshfile = "$env:USERPROFILE\.ssh\id_rsa"
7
-
8
- Set-Service ssh-agent -StartupType Manual # allow the service to be started manually
9
- ssh-agent # start the service
10
- ssh-add.exe $sshfile # add the key to the agent
11
-
@@ -1,221 +0,0 @@
1
- """Devops Devapps Install"""
2
-
3
- from machineconfig.utils.installer import dynamically_extract_installers_system_groups_from_scripts
4
- import typer
5
- from rich.console import Console
6
- from rich.panel import Panel
7
- from rich.table import Table
8
- from typing import Optional, cast, get_args, Annotated
9
- from machineconfig.jobs.installer.package_groups import PACKAGE_GROUPS, PACKAGE_GROUP2NAMES
10
-
11
- console = Console()
12
-
13
-
14
- def _handle_installer_not_found(search_term: str, all_names: list[str]) -> None: # type: ignore
15
- """Handle installer not found with friendly suggestions using fuzzy matching."""
16
- from difflib import get_close_matches
17
- close_matches = get_close_matches(search_term, all_names, n=5, cutoff=0.4)
18
- console.print(f"\n❌ '[red]{search_term}[/red]' was not found.", style="bold")
19
- if close_matches:
20
- console.print("🤔 Did you mean one of these?", style="yellow")
21
- table = Table(show_header=False, box=None, pad_edge=False)
22
- for i, match in enumerate(close_matches, 1):
23
- table.add_row(f"[cyan]{i}.[/cyan]", f"[green]{match}[/green]")
24
- console.print(table)
25
- else:
26
- console.print("📋 Here are some available options:", style="blue")
27
- # Show first 10 installers as examples
28
- if len(all_names) > 10:
29
- sample_names = all_names[:10]
30
- else:
31
- sample_names = all_names
32
- table = Table(show_header=False, box=None, pad_edge=False)
33
- for i, name in enumerate(sample_names, 1):
34
- table.add_row(f"[cyan]{i}.[/cyan]", f"[green]{name}[/green]")
35
- console.print(table)
36
- if len(all_names) > 10:
37
- console.print(f" [dim]... and {len(all_names) - 10} more[/dim]")
38
-
39
- panel = Panel(f"[bold blue]💡 Use 'ia' to interactively browse all available installers.[/bold blue]\n[bold blue]💡 Use one of the categories: {list(get_args(PACKAGE_GROUPS))}[/bold blue]", title="[yellow]Helpful Tips[/yellow]", border_style="yellow")
40
- console.print(panel)
41
-
42
-
43
- def main_with_parser():
44
- import typer
45
- app = typer.Typer()
46
- app.command()(main)
47
- app()
48
-
49
-
50
- def main(
51
- which: Annotated[Optional[str], typer.Argument(..., help="Comma-separated list of program/groups names to install (if --group flag is set).")] = None,
52
- group: Annotated[bool, typer.Option(..., "--group", "-g", help="Treat 'which' as a group name. A group is bundle of apps.")] = False,
53
- interactive: Annotated[bool, typer.Option(..., "--interactive", "-ia", help="Interactive selection of programs to install.")] = False,
54
- ) -> None:
55
- if interactive:
56
- return install_interactively()
57
- if which is not None:
58
- if group:
59
- for a_group in [x.strip() for x in which.split(",") if x.strip() != ""]:
60
- return install_group(package_group=a_group)
61
- else:
62
- return install_clis(clis_names=[x.strip() for x in which.split(",") if x.strip() != ""])
63
- else:
64
- if group:
65
- typer.echo("❌ You must provide a group name when using the --group/-g option.")
66
- res = get_static_groups_combined_with_dynamic_groups_extracted()
67
- console.print("[bold blue]Here are the available groups:[/bold blue]")
68
- table = Table(show_header=True, header_style="bold magenta")
69
- table.add_column("Group", style="cyan", no_wrap=True)
70
- table.add_column("AppsBundled", style="green", overflow="fold")
71
- for display, group_name in res.items():
72
- # Parse display
73
- if " -- " in display:
74
- group_part, items_part = display.split(" -- ", 1)
75
- group_name_parsed = group_part.replace("📦 ", "").strip()
76
- items_str = items_part.strip()
77
- else:
78
- group_name_parsed = display
79
- items_str = group_name
80
- table.add_row(group_name_parsed, items_str)
81
- console.print(table)
82
- raise typer.Exit(1)
83
- typer.echo("❌ You must provide either a program name/group name, or use --interactive/-ia option.")
84
- import click
85
- ctx = click.get_current_context()
86
- typer.echo(ctx.get_help())
87
- raise typer.Exit(1)
88
-
89
-
90
- def get_static_groups_combined_with_dynamic_groups_extracted():
91
- # Build category options and maintain a mapping from display text to actual category name
92
- category_display_to_name: dict[str, str] = {}
93
- for group_name, group_values in PACKAGE_GROUP2NAMES.items():
94
- display = f"📦 {group_name:<20}" + " -- " + f"{'|'.join(group_values):<60}"
95
- category_display_to_name[display] = group_name
96
- options_system = dynamically_extract_installers_system_groups_from_scripts()
97
- for item in options_system:
98
- display = f"📦 {item['appName']:<20} -- {item['doc']:<60}"
99
- category_display_to_name[display] = item['appName']
100
- return category_display_to_name
101
-
102
-
103
- def install_interactively():
104
- from machineconfig.utils.options import choose_from_options
105
- from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
106
- from machineconfig.utils.installer import get_installers
107
- from machineconfig.utils.installer_utils.installer_class import Installer
108
- installers = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=None)
109
- installer_options = []
110
- for x in installers:
111
- installer_options.append(Installer(installer_data=x).get_description())
112
-
113
- category_display_to_name = get_static_groups_combined_with_dynamic_groups_extracted()
114
- options = list(category_display_to_name.keys()) + ["─" * 50] + installer_options
115
- program_names = choose_from_options(multi=True, msg="Categories are prefixed with 📦", options=options, header="🚀 CHOOSE DEV APP OR CATEGORY", default="📦 essentials", fzf=True)
116
- installation_messages: list[str] = []
117
- for _an_idx, a_program_name in enumerate(program_names):
118
- if a_program_name.startswith("─"): # 50 dashes separator
119
- continue
120
- if a_program_name.startswith("📦 "):
121
- category_name = category_display_to_name.get(a_program_name)
122
- if category_name:
123
- install_group(package_group=cast(PACKAGE_GROUPS, category_name))
124
- else:
125
- installer_idx = installer_options.index(a_program_name)
126
- an_installer_data = installers[installer_idx]
127
- status_message = Installer(an_installer_data).install_robust(version=None) # finish the task - this returns a status message, not a command
128
- installation_messages.append(status_message)
129
- if installation_messages:
130
- panel = Panel("\n".join([f"[blue]• {message}[/blue]" for message in installation_messages]), title="[bold green]📊 Installation Summary[/bold green]", border_style="green", padding=(1, 2))
131
- console.print(panel)
132
-
133
-
134
- def install_group(package_group: str):
135
- from machineconfig.utils.installer import get_installers, install_bulk
136
- from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
137
- if package_group in PACKAGE_GROUP2NAMES:
138
- panel = Panel(f"[bold yellow]Installing programs from category: [green]{package_group}[/green][/bold yellow]", title="[bold blue]📦 Category Installation[/bold blue]", border_style="blue", padding=(1, 2))
139
- console.print(panel)
140
- installers_ = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=[package_group])
141
- install_bulk(installers_data=installers_)
142
- return
143
- options_system = dynamically_extract_installers_system_groups_from_scripts()
144
- from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
145
- from machineconfig.utils.code import run_shell_script
146
- for an_item in options_system:
147
- if an_item["appName"] == package_group:
148
- panel = Panel(f"[bold yellow]Installing programs from category: [green]{package_group}[/green][/bold yellow]", title="[bold blue]📦 Category Installation[/bold blue]", border_style="blue", padding=(1, 2))
149
- console.print(panel)
150
- program = an_item["fileNamePattern"][get_normalized_arch()][get_os_name()]
151
- if program is not None:
152
- run_shell_script(program)
153
- break
154
- else:
155
- console.print(f"❌ [red]Group '{package_group}' not found.[/red]", style="bold")
156
- _handle_installer_not_found(package_group, all_names=list(PACKAGE_GROUP2NAMES.keys()) + [item['appName'] for item in options_system])
157
-
158
-
159
- def choose_from_system_package_groups(options_system: dict[str, tuple[str, str]]) -> str:
160
- from machineconfig.utils.options import choose_from_options
161
- display_options = []
162
- for group_name, (description, _) in options_system.items():
163
- if description:
164
- display_options.append(f"{group_name:<20} - {description}")
165
- else:
166
- display_options.append(group_name)
167
- program_names = choose_from_options(multi=True, msg="", options=sorted(display_options), header="🚀 CHOOSE DEV APP", fzf=True)
168
- program = ""
169
- for display_name in program_names:
170
- # Extract the actual group name (everything before " - " if present)
171
- group_name = display_name.split(" - ")[0].strip() if " - " in display_name else display_name.strip()
172
- console.print(f"\n[bold cyan]⚙️ Installing: [yellow]{group_name}[/yellow][/bold cyan]", style="bold")
173
- _, sub_program = options_system[group_name] # Extract content from tuple
174
- if sub_program.startswith("#winget"):
175
- sub_program = sub_program[1:]
176
- program += "\n" + sub_program
177
- return program
178
-
179
-
180
- def install_clis(clis_names: list[str]):
181
- from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
182
- from machineconfig.utils.installer import get_installers
183
- from machineconfig.utils.installer_utils.installer_class import Installer
184
- total_messages: list[str] = []
185
- for a_which in clis_names:
186
- all_installers = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=None)
187
- selected_installer = None
188
- for installer in all_installers:
189
- app_name = installer["appName"]
190
- if app_name.lower() == a_which.lower():
191
- selected_installer = installer
192
- break
193
- if selected_installer is None:
194
- _handle_installer_not_found(a_which, all_names=[inst["appName"] for inst in all_installers])
195
- return None
196
- message = Installer(selected_installer).install_robust(version=None) # finish the task
197
- total_messages.append(message)
198
- if total_messages:
199
- console.print("\n[bold green]📊 Installation Results:[/bold green]")
200
- for a_message in total_messages:
201
- console.print(f"[blue]• {a_message}[/blue]")
202
- return None
203
-
204
-
205
- def install_if_missing(which: str):
206
- from machineconfig.utils.installer_utils.installer_abc import check_tool_exists
207
- exists = check_tool_exists(which)
208
- if exists:
209
- print(f"✅ {which} is already installed.")
210
- return
211
- print(f"⏳ {which} not found. Installing...")
212
- from machineconfig.utils.installer_utils.installer import main
213
- main(which=which, interactive=False)
214
-
215
-
216
- if __name__ == "__main__":
217
- from machineconfig.utils.schemas.installer.installer_types import InstallerData
218
- from machineconfig.utils.installer_utils.installer_class import Installer
219
-
220
- _ = InstallerData, Installer
221
- pass
@@ -1,92 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: machineconfig
3
- Version: 7.50
4
- Summary: Dotfiles management package
5
- Author-email: Alex Al-Saffar <programmer@usa.com>
6
- License: Apache 2.0
7
- Project-URL: Homepage, https://github.com/thisismygitrepo/machineconfig
8
- Project-URL: Bug Tracker, https://github.com/thisismygitrepo/machineconfig/issues
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: License :: OSI Approved :: Apache Software License
11
- Classifier: Operating System :: OS Independent
12
- Requires-Python: >=3.13
13
- Description-Content-Type: text/markdown
14
- Requires-Dist: cryptography>=44.0.2
15
- Requires-Dist: fire>=0.7.0
16
- Requires-Dist: joblib>=1.5.2
17
- Requires-Dist: paramiko>=3.5.1
18
- Requires-Dist: randomname>=0.2.1
19
- Requires-Dist: requests>=2.32.5
20
- Requires-Dist: rich>=14.0.0
21
- Requires-Dist: tenacity>=9.1.2
22
- Requires-Dist: psutil>=7.0.0
23
- Requires-Dist: gitpython>=3.1.44
24
- Requires-Dist: pyfzf>=0.3.1
25
- Requires-Dist: rclone-python>=0.1.23
26
- Requires-Dist: questionary>=2.1.1
27
- Requires-Dist: typer-slim>=0.19.2
28
- Requires-Dist: typer>=0.19.2
29
- Provides-Extra: windows
30
- Requires-Dist: pywin32; extra == "windows"
31
- Provides-Extra: plot
32
- Requires-Dist: sqlalchemy>=2.0.43; extra == "plot"
33
- Requires-Dist: ipykernel>=6.30.1; extra == "plot"
34
- Requires-Dist: ipython>=9.5.0; extra == "plot"
35
- Requires-Dist: jupyterlab>=4.4.9; extra == "plot"
36
- Requires-Dist: kaleido>=1.1.0; extra == "plot"
37
- Requires-Dist: matplotlib>=3.10.6; extra == "plot"
38
- Requires-Dist: nbformat>=5.10.4; extra == "plot"
39
- Requires-Dist: numpy>=2.3.3; extra == "plot"
40
- Requires-Dist: plotly>=6.3.0; extra == "plot"
41
- Requires-Dist: polars>=1.33.1; extra == "plot"
42
- Requires-Dist: python-magic>=0.4.27; extra == "plot"
43
-
44
-
45
- <p align="center">
46
-
47
- <a href="https://github.com/thisismygitrepo/machineconfig/commits">
48
- <img src="https://img.shields.io/github/commit-activity/m/thisismygitrepo/machineconfig" />
49
- </a>
50
-
51
- </p>
52
-
53
-
54
- # Welcome to machineconfig
55
-
56
- Machineconfig is a package for managing configuration files (aka dotfiles). The idea is to collect those critical, time-consuming-files-to-setup in one directory and reference them via symbolic links from their original locations. Thus, when a new machine is to be setup, all that is required is to clone the repo in that machine and create the symbolic links.
57
- Dotfiles are divided into private and public. Examples of private ones are, `~/.gitconfig`, `~/.ssh`, etc. Whereas public config files are ones like `lfrc`. The private dotfiles are placed @ `~/dotfiles`. The files therein are encrypted before backedup.
58
-
59
- # Install On Windows:
60
-
61
- ```powershell
62
- # Temporary install:
63
- iex (iwr bit.ly/cfgwindows).Content
64
- # Or, if UV is installed:
65
- iex (uvx machineconfig define)
66
- # Permanent install:
67
- powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Skip if UV is already installed
68
- uvx install --upgrade machineconfig
69
- ```
70
-
71
- # Install On Linux and MacOS
72
-
73
- ```bash
74
- # Temporary install:
75
- . <(curl -L bit.ly/cfglinux)
76
- # Or, if UV is installed:
77
- . <(uvx machineconfig define)
78
- # Permanent install:
79
- curl -LsSf https://astral.sh/uv/install.sh | sh # Skip if UV is already installed
80
- uvx install --upgrade machineconfig
81
- ```
82
-
83
-
84
- # Author
85
- Alex Al-Saffar. [email](mailto:programmer@usa.com)
86
-
87
- # Contributor
88
- Ruby Chan. [email](mailto:ruby.chan@sa.gov.au)
89
-
90
-
91
- [![Alex's github activity graph](https://github-readme-activity-graph.vercel.app/graph?username=thisismygitrepo)](https://github.com/ashutosh00710/github-readme-activity-graph)
92
-