machineconfig 7.64__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 (104) hide show
  1. machineconfig/cluster/sessions_managers/utils/maker.py +4 -2
  2. machineconfig/jobs/installer/custom/yazi.py +120 -0
  3. machineconfig/jobs/installer/custom_dev/nerdfont.py +1 -1
  4. machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +26 -12
  5. machineconfig/jobs/installer/custom_dev/sysabc.py +26 -5
  6. machineconfig/jobs/installer/installer_data.json +232 -96
  7. machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
  8. machineconfig/profile/create_helper.py +0 -12
  9. machineconfig/profile/create_links_export.py +2 -2
  10. machineconfig/profile/mapper.toml +2 -2
  11. machineconfig/scripts/__init__.py +0 -4
  12. machineconfig/scripts/python/agents.py +22 -17
  13. machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +4 -0
  14. machineconfig/scripts/python/croshell.py +22 -17
  15. machineconfig/scripts/python/devops.py +1 -1
  16. machineconfig/scripts/python/devops_navigator.py +0 -4
  17. machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
  18. machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
  19. machineconfig/scripts/python/fire_jobs.py +13 -13
  20. machineconfig/scripts/python/ftpx.py +36 -12
  21. machineconfig/scripts/python/helpers/ast_search.py +74 -0
  22. machineconfig/scripts/python/helpers/qr_code.py +166 -0
  23. machineconfig/scripts/python/helpers/repo_rag.py +325 -0
  24. machineconfig/scripts/python/helpers/symantic_search.py +25 -0
  25. machineconfig/scripts/python/helpers_cloud/cloud_copy.py +28 -21
  26. machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +1 -1
  27. machineconfig/scripts/python/helpers_cloud/cloud_mount.py +19 -17
  28. machineconfig/scripts/python/helpers_cloud/cloud_sync.py +8 -7
  29. machineconfig/scripts/python/helpers_croshell/start_slidev.py +6 -7
  30. machineconfig/scripts/python/helpers_devops/cli_config.py +10 -0
  31. machineconfig/scripts/python/helpers_devops/cli_nw.py +90 -10
  32. machineconfig/scripts/python/helpers_devops/cli_self.py +8 -7
  33. machineconfig/scripts/python/helpers_devops/cli_share_file.py +7 -7
  34. machineconfig/scripts/python/helpers_devops/cli_share_server.py +12 -11
  35. machineconfig/scripts/python/helpers_devops/cli_terminal.py +8 -10
  36. machineconfig/scripts/python/helpers_devops/cli_utils.py +2 -1
  37. machineconfig/scripts/python/helpers_devops/devops_status.py +7 -19
  38. machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +20 -9
  39. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfg +2 -2
  40. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +58 -1
  41. machineconfig/scripts/python/helpers_navigator/command_tree.py +50 -18
  42. machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +5 -3
  43. machineconfig/scripts/python/helpers_repos/count_lines.py +40 -11
  44. machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +1 -1
  45. machineconfig/scripts/python/helpers_utils/download.py +4 -3
  46. machineconfig/scripts/python/helpers_utils/path.py +87 -34
  47. machineconfig/scripts/python/interactive.py +1 -1
  48. machineconfig/scripts/python/{machineconfig.py → mcfg_entry.py} +4 -0
  49. machineconfig/scripts/python/msearch.py +55 -6
  50. machineconfig/scripts/python/nw/address.py +132 -0
  51. machineconfig/scripts/python/nw/devops_add_ssh_key.py +8 -5
  52. machineconfig/scripts/python/terminal.py +2 -2
  53. machineconfig/scripts/python/utils.py +12 -11
  54. machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
  55. machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
  56. machineconfig/settings/shells/nushell/config.nu +2 -2
  57. machineconfig/settings/shells/nushell/env.nu +45 -6
  58. machineconfig/settings/shells/nushell/init.nu +282 -95
  59. machineconfig/settings/shells/pwsh/init.ps1 +1 -0
  60. machineconfig/settings/yazi/init.lua +4 -0
  61. machineconfig/settings/yazi/keymap_linux.toml +11 -4
  62. machineconfig/settings/yazi/theme.toml +4 -0
  63. machineconfig/settings/yazi/yazi_linux.toml +84 -0
  64. machineconfig/settings/yazi/yazi_windows.toml +58 -0
  65. machineconfig/setup_linux/web_shortcuts/interactive.sh +10 -10
  66. machineconfig/setup_windows/uv.ps1 +8 -1
  67. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +10 -10
  68. machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +3 -2
  69. machineconfig/utils/accessories.py +7 -4
  70. machineconfig/utils/code.py +4 -2
  71. machineconfig/utils/installer_utils/github_release_bulk.py +104 -62
  72. machineconfig/utils/installer_utils/install_from_url.py +200 -0
  73. machineconfig/utils/installer_utils/installer_class.py +25 -74
  74. machineconfig/utils/installer_utils/installer_cli.py +40 -50
  75. machineconfig/utils/installer_utils/installer_helper.py +100 -0
  76. machineconfig/utils/installer_utils/installer_runner.py +5 -8
  77. machineconfig/utils/links.py +2 -2
  78. machineconfig/utils/meta.py +2 -2
  79. machineconfig/utils/options.py +3 -3
  80. machineconfig/utils/path_extended.py +1 -1
  81. machineconfig/utils/path_helper.py +0 -1
  82. machineconfig/utils/ssh.py +143 -409
  83. machineconfig/utils/ssh_utils/abc.py +8 -0
  84. machineconfig/utils/ssh_utils/copy_from_here.py +110 -0
  85. machineconfig/utils/ssh_utils/copy_to_here.py +302 -0
  86. machineconfig/utils/ssh_utils/utils.py +141 -0
  87. machineconfig/utils/ssh_utils/wsl.py +210 -0
  88. machineconfig/utils/upgrade_packages.py +2 -1
  89. machineconfig/utils/ve.py +11 -4
  90. {machineconfig-7.64.dist-info → machineconfig-7.83.dist-info}/METADATA +2 -2
  91. {machineconfig-7.64.dist-info → machineconfig-7.83.dist-info}/RECORD +96 -89
  92. {machineconfig-7.64.dist-info → machineconfig-7.83.dist-info}/entry_points.txt +2 -2
  93. machineconfig/scripts/python/explore.py +0 -49
  94. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfag +0 -17
  95. machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfrga +0 -21
  96. machineconfig/scripts/python/helpers_msearch/scripts_linux/skrg +0 -4
  97. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfb.ps1 +0 -3
  98. machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfrga.bat +0 -20
  99. machineconfig/settings/yazi/yazi.toml +0 -17
  100. machineconfig/setup_linux/others/cli_installation.sh +0 -137
  101. /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers_fire_command/f.py} +0 -0
  102. /machineconfig/scripts/{Restore-ThunderbirdProfile.ps1 → windows/mounts/Restore-ThunderbirdProfile.ps1} +0 -0
  103. {machineconfig-7.64.dist-info → machineconfig-7.83.dist-info}/WHEEL +0 -0
  104. {machineconfig-7.64.dist-info → machineconfig-7.83.dist-info}/top_level.txt +0 -0
@@ -17,7 +17,7 @@
17
17
 
18
18
  function lfcd {
19
19
  $tmp = [System.IO.Path]::GetTempFileName()
20
- ~\AppData\Local\Microsoft\WindowsApps\lf.exe -last-dir-path="$tmp" $args
20
+ & "$env:USERPROFILE\AppData\Local\Microsoft\WindowsApps\lf.exe" -last-dir-path="$tmp" $args
21
21
  if (Test-Path -PathType Leaf "$tmp")
22
22
  {
23
23
  $dir = Get-Content "$tmp"
@@ -1,3 +1,3 @@
1
+ # machineconfig Nushell configuration loader
1
2
 
2
-
3
- use C:\Users\aalsaf01\.config\machineconfig\settings\shells\nushell\init.nu
3
+ use "~/.config/machineconfig/settings/shells/nushell/init.nu"
@@ -1,13 +1,52 @@
1
+ # machineconfig Nushell environment setup
1
2
 
3
+ def reduce_non_empty [segments: list<string>] -> list<string> {
4
+ segments
5
+ | reduce --fold [] { |segment, acc|
6
+ if (($segment | str length) > 0) {
7
+ $acc | append $segment
8
+ } else {
9
+ $acc
10
+ }
11
+ }
12
+ }
2
13
 
3
- # as per https://github.com/starship/starship?tab=readme-ov-file#step-1-install-starship
4
- mkdir ~/.cache/starship
5
- starship init nu | save -f ~/.cache/starship/init.nu
14
+ let default_root = ($env.HOME | path join ".config" "machineconfig")
15
+ let config_root = (
16
+ $env.CONFIG_ROOT?
17
+ | default $default_root
18
+ | path expand
19
+ )
6
20
 
21
+ load-env { CONFIG_ROOT: $config_root }
7
22
 
23
+ let existing_segments = (
24
+ $env.PATH?
25
+ | default ""
26
+ | split row (char esep)
27
+ | reduce_non_empty
28
+ )
8
29
 
9
- # echo $nu.env-path
10
- # as per https://github.com/ajeetdsouza/zoxide?tab=readme-ov-file#installation
11
- zoxide init nushell | save -f ~/.zoxide.nu
30
+ let desired_paths = [
31
+ ($config_root | path join "scripts")
32
+ ($env.HOME | path join "dotfiles" "scripts" "linux")
33
+ ($env.HOME | path join ".local" "bin")
34
+ ($env.HOME | path join ".cargo" "bin")
35
+ "/usr/games"
36
+ ]
37
+
38
+ let merged_segments = (
39
+ $desired_paths
40
+ | reduce --fold $existing_segments { |entry, acc|
41
+ if (($entry | path exists) and (not ($entry in $acc))) {
42
+ $acc | append $entry
43
+ } else {
44
+ $acc
45
+ }
46
+ }
47
+ )
48
+
49
+ let new_path = ($merged_segments | str join (char esep))
50
+ load-env { PATH: $new_path }
12
51
 
13
52
 
@@ -1,127 +1,314 @@
1
- # Nushell initialization script
2
- # Translation of init.ps1 to Nushell
1
+ # machineconfig Nushell initialization
3
2
 
3
+ let config_root = (
4
+ $env.CONFIG_ROOT?
5
+ | default ($env.HOME | path join ".config" "machineconfig")
6
+ )
4
7
 
8
+ def ensure_directory [dir: string] -> nothing {
9
+ if (($dir | path exists) == false) {
10
+ try {
11
+ mkdir $dir
12
+ } catch {
13
+ null
14
+ }
15
+ }
16
+ }
5
17
 
6
- # Add directories to PATH if not already present
7
- def add_to_path_if_not_already [...directories: string] {
8
- let raw_path = ($env.PATH? | default [])
9
- let path_type = ($raw_path | describe)
18
+ def temp_file [prefix: string suffix: string] -> string {
19
+ let base_dir = (
20
+ $env.TMPDIR?
21
+ | default (
22
+ $env.TEMP?
23
+ | default (
24
+ $env.TMP?
25
+ | default "/tmp"
26
+ )
27
+ )
28
+ )
10
29
 
11
- mut path_entries = if $path_type == "string" {
12
- $raw_path | split row (char esep)
13
- } else if $path_type == "list<string>" {
14
- $raw_path
15
- } else if $path_type == "nothing" {
16
- []
17
- } else {
18
- []
19
- }
30
+ ensure_directory $base_dir
20
31
 
21
- for dir in $directories {
22
- if $dir not-in $path_entries {
23
- $path_entries = ($path_entries | append $dir)
24
- }
25
- }
32
+ let token = (random uuid | str replace "-" "" | str substring 0..16)
33
+ let path = ($base_dir | path join $"($prefix)($token)($suffix)")
34
+
35
+ "" | save --force $path
26
36
 
27
- $path_entries
37
+ $path
28
38
  }
29
39
 
30
- export-env {
31
- let config_root = $"($env.HOME)/.config/machineconfig"
32
- load-env { CONFIG_ROOT: $config_root }
40
+ export def wrap_in_shell_script [command: string ...args: string] -> nothing {
41
+ let op_dir = ($env.HOME | path join "tmp_results" "tmp_scripts" "machineconfig")
42
+ ensure_directory $op_dir
33
43
 
34
- let new_path = (add_to_path_if_not_already $"($config_root)/scripts" $"($env.HOME)/dotfiles/scripts/linux" "/usr/local/bin")
35
- load-env { PATH: $new_path }
44
+ let random_name = (random uuid | str replace "-" "" | str substring 0..16)
45
+ let op_program_path = ($op_dir | path join $"($random_name).sh")
46
+ let timestamp = (date now --utc | format date "%Y-%m-%d %H:%M:%SZ")
36
47
 
37
- # Source external scripts and define aliases
38
- if ($"($config_root)/scripts" | path exists) {
39
- # Source helper scripts
40
- # let broot_script = ($config_root | path join "settings" "broot" "brootcd.nu")
41
- # let lf_script = ($config_root | path join "settings" "lf" "linux" "lfcd.nu")
42
- # let tere_script = ($config_root | path join "settings" "tere" "terecd.nu")
48
+ print $"machineconfig: running ($command) at ($timestamp)"
49
+ print $"machineconfig: op program path ($op_program_path)"
43
50
 
44
- def wrap_in_shell_script [command: string ...args: string] -> nothing {
45
- let op_dir = ($env.HOME | path join "tmp_results" "tmp_scripts" "machineconfig")
46
- if ($op_dir | path exists) == false {
47
- try { mkdir $op_dir } catch { null }
51
+ let run_status = (
52
+ try {
53
+ with-env { OP_PROGRAM_PATH: $op_program_path } {
54
+ run-external $command ...$args
48
55
  }
56
+ $env.LAST_EXIT_CODE? | default 0
57
+ } catch {
58
+ 1
59
+ }
60
+ )
49
61
 
50
- let random_name = (random uuid | str replace "-" "" | str substring 0..16)
51
- let op_program_path = ($op_dir | path join $"($random_name).sh")
52
- let timestamp = (date now --utc | format date "%Y-%m-%d %H:%M:%SZ")
53
-
54
- print $"machineconfig: running ($command) at ($timestamp)"
62
+ if ($op_program_path | path exists) {
63
+ let has_bat = (((which bat) | length) > 0)
64
+ if $has_bat {
65
+ run-external bat "--style=plain" "--paging=never" $op_program_path
66
+ } else {
67
+ print (open --raw $op_program_path)
68
+ }
55
69
 
56
- let status = (try {
57
- with-env { OP_PROGRAM_PATH: $op_program_path } {
58
- run-external $command ...$args
59
- $env.LAST_EXIT_CODE? | default 0
60
- }
70
+ let follow_status = (
71
+ try {
72
+ run-external bash $op_program_path
73
+ $env.LAST_EXIT_CODE? | default 0
61
74
  } catch {
62
75
  1
63
- })
76
+ }
77
+ )
64
78
 
65
- if ($op_program_path | path exists) {
66
- if (which bat | is-empty) {
67
- print (open --raw $op_program_path)
68
- } else {
69
- run-external bat "--style=plain" "--paging=never" $op_program_path
70
- }
79
+ if $follow_status == 0 {
80
+ print $"machineconfig: completed ($command)"
81
+ } else {
82
+ print $"machineconfig: script exited with status ($follow_status)"
83
+ }
84
+ } else if $run_status == 0 {
85
+ print $"machineconfig: completed ($command)"
86
+ } else {
87
+ print $"machineconfig: ($command) exited with status ($run_status)"
88
+ }
89
+ }
71
90
 
72
- let follow_status = (try {
73
- run-external bash $op_program_path
74
- $env.LAST_EXIT_CODE? | default 0
91
+ export def br [...args: string] -> nothing {
92
+ let cmd_file = (temp_file "broot-" ".cmd")
93
+
94
+ try {
95
+ run-external broot "--outcmd" $cmd_file ...$args
96
+ } catch {
97
+ if ($cmd_file | path exists) {
98
+ rm $cmd_file
99
+ }
100
+ return
101
+ }
102
+
103
+ if ($cmd_file | path exists) {
104
+ let command_text = (open --raw $cmd_file | str trim)
105
+ rm $cmd_file
106
+
107
+ if ($command_text | str length) > 0 {
108
+ let parsed_cd = (
109
+ try {
110
+ $command_text
111
+ | parse "cd \"{path}\""
112
+ | get path
113
+ | first
75
114
  } catch {
76
- 1
77
- })
115
+ null
116
+ }
117
+ )
78
118
 
79
- if $follow_status == 0 {
80
- print $"machineconfig: completed '$command'"
81
- } else {
82
- print $"machineconfig: program exited with status ($follow_status)"
119
+ if $parsed_cd != null {
120
+ if ($parsed_cd | str length) > 0 {
121
+ cd $parsed_cd
83
122
  }
84
- } else if $status == 0 {
85
- print $"machineconfig: completed '$command'"
86
123
  } else {
87
- print $"machineconfig: '$command' exited with status ($status)"
124
+ try {
125
+ run-external nu "-c" $command_text
126
+ } catch {
127
+ null
128
+ }
88
129
  }
89
130
  }
131
+ }
132
+ }
90
133
 
91
- # Define aliases and custom commands
92
- def lsdla [] { lsd -la }
93
- alias l = lsdla
94
-
95
- def d [...args: string] { wrap_in_shell_script devops ...$args }
96
- def c [...args: string] { wrap_in_shell_script cloud ...$args }
97
- def a [...args: string] { wrap_in_shell_script agents ...$args }
98
- def ss [...args: string] { wrap_in_shell_script sessions ...$args }
99
- def ff [...args: string] { wrap_in_shell_script ftpx ...$args }
100
- def f [...args: string] { wrap_in_shell_script fire ...$args }
101
- def rr [...args: string] { wrap_in_shell_script croshell ...$args }
102
- def u [...args: string] { wrap_in_shell_script utils ...$args }
103
- def t [...args: string] { wrap_in_shell_script terminal ...$args }
104
- def ms [...args: string] { wrap_in_shell_script msearch ...$args }
105
- } else {
106
- print $"Missing config files: ($config_root)"
134
+ export def lfcd [...args: string] -> nothing {
135
+ let tmp = (temp_file "lf-" ".tmp")
136
+
137
+ try {
138
+ run-external lf $"--last-dir-path=$tmp" ...$args
139
+ } catch {
140
+ null
141
+ }
142
+
143
+ if ($tmp | path exists) {
144
+ let dir = (open --raw $tmp | str trim)
145
+ rm $tmp
146
+
147
+ if (($dir | str length) > 0) and ($dir | path exists) {
148
+ cd $dir
149
+ }
107
150
  }
108
151
  }
109
152
 
110
- # Initialize zoxide if available
111
- # Patched by machineconfig from https://github.com/ajeetdsouza/zoxide
112
- try {
113
- source <(zoxide init nushell)
114
- } catch {
115
- # Do nothing if zoxide is not available
153
+ export def y [...args: string] -> nothing {
154
+ let tmp = (temp_file "yazi-" ".tmp")
155
+
156
+ try {
157
+ run-external yazi ...$args $"--cwd-file=$tmp"
158
+ } catch {
159
+ null
160
+ }
161
+
162
+ if ($tmp | path exists) {
163
+ let dir = (open --raw $tmp | str trim)
164
+ rm $tmp
165
+
166
+ if (($dir | str length) > 0) and ($dir | path exists) {
167
+ cd $dir
168
+ }
169
+ }
116
170
  }
117
171
 
118
- # Initialize Starship prompt if available
119
- try {
120
- source <(starship init nu)
121
- } catch {
122
- # Do nothing if starship is not available
172
+ export def tere [...args: string] -> nothing {
173
+ let result = (
174
+ try {
175
+ run-external tere ...$args | complete
176
+ } catch {
177
+ null
178
+ }
179
+ )
180
+
181
+ if $result != null {
182
+ let dest = ($result.stdout | str trim)
183
+ if (($dest | str length) > 0) and ($dest | path exists) {
184
+ cd $dest
185
+ }
186
+ }
187
+ }
188
+
189
+ export alias lf = lfcd
190
+
191
+ export def d [...args: string] -> nothing {
192
+ wrap_in_shell_script "devops" ...$args
193
+ }
194
+
195
+ export def c [...args: string] -> nothing {
196
+ wrap_in_shell_script "cloud" ...$args
197
+ }
198
+
199
+ export def a [...args: string] -> nothing {
200
+ wrap_in_shell_script "agents" ...$args
201
+ }
202
+
203
+ export def s [...args: string] -> nothing {
204
+ wrap_in_shell_script "sessions" ...$args
205
+ }
206
+
207
+ export def fx [...args: string] -> nothing {
208
+ wrap_in_shell_script "ftpx" ...$args
209
+ }
210
+
211
+ export def f [...args: string] -> nothing {
212
+ wrap_in_shell_script "fire" ...$args
213
+ }
214
+
215
+ export def r [...args: string] -> nothing {
216
+ wrap_in_shell_script "croshell" ...$args
217
+ }
218
+
219
+ export def u [...args: string] -> nothing {
220
+ wrap_in_shell_script "utils" ...$args
221
+ }
222
+
223
+ export def t [...args: string] -> nothing {
224
+ wrap_in_shell_script "terminal" ...$args
225
+ }
226
+
227
+ export def ms [...args: string] -> nothing {
228
+ wrap_in_shell_script "msearch" ...$args
229
+ }
230
+
231
+ export def x [...args: string] -> nothing {
232
+ wrap_in_shell_script "explore" ...$args
233
+ }
234
+
235
+ export alias l = lsd -la
236
+
237
+ let starship_cache_dir = ($env.HOME | path join ".cache" "starship")
238
+ if (((which starship) | length) > 0) {
239
+ ensure_directory $starship_cache_dir
240
+ let starship_init = ($starship_cache_dir | path join "init.nu")
241
+
242
+ try {
243
+ starship init nu | save --force $starship_init
244
+ } catch {
245
+ try {
246
+ starship init nu | save $starship_init
247
+ } catch {
248
+ null
249
+ }
250
+ }
251
+
252
+ try {
253
+ source $starship_init
254
+ } catch {
255
+ null
256
+ }
257
+
258
+ try {
259
+ use $starship_init starship
260
+ } catch {
261
+ null
262
+ }
263
+ }
264
+
265
+ let zoxide_init = ($env.HOME | path join ".zoxide.nu")
266
+ if (((which zoxide) | length) > 0) {
267
+ try {
268
+ zoxide init nushell | save --force $zoxide_init
269
+ } catch {
270
+ try {
271
+ zoxide init nushell | save $zoxide_init
272
+ } catch {
273
+ null
274
+ }
275
+ }
276
+
277
+ try {
278
+ source $zoxide_init
279
+ } catch {
280
+ null
281
+ }
282
+ }
283
+
284
+ let mcfly_cache_dir = ($env.HOME | path join ".cache" "mcfly")
285
+ if (((which mcfly) | length) > 0) {
286
+ ensure_directory $mcfly_cache_dir
287
+ let mcfly_init = ($mcfly_cache_dir | path join "init.nu")
288
+
289
+ try {
290
+ mcfly init nu | save --force $mcfly_init
291
+ } catch {
292
+ try {
293
+ mcfly init nu | save $mcfly_init
294
+ } catch {
295
+ null
296
+ }
297
+ }
298
+
299
+ try {
300
+ source $mcfly_init
301
+ } catch {
302
+ null
303
+ }
304
+ }
305
+
306
+ let user_init = ($env.HOME | path join "dotfiles" "machineconfig" "init_nu.nu")
307
+ if ($user_init | path exists) {
308
+ try {
309
+ source $user_init
310
+ } catch {
311
+ null
312
+ }
123
313
  }
124
- # as per https://github.com/starship/starship?tab=readme-ov-file#step-1-install-starship
125
- # $nu.config-path
126
- # use ~/.cache/starship/init.nu
127
314
 
@@ -15,6 +15,7 @@ function Add-ToPathIfNotAlready {
15
15
  }
16
16
 
17
17
  Add-ToPathIfNotAlready -Directories @(
18
+ "$HOME\.local\bin",
18
19
  "$CONFIG_ROOT\scripts",
19
20
  "$HOME\dotfiles\scripts\windows",
20
21
  "C:\Program Files (x86)\GnuWin32\bin",
@@ -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
+