machineconfig 7.44__py3-none-any.whl → 7.46__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 (36) hide show
  1. machineconfig/jobs/installer/custom/hx.py +60 -8
  2. machineconfig/jobs/installer/installer_data.json +17 -0
  3. machineconfig/jobs/installer/package_groups.py +6 -5
  4. machineconfig/profile/create_helper.py +53 -17
  5. machineconfig/profile/mapper.toml +1 -0
  6. machineconfig/scripts/python/croshell.py +4 -4
  7. machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
  8. machineconfig/scripts/python/helpers_devops/cli_config.py +1 -1
  9. machineconfig/scripts/python/helpers_devops/cli_repos.py +1 -1
  10. machineconfig/scripts/python/helpers_devops/cli_self.py +3 -3
  11. machineconfig/scripts/python/helpers_devops/cli_utils.py +26 -30
  12. machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +1 -1
  13. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +1 -1
  14. machineconfig/scripts/python/helpers_repos/grource.py +1 -1
  15. machineconfig/scripts/python/utils.py +3 -1
  16. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
  17. machineconfig/settings/broot/conf.toml +1 -1
  18. machineconfig/settings/helix/config.toml +6 -4
  19. machineconfig/settings/helix/languages.toml +13 -4
  20. machineconfig/settings/helix/yazi-picker.sh +12 -0
  21. machineconfig/settings/shells/bash/init.sh +2 -2
  22. machineconfig/settings/shells/pwsh/init.ps1 +4 -3
  23. machineconfig/settings/shells/zsh/init.sh +17 -12
  24. machineconfig/settings/yazi/init.lua +26 -26
  25. machineconfig/settings/yazi/keymap.toml +33 -6
  26. machineconfig/settings/yazi/shell/yazi_cd.ps1 +9 -0
  27. machineconfig/settings/yazi/yazi.toml +5 -0
  28. machineconfig/setup_linux/web_shortcuts/interactive.sh +10 -10
  29. machineconfig/setup_windows/apps.ps1 +2 -2
  30. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +10 -10
  31. machineconfig/utils/ssh.py +1 -1
  32. {machineconfig-7.44.dist-info → machineconfig-7.46.dist-info}/METADATA +1 -1
  33. {machineconfig-7.44.dist-info → machineconfig-7.46.dist-info}/RECORD +36 -34
  34. {machineconfig-7.44.dist-info → machineconfig-7.46.dist-info}/WHEEL +0 -0
  35. {machineconfig-7.44.dist-info → machineconfig-7.46.dist-info}/entry_points.txt +0 -0
  36. {machineconfig-7.44.dist-info → machineconfig-7.46.dist-info}/top_level.txt +0 -0
@@ -33,7 +33,7 @@ config_dict: InstallerData = {
33
33
  }
34
34
 
35
35
 
36
- def main(installer_data: InstallerData, version: Optional[str], install_lib: bool = False):
36
+ def main(installer_data: InstallerData, version: Optional[str], install_lib: bool = True):
37
37
  _ = installer_data
38
38
  console = Console()
39
39
 
@@ -73,9 +73,6 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
73
73
  print("\n🗑️ [Step 3/5] Cleaning up previous installation (if any)...")
74
74
  runtime_path = PathExtended.home().joinpath(".config/helix/runtime")
75
75
  contrib_path = PathExtended.home().joinpath(".config/helix/contrib")
76
- runtime_path.delete(sure=True, verbose=False)
77
- contrib_path.delete(sure=True, verbose=False)
78
- print(f" ✨ Cleaned '{runtime_path}' and '{contrib_path}'.")
79
76
 
80
77
  print("\n📦 [Step 4/5] Installing Helix components...")
81
78
  target_config_dir = PathExtended.home().joinpath(".config/helix").expanduser()
@@ -85,9 +82,40 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
85
82
  target_bin_path = PathExtended(LINUX_INSTALL_PATH) if platform.system() == "Linux" else PathExtended("/usr/local/bin")
86
83
  exe_name = "hx"
87
84
  hx_file.move(folder=target_bin_path, overwrite=True)
85
+
86
+ # Always install contrib (regardless of install_lib flag) — treat it like the executable.
87
+ contrib_path.delete(sure=True, verbose=False)
88
+ contrib.move(folder=target_config_dir, overwrite=True)
89
+
90
+ # Install runtime only if install_lib is True. When copying runtime, copy all subfolders
91
+ # except 'grammars' (for which we only copy the specific python.so file if present).
88
92
  if install_lib:
89
- contrib.move(folder=target_config_dir, overwrite=True)
90
- runtime.move(folder=target_config_dir, overwrite=True)
93
+ runtime_path.delete(sure=True, verbose=False)
94
+ print(f" ✨ Cleaned '{runtime_path}' and '{contrib_path}'.")
95
+ target_runtime = target_config_dir.joinpath("runtime")
96
+ target_runtime.mkdir(parents=True, exist_ok=True)
97
+
98
+ # iterate runtime children and copy selectively
99
+ for child in runtime.iterdir():
100
+ # skip non-existent or weird entries
101
+ if not child.exists():
102
+ continue
103
+ if child.name == "grammars":
104
+ # copy only the python.so file from runtime/grammars if it exists
105
+ python_so = child.joinpath("python.so")
106
+ if python_so.exists() and python_so.is_file():
107
+ dest = target_runtime.joinpath("grammars")
108
+ python_so.copy(folder=dest, overwrite=True)
109
+ else:
110
+ # copy the whole child (file or directory) into target_runtime
111
+ # for directories, copy will create target_runtime/<child.name>
112
+ try:
113
+ child.copy(folder=target_runtime, overwrite=True)
114
+ except Exception:
115
+ # fallback: try copying contents if it's a directory
116
+ if child.is_dir():
117
+ for sub in child.iterdir():
118
+ sub.copy(folder=target_runtime.joinpath(child.name), overwrite=True)
91
119
  system_name = "Linux" if platform.system() == "Linux" else "macOS"
92
120
  console.print(
93
121
  Panel(
@@ -103,9 +131,33 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
103
131
  target_bin_path = PathExtended(WINDOWS_INSTALL_PATH)
104
132
  exe_name = "hx.exe"
105
133
  hx_file.move(folder=target_bin_path, overwrite=True)
134
+
135
+ # Always install contrib (regardless of install_lib flag)
136
+ contrib_path.delete(sure=True, verbose=False)
137
+ contrib.move(folder=target_config_dir, overwrite=True)
138
+
139
+ # Install runtime only if install_lib is True. Copy selectively as on POSIX.
106
140
  if install_lib:
107
- contrib.move(folder=target_config_dir, overwrite=True)
108
- runtime.move(folder=target_config_dir, overwrite=True)
141
+ runtime_path.delete(sure=True, verbose=False)
142
+ print(f" ✨ Cleaned '{runtime_path}' and '{contrib_path}'.")
143
+ target_runtime = target_config_dir.joinpath("runtime")
144
+ target_runtime.mkdir(parents=True, exist_ok=True)
145
+
146
+ for child in runtime.iterdir():
147
+ if not child.exists():
148
+ continue
149
+ if child.name == "grammars":
150
+ python_so = child.joinpath("python.so")
151
+ if python_so.exists() and python_so.is_file():
152
+ dest = target_runtime.joinpath("grammars")
153
+ python_so.copy(folder=dest, overwrite=True)
154
+ else:
155
+ try:
156
+ child.copy(folder=target_runtime, overwrite=True)
157
+ except Exception:
158
+ if child.is_dir():
159
+ for sub in child.iterdir():
160
+ sub.copy(folder=target_runtime.joinpath(child.name), overwrite=True)
109
161
  console.print(
110
162
  Panel(
111
163
  f"""✅ SUCCESS | Helix editor installed successfully on Windows!
@@ -2246,6 +2246,23 @@
2246
2246
  }
2247
2247
  }
2248
2248
  },
2249
+ {
2250
+ "appName": "aichat",
2251
+ "repoURL": "https://github.com/sigoden/aichat",
2252
+ "doc": "Terminal-based CLI agents and tools for productivity and coding.",
2253
+ "fileNamePattern": {
2254
+ "amd64": {
2255
+ "linux": "aichat-{version}-x86_64-unknown-linux-musl.tar.gz",
2256
+ "macos": "aichat-{version}-x86_64-apple-darwin.tar.gz",
2257
+ "windows": "aichat-{version}-x86_64-pc-windows-msvc.zip"
2258
+ },
2259
+ "arm64": {
2260
+ "linux": "aichat-{version}-aarch64-unknown-linux-musl.tar.gz",
2261
+ "macos": "aichat-{version}-aarch64-apple-darwin.tar.gz",
2262
+ "windows": "aichat-{version}-aarch64-pc-windows-msvc.zip"
2263
+ }
2264
+ }
2265
+ },
2249
2266
  {
2250
2267
  "appName": "qwen-code",
2251
2268
  "repoURL": "CMD",
@@ -3,6 +3,7 @@ from typing import Literal, TypeAlias, Union
3
3
  # AI/LLM Tools - AI-powered coding and chat assistants
4
4
  AGENTS = [
5
5
  "aider",
6
+ "aichat",
6
7
  "copilot",
7
8
  "gemini",
8
9
  "crush",
@@ -144,7 +145,6 @@ PACKAGES_MISC_DEV = [
144
145
  "Gorilla",
145
146
  "Redis",
146
147
  "transmission",
147
- "exa",
148
148
  "bytehound",
149
149
  "atuin",
150
150
  "xcrawl3r",
@@ -187,11 +187,12 @@ PACKAGES_FILE = [
187
187
  "pistol",
188
188
  "bat",
189
189
  "viu",
190
- "xplr",
191
- "joshuto",
192
- "lf",
193
- "tere",
190
+ # "xplr",
191
+ # "joshuto",
192
+ # "lf",
194
193
  "yazi",
194
+ "tere",
195
+ # "exa",
195
196
  "lsd",
196
197
  "zoxide",
197
198
  "diskonaut",
@@ -1,38 +1,74 @@
1
1
 
2
2
  from typing import Literal
3
+ from pathlib import Path
4
+ import shutil
3
5
  from machineconfig.utils.source_of_truth import LIBRARY_ROOT, CONFIG_ROOT
4
6
 
5
7
 
6
- def copy_assets_to_machine(which: Literal["scripts", "settings"]):
7
- # callers, symlink public, shell profile adder (requires init.ps1 and scripts dir to be present on machine)
8
+ def _copy_path(source: Path, target: Path, overwrite: bool = False) -> None:
9
+ source = source.expanduser().resolve()
10
+ target = target.expanduser().resolve()
11
+ if not source.exists():
12
+ raise FileNotFoundError(f"Source path does not exist: {source}")
13
+ target.parent.mkdir(parents=True, exist_ok=True)
14
+ if target.exists() and not overwrite:
15
+ raise FileExistsError(f"Target already exists and overwrite=False: {target}")
16
+ if target.exists() and overwrite:
17
+ if target.is_dir():
18
+ shutil.rmtree(target)
19
+ else:
20
+ target.unlink()
21
+ if source.is_file():
22
+ shutil.copy2(source, target)
23
+ elif source.is_dir():
24
+ shutil.copytree(source, target, dirs_exist_ok=overwrite)
25
+ else:
26
+ raise ValueError(f"Source is neither file nor directory: {source}")
27
+
28
+
29
+ def copy_assets_to_machine(which: Literal["scripts", "settings"]) -> None:
8
30
  import platform
9
- if platform.system().lower() == "windows":
31
+ import subprocess
32
+
33
+ system_name = platform.system().lower()
34
+ if system_name == "windows":
10
35
  system = "windows"
11
- elif platform.system().lower() == "linux" or platform.system().lower() == "darwin":
36
+ elif system_name in {"linux", "darwin"}:
12
37
  system = "linux"
13
38
  else:
14
- raise NotImplementedError(f"System {platform.system().lower()} not supported")
15
- from machineconfig.utils.path_extended import PathExtended
39
+ raise NotImplementedError(f"System {system_name} not supported")
40
+
16
41
  match which:
17
42
  case "scripts":
18
43
  source = LIBRARY_ROOT.joinpath("scripts", system)
19
- target = CONFIG_ROOT.joinpath("scripts", system)
20
-
21
- PathExtended(LIBRARY_ROOT.joinpath("scripts", "nu", "wrap_mcfg.nu")).copy(folder=CONFIG_ROOT.joinpath("scripts"), overwrite=True)
44
+ target = CONFIG_ROOT.joinpath("scripts")
45
+
46
+ wrap_mcfg_source = LIBRARY_ROOT.joinpath("scripts", "nu", "wrap_mcfg.nu")
47
+ wrap_mcfg_target = CONFIG_ROOT.joinpath("scripts", "wrap_mcfg.nu")
48
+ wrap_mcfg_target.parent.mkdir(parents=True, exist_ok=True)
49
+ _copy_path(source=wrap_mcfg_source, target=wrap_mcfg_target, overwrite=True)
22
50
  case "settings":
23
51
  source = LIBRARY_ROOT.joinpath("settings")
24
52
  target = CONFIG_ROOT.joinpath("settings")
25
53
 
26
- PathExtended(source).copy(folder=target.parent, overwrite=True)
27
-
28
- import platform
29
- system = platform.system().lower()
30
- if system == "linux" and which == "scripts":
31
- import subprocess
54
+ _copy_path(source=source, target=target, overwrite=True)
55
+
56
+ if system_name == "linux" and which == "scripts":
32
57
  from rich.console import Console
33
58
  console = Console()
34
59
  console.print("\n[bold]📜 Setting executable permissions for scripts...[/bold]")
35
- subprocess.run(f"chmod +x {CONFIG_ROOT.joinpath(f'scripts/{system.lower()}')} -R", shell=True, capture_output=True, text=True)
60
+ scripts_path = CONFIG_ROOT.joinpath(f"scripts/{system_name}")
61
+ subprocess.run(f"chmod +x {scripts_path} -R", shell=True, capture_output=True, text=True, check=False)
36
62
  console.print("[green]✅ Script permissions updated[/green]")
37
63
 
38
-
64
+ home_dir = Path.home()
65
+ if system_name == "windows":
66
+ yazi_plugins_dir = home_dir.joinpath("AppData", "Roaming", "yazi", "config")
67
+ else:
68
+ yazi_plugins_dir = home_dir.joinpath(".config", "yazi")
69
+
70
+ yazi_plugins_path = yazi_plugins_dir.joinpath("plugins")
71
+ if not yazi_plugins_path.exists():
72
+ yazi_plugins_dir.mkdir(parents=True, exist_ok=True)
73
+ import git
74
+ git.Repo.clone_from("https://github.com/yazi-rs/plugins", yazi_plugins_path)
@@ -229,6 +229,7 @@ config = { this = '~/AppData/Roaming/helix/config.toml', to_this = 'CONFIG_ROOT/
229
229
  [helix_linux]
230
230
  languages = { this = '~/.config/helix/languages.toml', to_this = 'CONFIG_ROOT/settings/helix/languages.toml' }
231
231
  config = { this = '~/.config/helix/config.toml', to_this = 'CONFIG_ROOT/settings/helix/config.toml' }
232
+ yazi_picker = { this = '~/.config/helix/yazi-picker.sh', to_this = 'CONFIG_ROOT/settings/helix/yazi-picker.sh' }
232
233
 
233
234
  [lvim_windows]
234
235
  config = { this = '~/AppData/Local/lvim/config.lua', to_this = 'CONFIG_ROOT/settings/lvim/windows/config.lua' }
@@ -130,7 +130,7 @@ def croshell(
130
130
  fire_line = f"uv run --python 3.14 --with visidata,pyarrow vd {str(file_obj)}"
131
131
  elif marimo:
132
132
  if Path.home().joinpath("code/machineconfig").exists(): requirements = f"""--with marimo --project "{str(Path.home().joinpath("code/machineconfig"))}" """
133
- else: requirements = """--python 3.14 --with "marimo,machineconfig[plot]>=7.40" """
133
+ else: requirements = """--python 3.14 --with "marimo,machineconfig[plot]>=7.46" """
134
134
  fire_line = f"""
135
135
  cd {str(pyfile.parent)}
136
136
  uv run --python 3.14 --with "marimo" marimo convert {pyfile.name} -o marimo_nb.py
@@ -138,14 +138,14 @@ uv run {requirements} marimo edit --host 0.0.0.0 marimo_nb.py
138
138
  """
139
139
  elif jupyter:
140
140
  if Path.home().joinpath("code/machineconfig").exists(): requirements = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with jupyterlab """
141
- else: requirements = """--with "machineconfig[plot]>=7.40" """
141
+ else: requirements = """--with "machineconfig[plot]>=7.46" """
142
142
  fire_line = f"uv run {requirements} jupyter-lab {str(nb_target)}"
143
143
  elif vscode:
144
144
  fire_line = f"""
145
145
  cd {str(pyfile.parent)}
146
146
  uv init --python 3.14
147
147
  uv venv
148
- uv add "machineconfig[plot]>=7.40"
148
+ uv add "machineconfig[plot]>=7.46"
149
149
  # code serve-web
150
150
  code --new-window {str(pyfile)}
151
151
  """
@@ -153,7 +153,7 @@ code --new-window {str(pyfile)}
153
153
  if interpreter == "ipython": profile = f" --profile {ipython_profile} --no-banner"
154
154
  else: profile = ""
155
155
  if Path.home().joinpath("code/machineconfig").exists(): ve_line = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" """
156
- else: ve_line = """--python 3.14 --with "machineconfig[plot]>=7.40" """
156
+ else: ve_line = """--python 3.14 --with "machineconfig[plot]>=7.46" """
157
157
  # ve_path_maybe, ipython_profile_maybe = get_ve_path_and_ipython_profile(Path.cwd())
158
158
  # --python 3.14
159
159
  fire_line = f"uv run {ve_line} {interpreter} {interactivity} {profile} {str(pyfile)}"
@@ -2,7 +2,7 @@
2
2
  # /// script
3
3
  # requires-python = ">=3.13"
4
4
  # dependencies = [
5
- # "machineconfig>=7.40",
5
+ # "machineconfig>=7.46",
6
6
  # "textual",
7
7
  # "pyperclip",
8
8
  # ]
@@ -29,7 +29,7 @@ def path():
29
29
  uv_with = ["textual"]
30
30
  uv_project_dir = None
31
31
  if not Path.home().joinpath("code/machineconfig").exists():
32
- uv_with.append("machineconfig>=7.40")
32
+ uv_with.append("machineconfig>=7.46")
33
33
  else:
34
34
  uv_project_dir = str(Path.home().joinpath("code/machineconfig"))
35
35
  run_shell_script(get_uv_command_executing_python_script(python_script=path.read_text(encoding="utf-8"), uv_with=uv_with, uv_project_dir=uv_project_dir)[0])
@@ -79,7 +79,7 @@ def analyze(directory: DirectoryArgument = None) -> None:
79
79
 
80
80
 
81
81
  def viz(
82
- repo: Annotated[str, typer.Option(..., "--repo", "-r", help="Path to git repository to visualize")] = Path.cwd().__str__(),
82
+ repo: Annotated[str, typer.Option(..., "--repo", "-r", help="Path to git repository to visualize")] = ".",
83
83
  output_file: Annotated[Optional[Path], typer.Option(..., "--output", "-o", help="Output video file (e.g., output.mp4). If specified, gource will render to video.")] = None,
84
84
  resolution: Annotated[str, typer.Option(..., "--resolution", "-res", help="Video resolution (e.g., 1920x1080, 1280x720)")] = "1920x1080",
85
85
  seconds_per_day: Annotated[float, typer.Option(..., "--seconds-per-day", "-spd", help="Speed of simulation (lower = faster)")] = 0.1,
@@ -46,9 +46,9 @@ def install(no_copy_assets: Annotated[bool, typer.Option("--no-assets-copy", "-n
46
46
  else:
47
47
  import platform
48
48
  if platform.system() == "Windows":
49
- run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=7.40" """)
49
+ run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=7.46" """)
50
50
  else:
51
- run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=7.40" """)
51
+ run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=7.46" """)
52
52
  from machineconfig.profile.create_shell_profile import create_default_shell_profile
53
53
  if not no_copy_assets:
54
54
  create_default_shell_profile() # involves copying assets too
@@ -73,7 +73,7 @@ def navigate():
73
73
  path = Path(navigator.__file__).resolve().parent.joinpath("devops_navigator.py")
74
74
  from machineconfig.utils.code import run_shell_script
75
75
  if Path.home().joinpath("code/machineconfig").exists(): executable = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with textual"""
76
- else: executable = """--with "machineconfig>=7.40,textual" """
76
+ else: executable = """--with "machineconfig>=7.46,textual" """
77
77
  run_shell_script(f"""uv run {executable} {path}""")
78
78
 
79
79
 
@@ -4,19 +4,6 @@ import typer
4
4
  from typing import Annotated, Literal, Optional, TypedDict
5
5
  from pathlib import Path
6
6
 
7
-
8
- # def copy(path: Annotated[str, typer.Argument(..., help="Path of the file to copy to clipboard")]):
9
- # def copy_internal(path: str):
10
- # import pyperclip
11
- # from pathlib import Path
12
- # pyperclip.copy(Path(path).read_text(encoding="utf-8"))
13
- # from machineconfig.utils.meta import lambda_to_python_script
14
- # from machineconfig.utils.code import exit_then_run_shell_script, get_uv_command_executing_python_script
15
- # py_script = lambda_to_python_script(lambda: copy_internal(path=str(path)), in_global=True, import_module=False)
16
- # shell_script, _python_file = get_uv_command_executing_python_script(python_script=py_script, uv_with=["pyperclip"], uv_project_dir=None)
17
- # exit_then_run_shell_script(shell_script, strict=True)
18
-
19
-
20
7
  def download(
21
8
  url: Annotated[Optional[str], typer.Argument(..., help="The URL to download the file from.")] = None,
22
9
  decompress: Annotated[bool, typer.Option("--decompress", "-d", help="Decompress the file if it's an archive.")] = False,
@@ -228,23 +215,32 @@ uv add --group plot \
228
215
  # Type hints for packages
229
216
  types-python-dateutil types-pyyaml types-requests types-tqdm \
230
217
  types-mysqlclient types-paramiko types-pytz types-sqlalchemy types-toml types-urllib3 \
218
+
231
219
  """
232
220
  from machineconfig.utils.code import run_shell_script
233
221
  run_shell_script(script)
234
- # def add_dev_packages(repo_dir: Annotated[Optional[str], typer.Option(..., "--repo-dir", "-r", help="Path to the repository root directory")] = None):
235
- # if repo_dir is None:
236
- # r_dir = Path.cwd()
237
- # else:
238
- # r_dir = Path(repo_dir).resolve()
239
- # if not r_dir.exists() or not r_dir.is_dir() or not (r_dir / "pyproject.toml").exists():
240
- # typer.echo(f"❌ The provided repo directory `{r_dir}` is not valid or does not contain a `pyproject.toml` file.")
241
- # raise typer.Exit(code=1)
242
- # command = f"""
243
- # cd "{r_dir}" || exit 1
244
- # uv add nbformat ipdb ipykernel ipython pylint pyright mypy pyrefly ty pytest
245
- # """
246
- # from machineconfig.utils.code import run_shell_script
247
- # typer.echo(f"➡️ Installing dev packages in repo at `{r_dir}`...")
248
- # run_shell_script(command)
249
- # typer.echo(f"✅ Dev packages installed successfully in repo at `{r_dir}`.")
250
- # # TODO: see upgrade packages.
222
+
223
+
224
+ def edit(path: Annotated[Optional[str], typer.Argument(..., help="The root directory of the project to edit, or a file path.")] = None) -> None:
225
+ if path is None:
226
+ root_path = Path.cwd()
227
+ print(f"No path provided. Using current working directory: {root_path}")
228
+ else:
229
+ root_path = Path(path).expanduser().resolve()
230
+ print(f"Using provided path: {root_path}")
231
+ from machineconfig.utils.accessories import get_repo_root
232
+ repo_root = get_repo_root(root_path)
233
+ if repo_root is not None and repo_root.joinpath("pyproject.toml").exists():
234
+ code = f"""
235
+ cd {repo_root}
236
+ uv add --dev pylsp-mypy python-lsp-server[all] pyright ruff-lsp # for helix editor.
237
+ source ./.venv/bin/activate
238
+ """
239
+ else:
240
+ code = ""
241
+ if root_path.is_file():
242
+ code += f"hx {root_path}"
243
+ else:
244
+ code += "hx"
245
+ from machineconfig.utils.code import exit_then_run_shell_script
246
+ exit_then_run_shell_script(code)
@@ -99,7 +99,7 @@ git pull originEnc master
99
99
  uv_project_dir = f"""{str(Path.home().joinpath("code/machineconfig"))}"""
100
100
  uv_with = None
101
101
  else:
102
- uv_with = ["machineconfig>=7.40"]
102
+ uv_with = ["machineconfig>=7.46"]
103
103
  uv_project_dir = None
104
104
 
105
105
  import tempfile
@@ -8,7 +8,7 @@ def analyze_repo_development(repo_path: Annotated[str, typer.Argument(..., help=
8
8
  from pathlib import Path
9
9
  count_lines_path = Path(count_lines.__file__)
10
10
  # --project $HOME/code/ machineconfig --group plot
11
- cmd = f"""uv run --python 3.14 --with "machineconfig[plot]>=7.40" {count_lines_path} analyze-over-time {repo_path}"""
11
+ cmd = f"""uv run --python 3.14 --with "machineconfig[plot]>=7.46" {count_lines_path} analyze-over-time {repo_path}"""
12
12
  from machineconfig.utils.code import run_shell_script
13
13
  run_shell_script(cmd)
14
14
 
@@ -100,7 +100,7 @@ def install_gource_windows(version: Optional[str] = None) -> None:
100
100
 
101
101
 
102
102
  def visualize(
103
- repo: Annotated[str, typer.Option("--repo", "-r", help="Path to git repository to visualize")] = Path.cwd().__str__(),
103
+ repo: Annotated[str, typer.Option("--repo", "-r", help="Path to git repository to visualize")] = ".",
104
104
  output_file: Annotated[Optional[Path], typer.Option("--output", "-o", help="Output video file (e.g., output.mp4). If specified, gource will render to video.")] = None,
105
105
  resolution: Annotated[str, typer.Option("--resolution", "-res", help="Video resolution (e.g., 1920x1080, 1280x720)")] = "1920x1080",
106
106
  seconds_per_day: Annotated[float, typer.Option("--seconds-per-day", "-spd", help="Speed of simulation (lower = faster)")] = 0.1,
@@ -1,6 +1,6 @@
1
1
 
2
2
 
3
- from machineconfig.scripts.python.helpers_devops.cli_utils import download, merge_pdfs, get_machine_specs, init_project, compress_pdf
3
+ from machineconfig.scripts.python.helpers_devops.cli_utils import download, merge_pdfs, get_machine_specs, init_project, compress_pdf, edit
4
4
  import typer
5
5
  from typing import Annotated
6
6
 
@@ -39,6 +39,8 @@ def get_app() -> typer.Typer:
39
39
  app.command(name="g", no_args_is_help=False, hidden=True)(get_machine_specs)
40
40
  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)
41
41
  app.command(name="i", no_args_is_help=False, hidden=True)(init_project)
42
+ app.command(name="edit", no_args_is_help=False, help="[e] Open a file in the default editor.")(edit)
43
+ app.command(name="e", no_args_is_help=False, hidden=True)(edit)
42
44
 
43
45
  app.command(name="pdf-merge", no_args_is_help=True, help="[pm] Merge two PDF files into one.")(merge_pdfs)
44
46
  app.command(name="pm", no_args_is_help=True, hidden=True)(merge_pdfs)
@@ -7,7 +7,7 @@ $user = ''
7
7
  $sharePath = ''
8
8
  $driveLetter = ''
9
9
 
10
- uv run --python 3.14 --with "machineconfig>=7.40" python -m machineconfig.scripts.python.mount_ssh
10
+ uv run --python 3.14 --with "machineconfig>=7.46" python -m machineconfig.scripts.python.mount_ssh
11
11
 
12
12
  net use T: \\sshfs.kr\$user@$host.local
13
13
  # this worked: net use T: \\sshfs\alex@alex-p51s-5.local
@@ -2,4 +2,4 @@
2
2
 
3
3
  terminal_title = "{file} 🐄"
4
4
 
5
- capture_mouse: false
5
+ capture_mouse = false
@@ -31,11 +31,13 @@ wrap-indicator = "" # set wrap-indicator to "" to hide it
31
31
  # ~/.config/helix/config.toml
32
32
  [keys.normal]
33
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
+
34
35
  # ~/.config/helix/config.toml
35
- [keys.normal.C-y]
36
+
37
+ # [keys.normal.C-y]
36
38
  # Open the file(s) in the current window
37
- 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}"
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}"
38
40
  # Open the file(s) in a vertical split
39
- 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}"
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}"
40
42
  # Open the file(s) in a horizontal split
41
- 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}"
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}"
@@ -1,13 +1,22 @@
1
- # adopted from https://github.com/helix-editor/helix/wiki/How-to-install-the-default-language-servers#python---pyright--ruff--black
1
+ # adopted from https://github.com/helix-editor/helix/wiki/Language-Server-Configurations
2
2
  # adopted from https://github.com/helix-editor/helix/discussions/6623
3
- # You will need: npm install pyright -g; pip install ruff-lsp; pip install black
3
+ # You will need: uv add --dev pylsp-mypy python-lsp-server[all] pyright ruff-lsp
4
4
 
5
5
  [[language]]
6
6
  name = "python"
7
- language-servers = [ "pyright", "ruff" ]
7
+ language-servers = ["pylsp", "pyright", "ruff", "pyrefly"]
8
+
9
+ [language-server.pyrefly]
10
+ command = "pyrefly"
11
+ args = [ "lsp" ]
12
+
13
+ [language-server.pylsp.config.pylsp]
14
+ plugins.pylsp_mypy.enabled = true
15
+ plugins.pylsp_mypy.live_mode = true
16
+
8
17
 
9
18
  [language-server.pyright.config.python.analysis]
10
- typeCheckingMode = "basic"
19
+ typeCheckingMode = "strict"
11
20
 
12
21
  [language-server.ruff]
13
22
  command = "ruff-lsp"
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env bash
2
+
3
+ paths=$(yazi "$2" --chooser-file=/dev/stdout | while read -r; do printf "%q " "$REPLY"; done)
4
+
5
+ if [[ -n "$paths" ]]; then
6
+ zellij action toggle-floating-panes
7
+ zellij action write 27 # send <Escape> key
8
+ zellij action write-chars ":$1 $paths"
9
+ zellij action write 13 # send <Enter> key
10
+ else
11
+ zellij action toggle-floating-panes
12
+ fi
@@ -23,7 +23,7 @@ CONFIG_ROOT="$HOME/.config/machineconfig"
23
23
 
24
24
  # 📂 Add directories to PATH
25
25
  add_to_path_if_not_already \
26
- "$CONFIG_ROOT/scripts/linux" \
26
+ "$CONFIG_ROOT/scripts" \
27
27
  "$HOME/dotfiles/scripts/linux" \
28
28
  "$HOME/.local/bin" \
29
29
  "$HOME/.cargo/bin" \
@@ -38,7 +38,7 @@ add_to_path_if_not_already \
38
38
  . $CONFIG_ROOT/settings/lf/linux/exe/lfcd.sh
39
39
  . $CONFIG_ROOT/settings/tere/terecd.sh
40
40
  . $CONFIG_ROOT/settings/yazi/shell/yazi_cd.sh
41
- . $CONFIG_ROOT/scripts/linux/wrap_mcfg
41
+ . $CONFIG_ROOT/scripts/wrap_mcfg
42
42
 
43
43
  # check if file in ~/dotfiles/machineconfig/init_linux.sh exists and source it
44
44
  if [ -f "$HOME/dotfiles/machineconfig/init_linux.sh" ]; then
@@ -15,7 +15,7 @@ function Add-ToPathIfNotAlready {
15
15
  }
16
16
 
17
17
  Add-ToPathIfNotAlready -Directories @(
18
- "$CONFIG_ROOT\scripts\windows",
18
+ "$CONFIG_ROOT\scripts",
19
19
  "$HOME\dotfiles\scripts\windows",
20
20
  "C:\Program Files (x86)\GnuWin32\bin",
21
21
  "C:\Program Files\CodeBlocks\MinGW\bin",
@@ -24,11 +24,12 @@ Add-ToPathIfNotAlready -Directories @(
24
24
  )
25
25
 
26
26
  # sources ================================================================
27
- if (Test-Path "$CONFIG_ROOT\scripts\windows\wrap_mcfg.ps1") {
27
+ if (Test-Path "$CONFIG_ROOT\scripts\wrap_mcfg.ps1") {
28
28
  . $CONFIG_ROOT\settings\broot\brootcd.ps1
29
29
  . $CONFIG_ROOT\settings\lf\windows\lfcd.ps1
30
30
  . $CONFIG_ROOT\settings\tere\terecd.ps1
31
- . $CONFIG_ROOT\scripts\windows\wrap_mcfg.ps1
31
+ . $CONFIG_ROOT\settings\yazi\shell\yazi_cd.ps1
32
+ . $CONFIG_ROOT\scripts\wrap_mcfg.ps1
32
33
 
33
34
  function lsdla { lsd -la }
34
35
  Set-Alias -Name l -Value lsdla -Option AllScope
@@ -1,4 +1,4 @@
1
- #!/bin/bash
1
+ #!/bin/zsh
2
2
  # Record script start time for runtime measurement
3
3
  # _START_TIME_NS=$(date +%s%N)
4
4
  # _show_elapsed() {
@@ -10,7 +10,7 @@
10
10
  # printf "Script runtime: %d.%03d seconds\n" "$_secs" "$_ms"
11
11
  # }
12
12
 
13
- # 🛠️ Bash Shell Configuration and Initialization
13
+ # 🛠️ Zsh Shell Configuration and Initialization
14
14
 
15
15
  add_to_path_if_not_already() {
16
16
  for dir in "$@"; do
@@ -23,7 +23,7 @@ CONFIG_ROOT="$HOME/.config/machineconfig"
23
23
 
24
24
  # 📂 Add directories to PATH
25
25
  add_to_path_if_not_already \
26
- "$CONFIG_ROOT/scripts/linux" \
26
+ "$CONFIG_ROOT/scripts" \
27
27
  "$HOME/dotfiles/scripts/linux" \
28
28
  "$HOME/.local/bin" \
29
29
  "$HOME/.cargo/bin" \
@@ -37,22 +37,27 @@ add_to_path_if_not_already \
37
37
  . $CONFIG_ROOT/settings/broot/br.sh
38
38
  . $CONFIG_ROOT/settings/lf/linux/exe/lfcd.sh
39
39
  . $CONFIG_ROOT/settings/tere/terecd.sh
40
+ . $CONFIG_ROOT/settings/yazi/shell/yazi_cd.sh
41
+ . $CONFIG_ROOT/scripts/wrap_mcfg
42
+
40
43
  # check if file in ~/dotfiles/machineconfig/init_linux.sh exists and source it
41
44
  if [ -f "$HOME/dotfiles/machineconfig/init_linux.sh" ]; then
42
45
  # echo "Sourcing $HOME/dotfiles/machineconfig/init_linux.sh"
43
46
  source "$HOME/dotfiles/machineconfig/init_linux.sh"
44
47
  fi
45
48
 
46
- # set alias l to lsd -la
47
49
  alias l='lsd -la'
48
- alias d=devops
49
- alias c=cloud
50
- alias a=agents
51
- alias s=sessions
52
- alias ff=ftpx
53
- alias f=fire
54
- alias r=croshell
55
- alias u=utils
50
+ alias d='wrap_in_shell_script devops'
51
+ alias c='wrap_in_shell_script cloud'
52
+ alias a='wrap_in_shell_script agents'
53
+ alias s='wrap_in_shell_script sessions'
54
+ alias fx='wrap_in_shell_script ftpx'
55
+ alias f='wrap_in_shell_script fire'
56
+ alias r='wrap_in_shell_script croshell'
57
+ alias u='wrap_in_shell_script utils'
58
+ alias t='wrap_in_shell_script terminal'
59
+ alias ms='wrap_in_shell_script msearch'
60
+ alias x='. $CONFIG_ROOT/scripts/linux/wrap_mcfg explore'
56
61
 
57
62
  # alias gcs='gh copilot suggest -t shell'
58
63
  # alias gcg='gh copilot suggest -t git'
@@ -1,36 +1,36 @@
1
1
 
2
2
 
3
3
  -- https://yazi-rs.github.io/docs/tips#symlink-in-status
4
- -- Status:children_add(function(self)
5
- -- local h = self._current.hovered
6
- -- if h and h.link_to then
7
- -- return " -> " .. tostring(h.link_to)
8
- -- else
9
- -- return ""
10
- -- end
11
- -- end, 3300, Status.LEFT)
4
+ Status:children_add(function(self)
5
+ local h = self._current.hovered
6
+ if h and h.link_to then
7
+ return " -> " .. tostring(h.link_to)
8
+ else
9
+ return ""
10
+ end
11
+ end, 3300, Status.LEFT)
12
12
 
13
13
 
14
14
  -- https://yazi-rs.github.io/docs/tips#user-group-in-status
15
- -- Status:children_add(function()
16
- -- local h = cx.active.current.hovered
17
- -- if not h or ya.target_family() ~= "unix" then
18
- -- return ""
19
- -- end
15
+ Status:children_add(function()
16
+ local h = cx.active.current.hovered
17
+ if not h or ya.target_family() ~= "unix" then
18
+ return ""
19
+ end
20
20
 
21
- -- return ui.Line {
22
- -- ui.Span(ya.user_name(h.cha.uid) or tostring(h.cha.uid)):fg("magenta"),
23
- -- ":",
24
- -- ui.Span(ya.group_name(h.cha.gid) or tostring(h.cha.gid)):fg("magenta"),
25
- -- " ",
26
- -- }
27
- -- end, 500, Status.RIGHT)
21
+ return ui.Line {
22
+ ui.Span(ya.user_name(h.cha.uid) or tostring(h.cha.uid)):fg("magenta"),
23
+ ":",
24
+ ui.Span(ya.group_name(h.cha.gid) or tostring(h.cha.gid)):fg("magenta"),
25
+ " ",
26
+ }
27
+ end, 500, Status.RIGHT)
28
28
 
29
29
 
30
30
  -- https://yazi-rs.github.io/docs/tips#username-hostname-in-header
31
- -- Header:children_add(function()
32
- -- if ya.target_family() ~= "unix" then
33
- -- return ""
34
- -- end
35
- -- return ui.Span(ya.user_name() .. "@" .. ya.host_name() .. ":"):fg("blue")
36
- -- end, 500, Header.LEFT)
31
+ Header:children_add(function()
32
+ if ya.target_family() ~= "unix" then
33
+ return ""
34
+ end
35
+ return ui.Span(ya.user_name() .. "@" .. ya.host_name() .. ":"):fg("blue")
36
+ end, 500, Header.LEFT)
@@ -15,6 +15,7 @@ desc = "Open PowerShell here"
15
15
 
16
16
  # FROM https://github.com/yazi-rs/plugins/tree/main/toggle-pane.yazi
17
17
  # keymap.toml
18
+ # parent, current, preview
18
19
  [[mgr.prepend_keymap]]
19
20
  on = "T"
20
21
  run = "plugin toggle-pane min-preview"
@@ -38,15 +39,41 @@ run = 'shell -- qlmanage -p "$@"'
38
39
 
39
40
  [[mgr.prepend_keymap]]
40
41
  on = "F"
41
- run = 'shell -- ~/.config/machineconfig/scripts/linux/wrap_mcfg fire "$0"'
42
+ run = 'shell --block -- ~/.config/machineconfig/scripts/wrap_mcfg fire "$0"'
42
43
  desc = "Run fire on hovered file"
43
44
 
44
- [[mgr.prepend_keymap]]
45
- on = "R"
46
- run = 'shell -- ~/.config/machineconfig/scripts/linux/wrap_mcfg croshell "$0"'
47
- desc = "Run croshell on hovered file"
48
-
49
45
 
50
46
  [[mgr.prepend_keymap]]
51
47
  on = [ "g", "r" ]
52
48
  run = 'shell -- ya emit cd "$(git rev-parse --show-toplevel)"'
49
+ desc = "go to repo root"
50
+
51
+ [[mgr.prepend_keymap]]
52
+ on = ["R", "v"]
53
+ run = 'shell -- code "$0"'
54
+ desc = "Read with vscode"
55
+
56
+ [[mgr.prepend_keymap]]
57
+ on = ["R", "h"]
58
+ run = 'shell --block -- ~/.config/machineconfig/scripts/wrap_mcfg utils edit "$0"'
59
+ desc = "Read with helix"
60
+
61
+ [[mgr.prepend_keymap]]
62
+ on = ["R", "c"]
63
+ run = 'shell --block -- ~/.config/machineconfig/scripts/wrap_mcfg croshell "$0"'
64
+ desc = "Read with croshell"
65
+
66
+
67
+ [[mgr.prepend_keymap]]
68
+ on = ["R", "f"]
69
+ run = 'shell --block -- ~/.config/machineconfig/scripts/wrap_mcfg fire "$0"'
70
+ desc = "Read with fire"
71
+
72
+ [[mgr.prepend_keymap]]
73
+ on = ["R", "F"]
74
+ run = 'shell --block -- ~/.config/machineconfig/scripts/wrap_mcfg fire -i "$0"'
75
+ desc = "Read with fire interactively"
76
+
77
+ [[mgr.prepend_keymap]]
78
+ on = "y"
79
+ run = [ 'shell -- echo "$@" | cb cp0', "yank" ]
@@ -0,0 +1,9 @@
1
+ function y {
2
+ $tmp = (New-TemporaryFile).FullName
3
+ yazi $args --cwd-file="$tmp"
4
+ $cwd = Get-Content -Path $tmp -Encoding UTF8
5
+ if (-not [String]::IsNullOrEmpty($cwd) -and $cwd -ne $PWD.Path) {
6
+ Set-Location -LiteralPath (Resolve-Path -LiteralPath $cwd).Path
7
+ }
8
+ Remove-Item -Path $tmp
9
+ }
@@ -10,3 +10,8 @@ dir = "~/.config/yazi/plugins"
10
10
  name = "toggle-pane"
11
11
  path = "toggle-pane.yazi"
12
12
 
13
+
14
+ [preview]
15
+ # Change them to your desired values
16
+ max_width = 1000
17
+ max_height = 1000
@@ -2,16 +2,16 @@
2
2
  . <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/uv.sh")
3
3
  . <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/scripts/linux/wrap_mcfg")
4
4
 
5
- alias devops='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.40" devops'
6
- alias cloud='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.40" cloud'
7
- alias agents='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.40" agents'
8
- alias sessions='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.40" sessions'
9
- alias ftpx='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.40" ftpx'
10
- alias fire='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.40" fire'
11
- alias croshell='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.40" croshell'
12
- alias utils='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.40" utils'
13
- alias terminal='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.40" terminal'
14
- alias msearch='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.40" msearch'
5
+ alias devops='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.46" devops'
6
+ alias cloud='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.46" cloud'
7
+ alias agents='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.46" agents'
8
+ alias sessions='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.46" sessions'
9
+ alias ftpx='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.46" ftpx'
10
+ alias fire='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.46" fire'
11
+ alias croshell='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.46" croshell'
12
+ alias utils='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.46" utils'
13
+ alias terminal='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.46" terminal'
14
+ alias msearch='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.46" msearch'
15
15
 
16
16
  alias d='wrap_in_shell_script devops'
17
17
  alias c='wrap_in_shell_script cloud'
@@ -11,8 +11,8 @@ winget install --no-upgrade --name "Powershell" --Id "Microsof
11
11
  winget install --no-upgrade --name "Git" --Id "Git.Git" --source winget --scope user --accept-package-agreements --accept-source-agreements
12
12
  winget install --no-upgrade --name "Neovim" --Id "Neovim.Neovim" --source winget --scope user --accept-package-agreements --accept-source-agreements
13
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 --Id "CoreyButler.NVMforWindows" --source winget --scope user --accept-package-agreements --accept-source-agreements
15
- # winget install --no-upgrade --name "Starship" --Id "Starship.Starship" --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
16
  Install-Module -Name Terminal-Icons -Repository PSGallery -Force -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
17
17
  Install-Module -Name PSFzf -SkipPublisherCheck # -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
18
18
 
@@ -3,16 +3,16 @@
3
3
  iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/uv.ps1").Content
4
4
  iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/scripts/windows/wrap_mcfg.ps1").Content
5
5
 
6
- function devops { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.40" devops $args }
7
- function cloud { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.40" cloud $args }
8
- function agents { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.40" agents $args }
9
- function sessions { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.40" sessions $args }
10
- function ftpx { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.40" ftpx $args }
11
- function fire { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.40" fire $args }
12
- function croshell { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.40" croshell $args }
13
- function utils { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.40" utils $args }
14
- function terminal { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.40" terminal $args }
15
- function msearch { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.40" msearch $args }
6
+ function devops { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.46" devops $args }
7
+ function cloud { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.46" cloud $args }
8
+ function agents { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.46" agents $args }
9
+ function sessions { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.46" sessions $args }
10
+ function ftpx { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.46" ftpx $args }
11
+ function fire { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.46" fire $args }
12
+ function croshell { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.46" croshell $args }
13
+ function utils { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.46" utils $args }
14
+ function terminal { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.46" terminal $args }
15
+ function msearch { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.46" msearch $args }
16
16
 
17
17
  function d { wrap_in_shell_script devops @args }
18
18
  function c { wrap_in_shell_script cloud @args }
@@ -8,7 +8,7 @@ from machineconfig.utils.terminal import Response
8
8
  from machineconfig.utils.accessories import pprint, randstr
9
9
  from machineconfig.utils.meta import lambda_to_python_script
10
10
  UV_RUN_CMD = "$HOME/.local/bin/uv run" if platform.system() != "Windows" else """& "$env:USERPROFILE/.local/bin/uv" run"""
11
- MACHINECONFIG_VERSION = "machineconfig>=7.40"
11
+ MACHINECONFIG_VERSION = "machineconfig>=7.46"
12
12
  DEFAULT_PICKLE_SUBDIR = "tmp_results/tmp_scripts/ssh"
13
13
 
14
14
  class SSH:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 7.44
3
+ Version: 7.46
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -51,11 +51,11 @@ machineconfig/cluster/templates/cli_trogon.py,sha256=PFWGy8SFYIhT9r3ZV4oIEYfImsQ
51
51
  machineconfig/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  machineconfig/jobs/installer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
53
  machineconfig/jobs/installer/check_installations.py,sha256=hkHmmT7Bx3_QWRn2v8dCKOzAapFzqHRzbe-Q08GLnKE,10743
54
- machineconfig/jobs/installer/installer_data.json,sha256=IVOjJv4TXTf_laFr9OwwDtjmkssFvTbsTB8M-CpxAus,82754
55
- machineconfig/jobs/installer/package_groups.py,sha256=VvnRCAi_Xf3x6HuhtiSIcBqcgwcQ7A58V4Ed5M4P-ww,5271
54
+ machineconfig/jobs/installer/installer_data.json,sha256=WJ0v1f86duVBp945xm52m7-mNmgDer3DCUA-aluTxCA,83436
55
+ machineconfig/jobs/installer/package_groups.py,sha256=nRru-M8wiqdSs3U8TDOGFmA2xTV4gwFUeMJZ28xBrvw,5293
56
56
  machineconfig/jobs/installer/custom/boxes.py,sha256=ws8QRbDn48oKhbQntr54I0nSfkwINbprjTy0HOpuX40,1974
57
57
  machineconfig/jobs/installer/custom/gh.py,sha256=gn7TUSrsLx7uqFqj1Z-iYglS0EYBSgtJ9jWHxaJIfXM,4119
58
- machineconfig/jobs/installer/custom/hx.py,sha256=QoTdAtr1AoqQO2bJqyVAZY8kjyWzVBbtUTj6hSd1wOY,5959
58
+ machineconfig/jobs/installer/custom/hx.py,sha256=c670AJYgTRS9QN0ooRt8oz3Cxwd9Fv16WpA4rCr7JL0,8728
59
59
  machineconfig/jobs/installer/custom_dev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
60
  machineconfig/jobs/installer/custom_dev/alacritty.py,sha256=STXertp5pE6VVhcjAfZSKBxAC94S2HAzas646jwd4ow,2754
61
61
  machineconfig/jobs/installer/custom_dev/brave.py,sha256=kHgGRwgKrvpIlGzmdnWO6HJnSrnj8RlBEV_1Zz4s_Hw,2829
@@ -93,11 +93,11 @@ machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1,s
93
93
  machineconfig/profile/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
94
  machineconfig/profile/backup.toml,sha256=Hb25sIdKVvLqOF62NgiOpGZxd45I6IhsNHu623RtfQQ,766
95
95
  machineconfig/profile/bash_shell_profiles.md,sha256=mio0xkMTwO-F3fikWIfgcdQaPCmQrmkxJMNtZsTe9TI,514
96
- machineconfig/profile/create_helper.py,sha256=JLBryJ192Gk0ztbNhv9PFlsMVB6ZQH_2GVWHFeRylH8,1663
96
+ machineconfig/profile/create_helper.py,sha256=Iov9j_jJpZ5Vea9lFHPFgC1FINnZCO5QtEqGQwHkUYA,3001
97
97
  machineconfig/profile/create_links.py,sha256=42U5dEu7fMnGBAqyhQ1VspFaZg3VssMMQSdpGEmpHnE,14199
98
98
  machineconfig/profile/create_links_export.py,sha256=DNBdylSzDdBq_wAduIYbscpOWoTx_QVynOP27y0mklA,4444
99
99
  machineconfig/profile/create_shell_profile.py,sha256=jjCwH3rNxVOcb9sgbZQsjYlKGfqhDvPxBDrkFLThT3c,7221
100
- machineconfig/profile/mapper.toml,sha256=pSL6gDHJwkJps0-qqw3ApZBnamADVSH2OuJmrK2jBzU,12666
100
+ machineconfig/profile/mapper.toml,sha256=oRy8wG7wubiFHrZmSKopsZleJg0UVwGorQrIwU5shUI,12779
101
101
  machineconfig/profile/records/generic/shares.toml,sha256=FduDztfyQtZcr5bfx-RSKhEEweweQSWfVXkKWnx8hCY,143
102
102
  machineconfig/profile/records/linux/apps_summary_report.csv,sha256=pw9djvaRUPalKDLn2sl3odcbD2_Zx3aEupsQ8UPfaaY,2738
103
103
  machineconfig/profile/records/linux/apps_summary_report.md,sha256=l77oofA6Rliql0ZgKGIZi8bstFoGyyGTxeS8p2PtOj0,5634
@@ -114,7 +114,7 @@ machineconfig/scripts/nu/wrap_mcfg.nu,sha256=9heiUHVkHjI_AMXT5QJJixk7ZK_hJNV_A8l
114
114
  machineconfig/scripts/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
115
  machineconfig/scripts/python/agents.py,sha256=aVbLQDgpngXZm4taHcED4sAxyHvV2_Dz5VW3apPcQcY,10651
116
116
  machineconfig/scripts/python/cloud.py,sha256=yAD6ciKiEtv2CH3g2NScDK5cpCZQi7Vu8yyeehw_cU8,1263
117
- machineconfig/scripts/python/croshell.py,sha256=lpi77ZnKWOirT8Vkb_6bUg7G82XBZhqRgOVcvC_wMG8,8379
117
+ machineconfig/scripts/python/croshell.py,sha256=bvB82BSQTTrW4BckEPhOY5gMCC75okzf3zyXWs9WgW0,8379
118
118
  machineconfig/scripts/python/define.py,sha256=AtuVac6tJeDMcxtbWmQh1TH3dYAPSGFdO51b75zJVeI,717
119
119
  machineconfig/scripts/python/devops.py,sha256=Lv4d-UlyOREj4VTcu_pxswYo54Mawe3XGeKjreGQDYg,2222
120
120
  machineconfig/scripts/python/devops_navigator.py,sha256=5Cm384D4S8_GsvMzTwr0C16D0ktf8_5Mk5bEJncwDO8,237
@@ -126,7 +126,7 @@ machineconfig/scripts/python/machineconfig.py,sha256=l211lxHRcQ6BH7x3FwQHSJCYbYs
126
126
  machineconfig/scripts/python/msearch.py,sha256=3NbwJFJtrvPSVyOfa6ogPjD-NVuRJHeAQ1WriDXCduU,737
127
127
  machineconfig/scripts/python/sessions.py,sha256=Q_fbprawvW1x_E6jKQ-Z2Z5MRurRaepKUvi5z1G4CUw,9531
128
128
  machineconfig/scripts/python/terminal.py,sha256=PQ2C2flC2UngfeTNYhHLBiwj__kmE12gxZu2ivtr4Kg,5978
129
- machineconfig/scripts/python/utils.py,sha256=ujheT1cmITLe4RNNwnS6LX7WRXTFJNW6sWJIZA1K8c4,2970
129
+ machineconfig/scripts/python/utils.py,sha256=WHf7ahRjAW7dOfjJ83hpsWe5F-If-IdJCBMzTYSPbdM,3149
130
130
  machineconfig/scripts/python/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
131
  machineconfig/scripts/python/ai/generate_files.py,sha256=VfjKdwgF8O6E4oiRtfWNliibLmmwGe7f9ld6wpOsXTw,14498
132
132
  machineconfig/scripts/python/ai/initai.py,sha256=P4-NCLJPWeNef_k-l4TQ92AB1Xm1k3xzdqSBIjmevnQ,1573
@@ -159,7 +159,7 @@ machineconfig/scripts/python/ai/solutions/opencode/opencode.json,sha256=nahHKRw1
159
159
  machineconfig/scripts/python/ai/solutions/opencode/opencode.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
160
160
  machineconfig/scripts/python/env_manager/__init__.py,sha256=E4LAHbU1wo2dLjE36ntv8U7QNTe8TasujUAYK9SLvWk,6
161
161
  machineconfig/scripts/python/env_manager/path_manager_backend.py,sha256=ZVGlGJALhg7zNABDdwXxL7MFbL2BXPebObipXSLGbic,1552
162
- machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=iyjWG20F4pNlecrWR-3NaH_IFE6YnMVqo73kc3W-5qg,6932
162
+ machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=VvwAy5jcIn5weNt9fKXF-uz2xFaxfVfcmH809L8Me0Q,6932
163
163
  machineconfig/scripts/python/helpers_agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
164
  machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py,sha256=YD6-rtudHNip8tx85amSmOZZIHBP9khq4az3dF41j6U,5934
165
165
  machineconfig/scripts/python/helpers_agents/fire_agents_help_search.py,sha256=qIfSS_su2YJ1Gb0_lu4cbjlJlYMBw0v52NTGiSrGjk8,2991
@@ -189,16 +189,16 @@ machineconfig/scripts/python/helpers_croshell/start_slidev.py,sha256=HfJReOusTPh
189
189
  machineconfig/scripts/python/helpers_croshell/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
190
190
  machineconfig/scripts/python/helpers_croshell/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
191
191
  machineconfig/scripts/python/helpers_devops/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
192
- machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=8RU2EC6cDgqSZXVARlkzhkLd1MtLkkDmyTBl68-nZE8,5922
192
+ machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=wisKd7KdlYb6bEkH-wwhQA4q2EgeJio8N4CfrCRVrec,5922
193
193
  machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py,sha256=SL6P3Ioib3P9OWG1GmULb5-l4ySYZ1RuuIDCHY4lCyU,3502
194
194
  machineconfig/scripts/python/helpers_devops/cli_data.py,sha256=79Xvx7YnbueruEnl69hrDg2AhVxf_zCUdlVcKfeMGyQ,1774
195
195
  machineconfig/scripts/python/helpers_devops/cli_nw.py,sha256=u_2l5Cc3dFnh0seKrbH9j-Z0bUCrgy45MOM6HCjgkQg,7562
196
- machineconfig/scripts/python/helpers_devops/cli_repos.py,sha256=g6qDJ_da6BquSmNUUHY-xK6BY4MlAE4wZQaZXYthfho,12495
197
- machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=b_3sHYEXb8OOdXEN2iprOvI73tEkHH9pfFbOFlUvxnE,6515
196
+ machineconfig/scripts/python/helpers_devops/cli_repos.py,sha256=mFrhosIFCCT70d82NYUxp9ta6BYeAHQNhsx7CEmWcg4,12478
197
+ machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=EmSzgMn2g8Btm15gBW9vRc4VFoSIiyytv-3HRU7OjDY,6515
198
198
  machineconfig/scripts/python/helpers_devops/cli_share_file.py,sha256=AL04784ncdP9ue5bKyqJfXrMksxjFKtuv_w353kQQsI,6298
199
199
  machineconfig/scripts/python/helpers_devops/cli_share_server.py,sha256=S2xQ7sDVvfvGKcJNlquXj9Gc0ofk2EXnfvpRx2AWVD8,6278
200
200
  machineconfig/scripts/python/helpers_devops/cli_terminal.py,sha256=k_PzXaiGyE0vXr0Ii1XcJz2A7UvyPJrR31TRWt4RKRI,6019
201
- machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=bLUhBkv7KwG7BQ-j83OLHkfYkRyTLhq3SdwtbEflLY4,11882
201
+ machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=E3UAqqna7rZD7u6j4K997trVPfR-e5x7uPCZANE63IY,11138
202
202
  machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py,sha256=Dn8luB6QJzxKiiFSC-NMqiYddWZoca3A8eOjMYZDzTc,5598
203
203
  machineconfig/scripts/python/helpers_devops/devops_status.py,sha256=PJVPhfhXq8der6Xd-_fjZfnizfM-RGfJApkRGhGBmNo,20525
204
204
  machineconfig/scripts/python/helpers_devops/devops_update_repos.py,sha256=kSln8_-Wn7Qu0NaKdt-QTN_bBVyTIAWHH8xVYKK-vCM,10133
@@ -231,11 +231,11 @@ machineconfig/scripts/python/helpers_navigator/search_bar.py,sha256=kDi8Jhxap8wd
231
231
  machineconfig/scripts/python/helpers_repos/action.py,sha256=8je051kpGZ7A_GRsQyWKhPZ8xVW7tSm4bnPu6VjxaXk,9755
232
232
  machineconfig/scripts/python/helpers_repos/action_helper.py,sha256=XRCtkGkNrxauqUd9qkxtfJt02Mx2gejSYDLL0jyWn24,6176
233
233
  machineconfig/scripts/python/helpers_repos/clone.py,sha256=UULEG5xJuXlPGU0nqXH6U45jA9DOFqLw8B4iPytCwOQ,5471
234
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=zOztyXfM9kFBZVxlAQLGd86dLltQ9AF46a-WH4OwFxE,11271
234
+ machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=WVKlidI3iuQyg0rJSUsgrUamvgWiuqXEJZjkzCcwmu4,11271
235
235
  machineconfig/scripts/python/helpers_repos/count_lines.py,sha256=Q5c7b-DxvTlQmljoic7niTuiAVyFlwYvkVQ7uRJHiTo,16009
236
- machineconfig/scripts/python/helpers_repos/count_lines_frontend.py,sha256=hqRyPC3lON22FC-nUUt8U2Hrnpdujfw8zOWUpNxmhK4,607
236
+ machineconfig/scripts/python/helpers_repos/count_lines_frontend.py,sha256=wjm0sGTP_J1875a8tytSQTT7PhFOfTNq2COLbD3GxrA,607
237
237
  machineconfig/scripts/python/helpers_repos/entrypoint.py,sha256=WYEFGUJp9HWImlFjbs_hiFZrUqM_KEYm5VvSUjWd04I,2810
238
- machineconfig/scripts/python/helpers_repos/grource.py,sha256=oJj1-gqlkV3Z_BrIOXRmtzoXcuBl0xTYfulJ5D0srOc,14656
238
+ machineconfig/scripts/python/helpers_repos/grource.py,sha256=lHxyfsIQr4pbu71Ekqu-9nohR7LXbN2wufw7LPTyOgM,14639
239
239
  machineconfig/scripts/python/helpers_repos/record.py,sha256=FQo0swuJZOp0I2XGK-t1OQU4zJHmQ2z9zTpDD30Tmg4,11001
240
240
  machineconfig/scripts/python/helpers_repos/sync.py,sha256=P0P7Dog2uFDvwxcLP3YHPwm6AtvCm6QOz1BLqw53xOo,3259
241
241
  machineconfig/scripts/python/helpers_repos/update.py,sha256=cUIMUMm-50HrY6fzxSMZnFplhToVjVPZMm1j_otTha4,11060
@@ -261,18 +261,19 @@ machineconfig/scripts/windows/wrap_mcfg.ps1,sha256=tFCj4wK7B35Uf6kdGCRV7EIr1xZFT
261
261
  machineconfig/scripts/windows/mounts/mount_nfs.ps1,sha256=XrAdzpxE6a4OccSmWJ7YWHJTnsZK8uXnFE5j9GOPA20,2026
262
262
  machineconfig/scripts/windows/mounts/mount_nw.ps1,sha256=puxcfZc3ZCJerm8pj8OZGVoTYkhzp-h7oV-MrksSqIE,454
263
263
  machineconfig/scripts/windows/mounts/mount_smb.ps1,sha256=PzYWpIO9BpwXjdWlUQL9pnMRnOGNSkxfh4bHukJFme8,69
264
- machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=ZUy6_oLtUvVAGlqsKnuZTndcLCL9fUPMzSBfYcWzZVM,322
264
+ machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=Di2uDlhsS4x2KwCIgSrplxgaaiUPSUTwv2g18RxOMhU,322
265
265
  machineconfig/scripts/windows/mounts/share_cloud.cmd,sha256=exD7JCdxw2LqVjw2MKCYHbVZlEqmelXtwnATng-dhJ4,1028
266
266
  machineconfig/scripts/windows/mounts/share_smb.ps1,sha256=U7x8ULYSjbgzTtiHNSKQuTaZ_apilDvkGV5Xm5hXk5M,384
267
267
  machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1,sha256=Wv-SLscdckV-1mG3p82VXKPY9zW3hgkRmcLUXIZ1daE,253
268
268
  machineconfig/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
269
269
  machineconfig/settings/broot/br.sh,sha256=7CCJflIAirkiuo1suDCT8BzhVzDdJWEfbAxNDG4VPSI,1455
270
270
  machineconfig/settings/broot/brootcd.ps1,sha256=BB8uGnoVywxFWSgwsHxlbS8V4W_Qom3L1SedekGpgWA,877
271
- machineconfig/settings/broot/conf.toml,sha256=2C2ggpFR0Z-Sceu0iwHW0LFz45AjwyeCBD0PSP0VIoo,55
271
+ machineconfig/settings/broot/conf.toml,sha256=-skF2U0iojMZ2OD-3HViWAkyNKonfcvdZKF6LZKck34,56
272
272
  machineconfig/settings/glow/glow.yml,sha256=59eFsIPBXRgJSVb6kcA7XHkWuLe0_wNandhc9KGykmE,245
273
273
  machineconfig/settings/gromit-mpx/gromit-mpx.cfg,sha256=NW7a4OmGPpMCiFkQNNFNdUf5VqL1DN8Tkiz2oVRt7Gw,1067
274
- machineconfig/settings/helix/config.toml,sha256=RxQG1rtcqI9ZduT5dxqyHeAJy0UXc_3POuuW4XVPsqU,1338
275
- machineconfig/settings/helix/languages.toml,sha256=d6zOu9PjmGhOyvYKHD6LMeUXtVF5vR6IqxQ-jpRpRz4,725
274
+ machineconfig/settings/helix/config.toml,sha256=uXHZEP1t3SeF9HYuRoWHrwnLyjTmJdw0S607Ej4tVY4,1352
275
+ machineconfig/settings/helix/languages.toml,sha256=l0OYgoKvlyed15BDdcd4dTH6BzydhHMjgvRJ9W8MvE4,874
276
+ machineconfig/settings/helix/yazi-picker.sh,sha256=1uFyRFwaIRuZKwrfxhryHw0TSj5Myiv5INmgJfgLOkA,352
276
277
  machineconfig/settings/keras/keras.json,sha256=uSJa-eCun6xl6xvlVP-totLgWDw7etCMzxZT5jS2mgw,115
277
278
  machineconfig/settings/keyboard/espanso/config/default.yml,sha256=RBIuA4AsAWB8BoRojQhbkVV0LtjL0sYFPaLtgbWookM,1685
278
279
  machineconfig/settings/keyboard/espanso/match/base.yml,sha256=A0QcNSzbdqSUNh42WqGLCZkwi5l8LmbDUuBO8XV_jIQ,1567
@@ -333,7 +334,7 @@ machineconfig/settings/rofi/config.rasi,sha256=nDX5B8wdXQYF1fwiOTBRJUI4l_gQbYaLa
333
334
  machineconfig/settings/rofi/config_default.rasi,sha256=rTfKnC-bZuWX1l-lWQACCUOE1ShhkfykAxtXX9PlQHE,4694
334
335
  machineconfig/settings/shells/alacritty/alacritty.toml,sha256=EbL-2Y4QunW1pvRWB2yuLCw8MMPONheJr5LFoWRieUQ,871
335
336
  machineconfig/settings/shells/alacritty/alacritty.yml,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
336
- machineconfig/settings/shells/bash/init.sh,sha256=PrBMBWwQM_gqY5Q9kCQ0oOTaeiuCWn0TSOvjbzPaRhk,3077
337
+ machineconfig/settings/shells/bash/init.sh,sha256=p_xu0lPV0hbw70Kn4a5tVhwRQI9GyvDbg460UnzLd0U,3065
337
338
  machineconfig/settings/shells/hyper/.hyper.js,sha256=h-HqeYlvPvPD4Ee7828Cxo87uVkzbMGJFqXTZIWoegw,8884
338
339
  machineconfig/settings/shells/ipy/profiles/default/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
339
340
  machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -342,13 +343,13 @@ machineconfig/settings/shells/kitty/kitty.conf,sha256=lDdx-dUX3jbKGb3BkS2f2TOpmg
342
343
  machineconfig/settings/shells/nushell/config.nu,sha256=5eN9S7BL9MbznZEwqk2bxcYXzWlaF_g-9JL4tw0pp4E,78
343
344
  machineconfig/settings/shells/nushell/env.nu,sha256=4VmaXb-qP6qnMD5TPzkXMLFNlB5QC4l9HEzCvXZE2GQ,315
344
345
  machineconfig/settings/shells/nushell/init.nu,sha256=7JQShOUpztbyoLDb9XJCmRYacrNF6xIt_9uCafUmWJ0,4578
345
- machineconfig/settings/shells/pwsh/init.ps1,sha256=TB_oCtrrRT3rIo8350rrf7a96E5HGIdTWK1awb6HBSE,2899
346
+ machineconfig/settings/shells/pwsh/init.ps1,sha256=T0Zw9mfQa8rgDTxRk40UbzBq-7gkMgINAC7Or5W4HIY,2926
346
347
  machineconfig/settings/shells/pwsh/profile.ps1,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
347
348
  machineconfig/settings/shells/starship/starship.toml,sha256=d5lWKC0AnTcriRAZV1opEZy76QknSpKFgJ3jyW9_vZ0,1305
348
349
  machineconfig/settings/shells/vtm/settings.xml,sha256=5TNXd-i0eUGo2w3tuhY9aOkwoJdqih8_HO_U6uL2Dts,18262
349
350
  machineconfig/settings/shells/wezterm/wezterm.lua,sha256=ZaUFqVNibGD5cyzlnYhIMAakTig6P7qggi5hvHGASPk,6210
350
351
  machineconfig/settings/shells/wt/settings.json,sha256=Nzk9IpD-Bp36wKJAgG7XAa0GVwW3I29xNjUW5AYfxEI,10599
351
- machineconfig/settings/shells/zsh/init.sh,sha256=X6HP0LKoLCOUpKetWA3ZwPaqz_o31m66SbGS328EbwU,2692
352
+ machineconfig/settings/shells/zsh/init.sh,sha256=3C1YM6bX5MSlC3b-PzHAHj2MzgOAJ767WBCMHL0cJOA,3060
352
353
  machineconfig/settings/streamlit/config.toml,sha256=O3d4ax88hoW7gm5r51xmCcPssQ8ol-oFz_d0NUDlU4k,483
353
354
  machineconfig/settings/svim/linux/init.toml,sha256=IEEQN_80H0A4NPv7bt5zltEKAbpRkJyCQTJKbu2bBf8,1346
354
355
  machineconfig/settings/svim/windows/init.toml,sha256=djllsYR_rvHNSR715QhqtLdHW8b-SpUZ8QquWEG7gVM,1347
@@ -357,10 +358,11 @@ machineconfig/settings/tere/terecd.sh,sha256=vDKRbldub0aGQwnWtDwkPnSQHKpVQiDg1RT
357
358
  machineconfig/settings/tmux/.tmate.conf,sha256=dhj8IbNUe_oaBSmnAE-k2rcHJ6_zcd7pHqrmKP19zA0,57
358
359
  machineconfig/settings/tmux/.tmux.conf,sha256=55qyCgKHOyg70kJ42GXrHwqAAtRtnsWtdHCuPt-8Hy8,94
359
360
  machineconfig/settings/wsl/.wslconfig,sha256=wL4oWxRw_0vLQXheSLNuGUQqypqEKlVqYALosPI9jhY,1279
360
- machineconfig/settings/yazi/init.lua,sha256=6ed3Ao_Q32DyMB8YvN9huH3SQe70eOIQ0pJ23hXymCE,970
361
- machineconfig/settings/yazi/keymap.toml,sha256=mlYE3PPdIYaT3xQYkR3imDurbr1y93xy1Fkj6OYmW7s,1274
361
+ machineconfig/settings/yazi/init.lua,sha256=fW_FIMNSh8mFGMYqwPerr61HJYMNQJfeKMWzoaVpFKs,892
362
+ machineconfig/settings/yazi/keymap.toml,sha256=5RGutk3rMvGIQ33Co7_Whl5CHAvqm2a41X1NakZ5b5E,1962
362
363
  machineconfig/settings/yazi/theme.toml,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
363
- machineconfig/settings/yazi/yazi.toml,sha256=Qs2AbcrdFpbp_c8vFR3eSE_Ue3uPRjckj4hYvfwaEnw,150
364
+ machineconfig/settings/yazi/yazi.toml,sha256=KRGbjMkCmbCdTRxEXJXd5gI1kTEQK7VtDGm1MXsOJDw,234
365
+ machineconfig/settings/yazi/shell/yazi_cd.ps1,sha256=gvXZyD2Csil8KjaMtrx5ZkF9AqRt0LaVfTL724vxMCE,312
364
366
  machineconfig/settings/yazi/shell/yazi_cd.sh,sha256=oC_MSBbnSwCg6qgGe598Qhm0V2B9RD5IcIbKEabn7aE,208
365
367
  machineconfig/settings/zed/settings.json,sha256=WYuoJycLVhM1-_Haq2VlERds3W7LZFzJ1qJp7lwhnos,789
366
368
  machineconfig/settings/zellij/config.kdl,sha256=J1FOE2hSinVG26LPlvMhTBWKjZAw_2wcoSEZrwKgn5M,10329
@@ -382,14 +384,14 @@ machineconfig/setup_linux/others/cli_installation.sh,sha256=gVvszYZJgKPRJx2SEaE3
382
384
  machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKGPn8fIdZMn3p0RrHEkb8rWBGsdVGbus,1207
383
385
  machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
384
386
  machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
385
- machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=ZJ1hofuXlW7cTzh3D-tEnbQyivBid2nIDZx_pvsvwgo,1581
387
+ machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=tTLR2kS_YrbxHTQKg4NGtsxIivY_gfFC6HrzFJhK_3c,1581
386
388
  machineconfig/setup_mac/__init__.py,sha256=Q1waupi5vCBroLqc8Rtnw69_7jLnm2Cs7_zH_GSZgMs,616
387
389
  machineconfig/setup_mac/apps.sh,sha256=R0N6fBwLCzwy4qAormyMerXXXrHazibSkY6NrNOpTQU,2772
388
390
  machineconfig/setup_mac/apps_gui.sh,sha256=3alvddg918oMlJB2aUWJWpGGoaq5atlxcaOwhnyXlRI,9517
389
391
  machineconfig/setup_mac/uv.sh,sha256=CSN8oCBKS-LK1vJJqYOhAMcrouTf4Q_F3cpplc_ddMA,1157
390
392
  machineconfig/setup_mac/ssh/openssh_setup.sh,sha256=TxfySnwFYg1UQLXmJbEQ2gfEWIT084F5JvNZI9ncpc0,3537
391
393
  machineconfig/setup_windows/__init__.py,sha256=NnSVZkIBoxoMgkj-_KAqGonH3YziBIWXOKDEcmNAGTY,386
392
- machineconfig/setup_windows/apps.ps1,sha256=dmZQZD4ZlNZo9jYkjIS3ag4qDAYZvaLysjmo9ELwBA4,11218
394
+ machineconfig/setup_windows/apps.ps1,sha256=rc9M0T6pXK7QunucyF4o9KTULu5xUFOhWRC9uQJH8ho,11020
393
395
  machineconfig/setup_windows/uv.ps1,sha256=ukk1Abh-q-RfpoEqI2XTE2dcQJmHk0VFF6WqkK3TW8Q,350
394
396
  machineconfig/setup_windows/others/docker.ps1,sha256=M8NfsSxH8YlmY92J4rSe1xWOwTW8IFrdgb8cI8Riu2E,311
395
397
  machineconfig/setup_windows/others/obs.ps1,sha256=2andchcXpxS3rqZjGaMpY5VShxTAKWvw6eCrayjuaLo,30
@@ -397,7 +399,7 @@ machineconfig/setup_windows/others/power_options.ps1,sha256=c7Hn94jBD5GWF29CxMhm
397
399
  machineconfig/setup_windows/ssh/add-sshkey.ps1,sha256=qfPdqCpd9KP3VhH4ifsUm1Xvec7c0QVl4Wt8JIAm9HQ,1653
398
400
  machineconfig/setup_windows/ssh/add_identity.ps1,sha256=b8ZXpmNUSw3IMYvqSY7ClpdWPG39FS7MefoWnRhWN2U,506
399
401
  machineconfig/setup_windows/ssh/openssh-server.ps1,sha256=OMlYQdvuJQNxF5EILLPizB6BZAT3jAmDsv1WcVVxpFQ,2529
400
- machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=ptqDuvaIG7Zm2-2iinHY7BMI75nIbXgGNOQ75r1KTCg,1916
402
+ machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=lUNbGtF6834igGOvckErEnb9v45VTj_73xO4PYprxRY,1916
401
403
  machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
402
404
  machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
403
405
  machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -415,7 +417,7 @@ machineconfig/utils/procs.py,sha256=YPA_vEYQGwPd_o_Lc6nOTBo5BrB1tSs8PJ42XiGpenM,
415
417
  machineconfig/utils/scheduler.py,sha256=fguwvINyaupOxdU5Uadyxalh_jXTXDzt0ioEgjEOKcM,14705
416
418
  machineconfig/utils/scheduling.py,sha256=vcJgajeJPSWkJNlarYJSmLvasdOuCtBM4druOAB1Nwc,11089
417
419
  machineconfig/utils/source_of_truth.py,sha256=ZAnCRltiM07ig--P6g9_6nEAvNFC4X4ERFTVcvpIYsE,764
418
- machineconfig/utils/ssh.py,sha256=MLHbiZzVvn0QbNfhL4CbXBDNSjyTIAwqqhQMX4-0GsM,39274
420
+ machineconfig/utils/ssh.py,sha256=ba-N8LYlLSz1ynFVkTRg2zZMjc0n7Li7MILS1fXFRpE,39274
419
421
  machineconfig/utils/terminal.py,sha256=VDgsjTjBmMGgZN0YIc0pJ8YksLDrBtiXON1EThy7_is,4264
420
422
  machineconfig/utils/tst.py,sha256=6u1GI49NdcpxH2BYGAusNfY5q9G_ytCGVzFM5b6HYpM,674
421
423
  machineconfig/utils/upgrade_packages.py,sha256=e4iJn_9vL2zCJxAR2dhKJjM0__ALKgI5yB1uBRxSjhQ,6994
@@ -444,8 +446,8 @@ machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoS
444
446
  machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
445
447
  machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
446
448
  machineconfig/utils/ssh_utils/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
447
- machineconfig-7.44.dist-info/METADATA,sha256=0ykBKVEj443dNz7Ty8d27kDuZ-6sT5jTdfaS1jvr3Tg,3396
448
- machineconfig-7.44.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
449
- machineconfig-7.44.dist-info/entry_points.txt,sha256=_JNgkzaa_gVAWyZ6UwPwXXQqURRSvAGhrVQ1RiU2sHc,746
450
- machineconfig-7.44.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
451
- machineconfig-7.44.dist-info/RECORD,,
449
+ machineconfig-7.46.dist-info/METADATA,sha256=zHF9t7eYEGsOMQz0fbYnwWPzLZ_3skaVrl9KAUiGg3Q,3396
450
+ machineconfig-7.46.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
451
+ machineconfig-7.46.dist-info/entry_points.txt,sha256=_JNgkzaa_gVAWyZ6UwPwXXQqURRSvAGhrVQ1RiU2sHc,746
452
+ machineconfig-7.46.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
453
+ machineconfig-7.46.dist-info/RECORD,,