machineconfig 7.79__py3-none-any.whl → 7.83__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 (52) hide show
  1. machineconfig/jobs/installer/custom/yazi.py +120 -0
  2. machineconfig/jobs/installer/custom_dev/nerdfont.py +1 -1
  3. machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +26 -12
  4. machineconfig/jobs/installer/custom_dev/sysabc.py +0 -5
  5. machineconfig/jobs/installer/installer_data.json +162 -94
  6. machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
  7. machineconfig/profile/create_helper.py +0 -12
  8. machineconfig/profile/mapper.toml +2 -2
  9. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +1 -0
  10. machineconfig/scripts/python/croshell.py +4 -4
  11. machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
  12. machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
  13. machineconfig/scripts/python/helpers_devops/cli_config.py +10 -0
  14. machineconfig/scripts/python/helpers_devops/cli_nw.py +15 -16
  15. machineconfig/scripts/python/helpers_devops/cli_self.py +4 -4
  16. machineconfig/scripts/python/helpers_devops/cli_terminal.py +2 -5
  17. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfg +2 -2
  18. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +58 -1
  19. machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +1 -1
  20. machineconfig/scripts/python/helpers_repos/count_lines.py +40 -11
  21. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +1 -1
  22. machineconfig/scripts/python/helpers_utils/path.py +7 -4
  23. machineconfig/scripts/python/msearch.py +37 -7
  24. machineconfig/scripts/python/utils.py +3 -3
  25. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
  26. machineconfig/settings/yazi/init.lua +4 -0
  27. machineconfig/settings/yazi/keymap_linux.toml +11 -4
  28. machineconfig/settings/yazi/theme.toml +4 -0
  29. machineconfig/settings/yazi/yazi_linux.toml +84 -0
  30. machineconfig/settings/yazi/yazi_windows.toml +58 -0
  31. machineconfig/setup_linux/web_shortcuts/interactive.sh +10 -10
  32. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +10 -10
  33. machineconfig/utils/installer_utils/github_release_bulk.py +104 -62
  34. machineconfig/utils/installer_utils/install_from_url.py +122 -102
  35. machineconfig/utils/installer_utils/installer_class.py +15 -72
  36. machineconfig/utils/installer_utils/installer_cli.py +29 -44
  37. machineconfig/utils/installer_utils/installer_helper.py +100 -0
  38. machineconfig/utils/installer_utils/installer_runner.py +5 -8
  39. machineconfig/utils/ssh_utils/abc.py +2 -2
  40. machineconfig/utils/ssh_utils/wsl.py +44 -2
  41. {machineconfig-7.79.dist-info → machineconfig-7.83.dist-info}/METADATA +2 -2
  42. {machineconfig-7.79.dist-info → machineconfig-7.83.dist-info}/RECORD +45 -47
  43. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfag +0 -17
  44. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfrga +0 -21
  45. machineconfig/scripts/python/helpers_msearch/scripts_linux/skrg +0 -4
  46. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfb.ps1 +0 -3
  47. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfrga.bat +0 -20
  48. machineconfig/settings/yazi/yazi.toml +0 -17
  49. machineconfig/setup_linux/others/cli_installation.sh +0 -137
  50. {machineconfig-7.79.dist-info → machineconfig-7.83.dist-info}/WHEEL +0 -0
  51. {machineconfig-7.79.dist-info → machineconfig-7.83.dist-info}/entry_points.txt +0 -0
  52. {machineconfig-7.79.dist-info → machineconfig-7.83.dist-info}/top_level.txt +0 -0
@@ -1,2 +1,59 @@
1
+ #!/usr/bin/env pwsh
2
+ [CmdletBinding()]
3
+ param(
4
+ [Parameter(ValueFromRemainingArguments = $true)]
5
+ [string[]]$QueryTokens
6
+ )
1
7
 
2
- Invoke-PsFzfRipgrep $args
8
+ if ($null -eq $QueryTokens) {
9
+ $QueryTokens = @()
10
+ }
11
+
12
+ $initialQuery = if ($QueryTokens.Count -gt 0) { [string]::Join(' ', $QueryTokens) } else { '' }
13
+ $rgPrefix = 'rg --column --line-number --no-heading --color=always --smart-case '
14
+
15
+ $escapedDefault = if ($initialQuery.Length -gt 0) {
16
+ $rgPrefix + '"' + $initialQuery.Replace('"', '""') + '" || type nul'
17
+ } else {
18
+ 'type nul'
19
+ }
20
+
21
+ $previousDefault = $env:FZF_DEFAULT_COMMAND
22
+ $env:FZF_DEFAULT_COMMAND = $escapedDefault
23
+
24
+ $reloadBinding = "change:reload:$rgPrefix{q} || type nul"
25
+ $ctrlFBinding = 'ctrl-f:unbind(change,ctrl-f)+change-prompt(2. fzf> )+enable-search+clear-query+rebind(ctrl-r)'
26
+ $ctrlRBinding = "ctrl-r:unbind(ctrl-r)+change-prompt(1. ripgrep> )+disable-search+reload($rgPrefix{q} || type nul)+rebind(change,ctrl-f)"
27
+
28
+ try {
29
+ $selectionRaw = & fzf --ansi `
30
+ --color 'hl:-1:underline,hl+:-1:underline:reverse' `
31
+ --disabled `
32
+ --query $initialQuery `
33
+ --bind $reloadBinding `
34
+ --bind $ctrlFBinding `
35
+ --bind $ctrlRBinding `
36
+ --prompt '1. ripgrep> ' `
37
+ --delimiter ':' `
38
+ --header 'CTRL-R (ripgrep mode) | CTRL-F (fzf mode)' `
39
+ --preview 'bat --color=always {1} --highlight-line {2}' `
40
+ --preview-window 'up,60%,border-bottom,+{2}+3/3,~3'
41
+ }
42
+ finally {
43
+ if ($null -ne $previousDefault) {
44
+ $env:FZF_DEFAULT_COMMAND = $previousDefault
45
+ } else {
46
+ Remove-Item Env:FZF_DEFAULT_COMMAND -ErrorAction SilentlyContinue
47
+ }
48
+ }
49
+
50
+ if ($LASTEXITCODE -ne 0 -or [string]::IsNullOrWhiteSpace($selectionRaw)) {
51
+ exit
52
+ }
53
+
54
+ if ($selectionRaw -match '^(?<path>.+?):(?<line>\d+):(?<column>\d+):') {
55
+ $path = $Matches['path']
56
+ $line = [int]$Matches['line']
57
+ $column = [int]$Matches['column']
58
+ & hx ("{0}:{1}:{2}" -f $path,$line,$column)
59
+ }
@@ -105,7 +105,7 @@ git pull originEnc master
105
105
  uv_project_dir = f"""{str(Path.home().joinpath("code/machineconfig"))}"""
106
106
  uv_with = None
107
107
  else:
108
- uv_with = ["machineconfig>=7.79"]
108
+ uv_with = ["machineconfig>=7.83"]
109
109
  uv_project_dir = None
110
110
 
111
111
  import tempfile
@@ -5,7 +5,9 @@ from collections import defaultdict
5
5
  from datetime import datetime
6
6
 
7
7
  from pathlib import Path
8
+ from rich.console import Console
8
9
  from rich.progress import track
10
+ from rich.table import Table
9
11
  import typer
10
12
 
11
13
 
@@ -14,9 +16,6 @@ if TYPE_CHECKING:
14
16
  import polars as pl
15
17
 
16
18
 
17
- app = typer.Typer()
18
-
19
-
20
19
  def count_lines_in_commit(commit: "Any") -> int:
21
20
  _total_lines = 0
22
21
  for _file in commit.stats.files:
@@ -81,7 +80,10 @@ def get_default_branch(repo: Repo) -> str:
81
80
  return repo.head.reference.name # If neither exists, get the branch the HEAD is pointing to
82
81
 
83
82
 
84
- @app.command()
83
+
84
+ console = Console()
85
+
86
+
85
87
  def count_historical(repo_path: Annotated[str, typer.Argument(..., help="Path to the git repository")]):
86
88
  """Count total historical lines of Python code in the repository."""
87
89
  print(f"Analyzing repository: {repo_path}")
@@ -89,7 +91,7 @@ def count_historical(repo_path: Annotated[str, typer.Argument(..., help="Path to
89
91
  print(f"\nTotal historical lines of Python code: {total_loc}")
90
92
 
91
93
 
92
- @app.command()
94
+
93
95
  def analyze_over_time(repo_path: Annotated[str, typer.Argument(..., help="Path to the git repository")]):
94
96
  """Analyze a git repository to track Python code size over time with visualization."""
95
97
  repo: Repo = Repo(repo_path)
@@ -170,8 +172,14 @@ def analyze_over_time(repo_path: Annotated[str, typer.Argument(..., help="Path t
170
172
  html_path = plot_dir.joinpath("code_size_evolution.html")
171
173
  png_path = plot_dir.joinpath("code_size_evolution.png")
172
174
 
173
- fig.write_html(html_path, include_plotlyjs="cdn")
174
- fig.write_image(png_path, width=1200, height=700, scale=2)
175
+ try:
176
+ fig.write_html(html_path, include_plotlyjs="cdn")
177
+ except Exception as e:
178
+ print(f"❌ Error saving HTML plot: {str(e)}")
179
+ try:
180
+ fig.write_image(png_path, width=1200, height=700, scale=2)
181
+ except Exception as e:
182
+ print(f"❌ Error saving PNG plot: {str(e)}")
175
183
 
176
184
  print(f"🖼️ Interactive plot saved as {html_path}")
177
185
  print(f"🖼️ Static image saved as {png_path}")
@@ -232,8 +240,17 @@ def _print_python_files_by_size_impl(repo_path: str) -> "Union[pl.DataFrame, Exc
232
240
  file_count: int = len(df)
233
241
 
234
242
  # Print the DataFrame
235
- print("\n📊 Python Files Line Count (sorted max to min):")
236
- print(df)
243
+ console.print("\n📊 Python Files Line Count (sorted max to min):")
244
+
245
+ table = Table(show_header=True, header_style="bold cyan")
246
+ table.add_column("#", justify="right")
247
+ table.add_column("File", overflow="fold")
248
+ table.add_column("Lines", justify="right")
249
+
250
+ for idx, row in enumerate(df.iter_rows(named=True), 1):
251
+ table.add_row(str(idx), row["filename"], f"{row['lines']:,}")
252
+
253
+ console.print(table)
237
254
  print(f"\n📁 Total Python files: {file_count}")
238
255
  print(f"📝 Total lines of Python code: {total_lines:,}")
239
256
 
@@ -335,7 +352,7 @@ def _print_python_files_by_size_impl(repo_path: str) -> "Union[pl.DataFrame, Exc
335
352
  return Exception(f"❌ Error analyzing repository: {str(e)}")
336
353
 
337
354
 
338
- @app.command()
355
+
339
356
  def print_python_files_by_size(repo_path: Annotated[str, typer.Argument(..., help="Path to the git repository")]):
340
357
  """Print Python files sorted by size with visualizations."""
341
358
  result = _print_python_files_by_size_impl(repo_path)
@@ -344,5 +361,17 @@ def print_python_files_by_size(repo_path: Annotated[str, typer.Argument(..., hel
344
361
  return
345
362
 
346
363
 
364
+ def get_app():
365
+ app = typer.Typer()
366
+ app.command(name="count-historical", no_args_is_help=True, help="[c] Count lines of code in a git repository")(count_historical)
367
+ app.command(name="c", hidden=True, no_args_is_help=True, help="Alias for count-historical")(count_historical)
368
+ app.command(name="analyze-over-time", no_args_is_help=True, help="[a] Analyze code size over time in a git repository")(analyze_over_time)
369
+ app.command(name="a", hidden=True, no_args_is_help=True, help="Alias for analyze-over-time")(analyze_over_time)
370
+ app.command(name="print-python-files-by-size", no_args_is_help=True, help="[p] Print Python files by size in a git repository")(print_python_files_by_size)
371
+ app.command(name="p", hidden=True, no_args_is_help=True, help="Alias for print-python-files-by-size")(print_python_files_by_size)
372
+ return app
373
+
374
+
347
375
  if __name__ == "__main__":
348
- app()
376
+ get_app()()
377
+
@@ -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.79" {count_lines_path} analyze-over-time {repo_path}"""
11
+ cmd = f"""uv run --python 3.14 --with "machineconfig[plot]>=7.83" {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
 
@@ -2,20 +2,23 @@
2
2
 
3
3
 
4
4
  import typer
5
-
6
5
  from typing import Optional, Annotated, Literal, TypedDict
7
6
 
8
7
 
9
- def path():
8
+ def tui_env(which: Annotated[Literal["PATH", "p", "ENV", "e"], typer.Argument(help="Which environment variable to display.")] = "ENV") -> None:
10
9
  """📚 NAVIGATE PATH variable with TUI"""
11
10
  from machineconfig.scripts.python import env_manager as navigator
12
11
  from pathlib import Path
13
- path = Path(navigator.__file__).resolve().parent.joinpath("path_manager_tui.py")
12
+ match which:
13
+ case "PATH" | "p":
14
+ path = Path(navigator.__file__).resolve().parent.joinpath("path_manager_tui.py")
15
+ case "ENV" | "e":
16
+ path = Path(navigator.__file__).resolve().parent.joinpath("env_manager_tui.py")
14
17
  from machineconfig.utils.code import run_shell_script, get_uv_command_executing_python_script
15
18
  uv_with = ["textual"]
16
19
  uv_project_dir = None
17
20
  if not Path.home().joinpath("code/machineconfig").exists():
18
- uv_with.append("machineconfig>=7.79")
21
+ uv_with.append("machineconfig>=7.83")
19
22
  else:
20
23
  uv_project_dir = str(Path.home().joinpath("code/machineconfig"))
21
24
  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])
@@ -5,8 +5,30 @@ from typing import Annotated
5
5
 
6
6
  def machineconfig_search(
7
7
  directory: Annotated[str, typer.Option(..., "--directory", "-d", help="The directory to search")] = ".",
8
- ast: Annotated[bool, typer.Option(..., "--ast", "-a", help="The abstract syntax tree search/ tree sitter search of symbols")] = False):
9
-
8
+ ast: Annotated[bool, typer.Option(..., "--ast", "-a", help="The abstract syntax tree search/ tree sitter search of symbols")] = False,
9
+ symantic: Annotated[bool, typer.Option(..., "--symantic", "-s", help="The symantic search of symbols")] = False,
10
+ extension: Annotated[str, typer.Option(..., "--extension", "-e", help="File extension to filter by (e.g., .py, .js)")] = "",
11
+ file: Annotated[bool, typer.Option(..., "--file", "-f", help="File search using fzf")] = False,
12
+ no_dotfiles: Annotated[bool, typer.Option(..., "--no-dotfiles", "-d", help="Exclude dotfiles from search")] = False,
13
+ rga: Annotated[bool, typer.Option(..., "--rga", "-a", help="Use ripgrep-all for searching instead of ripgrep")] = False,
14
+ install_dependencies: Annotated[bool, typer.Option(..., "--install-dependencies", "-p", help="Install required dependencies if missing")] = False
15
+ ):
16
+ if install_dependencies:
17
+ from machineconfig.utils.installer_utils.installer_cli import install_if_missing
18
+ install_if_missing("fzf")
19
+ install_if_missing("bat")
20
+ install_if_missing("fd")
21
+ install_if_missing("rg") # ripgrep
22
+ install_if_missing("rga") # ripgrep-all
23
+ # install_if_missing("tree-sitter-cli")
24
+ return
25
+ if symantic:
26
+ script = ""
27
+ for an_ex in extension.split(","):
28
+ script = script + f"""\nparse *.{an_ex} """
29
+ from machineconfig.utils.code import run_shell_script
30
+ run_shell_script(script=script)
31
+ return
10
32
  if ast:
11
33
  from machineconfig.scripts.python.helpers.ast_search import get_repo_symbols
12
34
  symbols = get_repo_symbols(directory)
@@ -21,17 +43,25 @@ def machineconfig_search(
21
43
  except Exception as e:
22
44
  print(f"❌ Error during selection: {e}")
23
45
  return None
24
-
46
+ if file:
47
+ script = """fzf --ansi --preview-window 'right:60%' --preview 'bat --color=always --style=numbers,grid,header --line-range :300 {}' """
48
+ if no_dotfiles:
49
+ script = "fd | " + script
50
+ from machineconfig.utils.code import run_shell_script
51
+ run_shell_script(script=script)
52
+ return
25
53
  from machineconfig.scripts.python.helpers_msearch import FZFG_LINUX_PATH, FZFG_WINDOWS_PATH
26
54
  import platform
27
- if platform.system() == "Linux":
28
- script_path = FZFG_LINUX_PATH
55
+ if platform.system() == "Linux" or platform.system() == "Darwin":
56
+ script = FZFG_LINUX_PATH.read_text(encoding="utf-8")
29
57
  elif platform.system() == "Windows":
30
- script_path = FZFG_WINDOWS_PATH
58
+ script = FZFG_WINDOWS_PATH.read_text(encoding="utf-8")
31
59
  else:
32
60
  raise RuntimeError("Unsupported platform")
61
+ if rga:
62
+ script = script.replace("rg ", "rga ").replace("ripgrep", "ripgrep-all")
33
63
  from machineconfig.utils.code import exit_then_run_shell_script
34
- exit_then_run_shell_script(script=script_path.read_text(encoding="utf-8"), strict=False)
64
+ exit_then_run_shell_script(script=script, strict=False)
35
65
 
36
66
 
37
67
  def main():
@@ -1,7 +1,7 @@
1
1
 
2
2
 
3
3
  from machineconfig.scripts.python.helpers_devops.cli_utils import merge_pdfs, compress_pdf
4
- from machineconfig.scripts.python.helpers_utils.path import edit_file_with_hx, get_machine_specs, init_project, path
4
+ from machineconfig.scripts.python.helpers_utils.path import edit_file_with_hx, get_machine_specs, init_project, tui_env
5
5
  from machineconfig.scripts.python.helpers_utils.download import download
6
6
  import typer
7
7
  from typing import Annotated
@@ -33,8 +33,8 @@ def get_app() -> typer.Typer:
33
33
  app.command(name="kill-process", no_args_is_help=False, help="⚔️ [k] Choose a process to kill")(kill_process)
34
34
  app.command(name="k", no_args_is_help=False, help="Choose a process to kill", hidden=True)(kill_process)
35
35
 
36
- app.command("path", no_args_is_help=False, help="📚 [p] NAVIGATE PATH variable with TUI")(path)
37
- app.command("p", no_args_is_help=False, help="NAVIGATE PATH variable with TUI", hidden=True)(path)
36
+ app.command("environment", no_args_is_help=False, help="📚 [v] NAVIGATE ENV/PATH variable with TUI")(tui_env)
37
+ app.command("v", no_args_is_help=False, help="NAVIGATE ENV/PATH variable with TUI", hidden=True)(tui_env)
38
38
 
39
39
  app.command(name="upgrade-packages", no_args_is_help=False, help="⬆️ [up] Upgrade project dependencies.")(upgrade_packages)
40
40
  app.command(name="up", no_args_is_help=False, hidden=True)(upgrade_packages)
@@ -7,7 +7,7 @@ $user = ''
7
7
  $sharePath = ''
8
8
  $driveLetter = ''
9
9
 
10
- uv run --python 3.14 --with "machineconfig>=7.79" python -m machineconfig.scripts.python.mount_ssh
10
+ uv run --python 3.14 --with "machineconfig>=7.83" 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
@@ -1,7 +1,11 @@
1
+ -- DuckDB plugin configuration
2
+ -- require("duckdb"):setup()
3
+
1
4
  -- https://yazi-rs.github.io/docs/tips#symlink-in-status
2
5
  -- https://yazi-rs.github.io/docs/tips#user-group-in-status
3
6
  -- https://yazi-rs.github.io/docs/tips#username-hostname-in-header
4
7
 
8
+
5
9
  -- Load Status component
6
10
  function Status:render(area)
7
11
  self.area = area
@@ -1,3 +1,9 @@
1
+ [manager]
2
+ # from https://github.com/Tyarel8/goto-drives.yazi
3
+ prepend_keymap = [
4
+ { on = [ "g", ":" ], run = "plugin goto-drives", desc = "Go to drives" },
5
+ ]
6
+
1
7
 
2
8
  [[mgr.prepend_keymap]]
3
9
  on = "!"
@@ -59,20 +65,21 @@ run = 'shell --block -- $HOME/.config/machineconfig/scripts/wrap_mcfg utils edi
59
65
  desc = "Read with helix"
60
66
 
61
67
  [[mgr.prepend_keymap]]
62
- on = ["R", "c"]
68
+ on = ["R", "s"]
63
69
  run = 'shell --block -- $HOME/.config/machineconfig/scripts/wrap_mcfg croshell "$0"'
64
70
  desc = "Read with croshell"
65
-
66
-
67
71
  [[mgr.prepend_keymap]]
68
72
  on = ["R", "f"]
69
73
  run = 'shell --block -- $HOME/.config/machineconfig/scripts/wrap_mcfg fire "$0"'
70
74
  desc = "Read with fire"
71
-
72
75
  [[mgr.prepend_keymap]]
73
76
  on = ["R", "F"]
74
77
  run = 'shell --block -- $HOME/.config/machineconfig/scripts/wrap_mcfg fire -i "$0"'
75
78
  desc = "Read with fire interactively"
79
+ [[mgr.prepend_keymap]]
80
+ on = ["R", "c"]
81
+ run = 'shell --block -- code "$0"'
82
+ desc = "Read with code"
76
83
 
77
84
  [[mgr.prepend_keymap]]
78
85
  on = "y"
@@ -0,0 +1,4 @@
1
+
2
+ [flavor]
3
+ dark = "dracula"
4
+ # dark = "catppuccin-frappe"
@@ -0,0 +1,84 @@
1
+
2
+ [mgr]
3
+ show_hidden = true
4
+ ratio = [1, 3, 5]
5
+
6
+ [opener]
7
+ system_default = [
8
+ { run = "xdg-open \"$1\"", desc = "System Default", block = false, orphan = false, for = "unix" }
9
+ ]
10
+ edit = [
11
+ { run = 'hx "$@"', desc = "Helix (Editor)", block = true, orphan = false, for = "unix" }
12
+ ]
13
+ vscode = [
14
+ { run = "code \"$@\"", desc = "VSCode (Editor)", block = true, orphan = false, for = "unix" }
15
+ ]
16
+ play = [
17
+ { run = "mpv \"$@\"", desc = "MPV (Media)", block = false, orphan = false, for = "unix" }
18
+ ]
19
+ open = [
20
+ { run = "xdg-open \"$1\"", desc = "System Default Open", block = false, orphan = false, for = "unix" }
21
+ ]
22
+
23
+ [open]
24
+ prepend_rules = [
25
+ # Text/Code files - open with Helix by default
26
+ { name = "*.py", use = ["edit", "vscode"] },
27
+ { name = "*.{rs,toml,yaml,yml,json,js,ts,tsx,jsx,html,css,md,txt,sh,bash,zsh,ps1}", use = ["edit", "vscode"] },
28
+ { mime = "text/*", use = ["edit", "vscode"] },
29
+ ]
30
+ rules = [
31
+ { mime = "application/pdf", use = ["system_default"] },
32
+ { mime = "image/*", use = ["system_default"] },
33
+ { mime = "{audio,video}/*", use = ["system_default"] },
34
+ { name = "*", use = ["system_default"] }
35
+ ]
36
+
37
+
38
+ [plugin]
39
+ dir = "~/.config/yazi/plugins"
40
+
41
+ prepend_previewers = [
42
+ # Markdown previewer
43
+ { name = "*.md", run = 'piper -- CLICOLOR_FORCE=1 glow -w=$w -s=dark "$1"' },
44
+ # Archive previewer
45
+ { mime = "application/*zip", run = "ouch" },
46
+ { mime = "application/x-tar", run = "ouch" },
47
+ { mime = "application/x-bzip2", run = "ouch" },
48
+ { mime = "application/x-7z-compressed", run = "ouch" },
49
+ { mime = "application/x-rar", run = "ouch" },
50
+ { mime = "application/vnd.rar", run = "ouch" },
51
+ { mime = "application/x-xz", run = "ouch" },
52
+ { mime = "application/xz", run = "ouch" },
53
+ { mime = "application/x-zstd", run = "ouch" },
54
+ { mime = "application/zstd", run = "ouch" },
55
+ { mime = "application/java-archive", run = "ouch" },
56
+
57
+ # { name = "*.csv", run = "duckdb" },
58
+ # { name = "*.tsv", run = "duckdb" },
59
+ # { name = "*.json", run = "duckdb" },
60
+ # { name = "*.parquet", run = "duckdb" },
61
+ # { name = "*.txt", run = "duckdb" },
62
+ # { name = "*.xlsx", run = "duckdb" },
63
+ # { name = "*.db", run = "duckdb" },
64
+ # { name = "*.duckdb", run = "duckdb" }
65
+ ]
66
+
67
+ # prepend_preloaders = [ { name = "*.csv", run = "duckdb", multi = false },
68
+
69
+
70
+ [[plugin.load]]
71
+ name = "toggle-pane"
72
+ path = "toggle-pane.yazi"
73
+
74
+
75
+ [preview]
76
+ # Change them to your desired values
77
+ max_width = 1000
78
+ max_height = 1000
79
+
80
+ previewers = [
81
+ # PDF
82
+ { mime = "application/pdf", run = "pdf" },
83
+ ]
84
+
@@ -0,0 +1,58 @@
1
+
2
+ [mgr]
3
+ show_hidden = true
4
+ ratio = [1, 3, 5]
5
+
6
+ [opener]
7
+ system_default = [
8
+ { run = "cmd /C start \"\" \"%1\"", desc = "System Default (Windows)", for = "windows", block = false, orphan = false }
9
+ ]
10
+ # Edit files in your editor (replace "code" with your editor if you like)
11
+ edit = [
12
+ { run = "code \"%*\"", desc = "VS Code (Editor)", block = true, orphan = false, for = "windows" }
13
+ ]
14
+ helix = [
15
+ { run = "hx \"%*\"", desc = "Helix (Editor)", block = true, orphan = false, for = "windows" }
16
+ ]
17
+
18
+ # Play media files
19
+ play = [
20
+ { run = "start \"\" \"%*\"", desc = "System Default (Media)", block = false, orphan = false, for = "windows" }
21
+ ]
22
+
23
+ # Open files/folders with system default program/explorer
24
+ open = [
25
+ { run = "start \"\" \"%1\"", desc = "System Default (Open)", block = false, orphan = false, for = "windows" }
26
+ ]
27
+
28
+
29
+ [open]
30
+ prepend_rules = [
31
+ # Text/Code files - open with VSCode by default, Helix as alternative
32
+ { name = "*.py", use = ["edit", "helix"] },
33
+ { name = "*.{rs,toml,yaml,yml,json,js,ts,tsx,jsx,html,css,md,txt,sh,ps1,bat,cmd}", use = ["edit", "helix"] },
34
+ { mime = "text/*", use = ["edit", "helix"] },
35
+ ]
36
+ rules = [
37
+ { mime = "video/*", use = "play" },
38
+ { mime = "application/pdf", use = ["system_default"] },
39
+ { mime = "image/*", use = ["system_default"] },
40
+ { name = "*", use = ["system_default"] }
41
+ ]
42
+
43
+
44
+
45
+ [plugin]
46
+ # dir = "~/AppData/Roaming/yazi/config/plugins"
47
+
48
+ [[plugin.load]]
49
+ name = "toggle-pane"
50
+ path = "toggle-pane.yazi"
51
+
52
+
53
+ [preview]
54
+ # Change them to your desired values
55
+ max_width = 1000
56
+ max_height = 1000
57
+
58
+
@@ -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.79" devops'
6
- alias cloud='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.79" cloud'
7
- alias agents='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.79" agents'
8
- alias sessions='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.79" sessions'
9
- alias ftpx='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.79" ftpx'
10
- alias fire='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.79" fire'
11
- alias croshell='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.79" croshell'
12
- alias utils='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.79" utils'
13
- alias terminal='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.79" terminal'
14
- alias msearch='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.79" msearch'
5
+ alias devops='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.83" devops'
6
+ alias cloud='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.83" cloud'
7
+ alias agents='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.83" agents'
8
+ alias sessions='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.83" sessions'
9
+ alias ftpx='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.83" ftpx'
10
+ alias fire='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.83" fire'
11
+ alias croshell='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.83" croshell'
12
+ alias utils='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.83" utils'
13
+ alias terminal='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.83" terminal'
14
+ alias msearch='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.83" msearch'
15
15
 
16
16
  alias d='wrap_in_shell_script devops'
17
17
  alias c='wrap_in_shell_script cloud'
@@ -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.79" devops $args }
7
- function cloud { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.79" cloud $args }
8
- function agents { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.79" agents $args }
9
- function sessions { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.79" sessions $args }
10
- function ftpx { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.79" ftpx $args }
11
- function fire { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.79" fire $args }
12
- function croshell { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.79" croshell $args }
13
- function utils { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.79" utils $args }
14
- function terminal { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.79" terminal $args }
15
- function msearch { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.79" msearch $args }
6
+ function devops { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.83" devops $args }
7
+ function cloud { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.83" cloud $args }
8
+ function agents { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.83" agents $args }
9
+ function sessions { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.83" sessions $args }
10
+ function ftpx { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.83" ftpx $args }
11
+ function fire { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.83" fire $args }
12
+ function croshell { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.83" croshell $args }
13
+ function utils { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.83" utils $args }
14
+ function terminal { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.83" terminal $args }
15
+ function msearch { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.83" msearch $args }
16
16
 
17
17
  function d { wrap_in_shell_script devops @args }
18
18
  function c { wrap_in_shell_script cloud @args }