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.
- machineconfig/jobs/installer/custom/yazi.py +120 -0
- machineconfig/jobs/installer/custom_dev/nerdfont.py +1 -1
- machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +26 -12
- machineconfig/jobs/installer/custom_dev/sysabc.py +0 -5
- machineconfig/jobs/installer/installer_data.json +162 -94
- machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
- machineconfig/profile/create_helper.py +0 -12
- machineconfig/profile/mapper.toml +2 -2
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +1 -0
- machineconfig/scripts/python/croshell.py +4 -4
- machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
- machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
- machineconfig/scripts/python/helpers_devops/cli_config.py +10 -0
- machineconfig/scripts/python/helpers_devops/cli_nw.py +15 -16
- machineconfig/scripts/python/helpers_devops/cli_self.py +4 -4
- machineconfig/scripts/python/helpers_devops/cli_terminal.py +2 -5
- machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfg +2 -2
- machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +58 -1
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +1 -1
- machineconfig/scripts/python/helpers_repos/count_lines.py +40 -11
- machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +1 -1
- machineconfig/scripts/python/helpers_utils/path.py +7 -4
- machineconfig/scripts/python/msearch.py +37 -7
- machineconfig/scripts/python/utils.py +3 -3
- machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
- machineconfig/settings/yazi/init.lua +4 -0
- machineconfig/settings/yazi/keymap_linux.toml +11 -4
- machineconfig/settings/yazi/theme.toml +4 -0
- machineconfig/settings/yazi/yazi_linux.toml +84 -0
- machineconfig/settings/yazi/yazi_windows.toml +58 -0
- machineconfig/setup_linux/web_shortcuts/interactive.sh +10 -10
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +10 -10
- machineconfig/utils/installer_utils/github_release_bulk.py +104 -62
- machineconfig/utils/installer_utils/install_from_url.py +122 -102
- machineconfig/utils/installer_utils/installer_class.py +15 -72
- machineconfig/utils/installer_utils/installer_cli.py +29 -44
- machineconfig/utils/installer_utils/installer_helper.py +100 -0
- machineconfig/utils/installer_utils/installer_runner.py +5 -8
- machineconfig/utils/ssh_utils/abc.py +2 -2
- machineconfig/utils/ssh_utils/wsl.py +44 -2
- {machineconfig-7.79.dist-info → machineconfig-7.83.dist-info}/METADATA +2 -2
- {machineconfig-7.79.dist-info → machineconfig-7.83.dist-info}/RECORD +45 -47
- machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfag +0 -17
- machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfrga +0 -21
- machineconfig/scripts/python/helpers_msearch/scripts_linux/skrg +0 -4
- machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfb.ps1 +0 -3
- machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfrga.bat +0 -20
- machineconfig/settings/yazi/yazi.toml +0 -17
- machineconfig/setup_linux/others/cli_installation.sh +0 -137
- {machineconfig-7.79.dist-info → machineconfig-7.83.dist-info}/WHEEL +0 -0
- {machineconfig-7.79.dist-info → machineconfig-7.83.dist-info}/entry_points.txt +0 -0
- {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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
174
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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=
|
|
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,
|
|
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("
|
|
37
|
-
app.command("
|
|
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.
|
|
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", "
|
|
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,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.
|
|
6
|
-
alias cloud='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
7
|
-
alias agents='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
8
|
-
alias sessions='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
9
|
-
alias ftpx='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
10
|
-
alias fire='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
11
|
-
alias croshell='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
12
|
-
alias utils='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
13
|
-
alias terminal='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
14
|
-
alias msearch='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
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.
|
|
7
|
-
function cloud { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
8
|
-
function agents { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
9
|
-
function sessions { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
10
|
-
function ftpx { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
11
|
-
function fire { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
12
|
-
function croshell { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
13
|
-
function utils { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
14
|
-
function terminal { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
15
|
-
function msearch { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
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 }
|